From d46ed4af6fd621a09f6c4328db70f3fa4f83fcb2 Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Mon, 22 Jul 2024 12:25:45 +0200 Subject: [PATCH 01/55] [FR] Add Tokens to PUI (#7693) * [FR] Add Tokens to PUI Fixes #6500 * fix name / call pattern * cleanup * add "revoke" action * Lock currently used token * Update serializers.py * bump api version --- .../InvenTree/InvenTree/api_version.py | 5 +- src/backend/InvenTree/users/api.py | 32 ++++++- src/backend/InvenTree/users/serializers.py | 34 ++++++- src/frontend/src/enums/ApiEndpoints.tsx | 1 + .../AccountSettings/SecurityContent.tsx | 91 ++++++++++++++++++- 5 files changed, 158 insertions(+), 5 deletions(-) diff --git a/src/backend/InvenTree/InvenTree/api_version.py b/src/backend/InvenTree/InvenTree/api_version.py index 95b0caa66a..0cbdbf287b 100644 --- a/src/backend/InvenTree/InvenTree/api_version.py +++ b/src/backend/InvenTree/InvenTree/api_version.py @@ -1,12 +1,15 @@ """InvenTree API version information.""" # InvenTree API version -INVENTREE_API_VERSION = 226 +INVENTREE_API_VERSION = 227 """Increment this API version number whenever there is a significant change to the API that any clients need to know about.""" INVENTREE_API_TEXT = """ +v227 - 2024-07-19 : https://github.com/inventree/InvenTree/pull/7693/ + - Adds endpoints to list and revoke the tokens issued to the current user + v226 - 2024-07-15 : https://github.com/inventree/InvenTree/pull/7648 - Adds barcode generation API endpoint diff --git a/src/backend/InvenTree/users/api.py b/src/backend/InvenTree/users/api.py index fd6400b6bc..e784f81393 100644 --- a/src/backend/InvenTree/users/api.py +++ b/src/backend/InvenTree/users/api.py @@ -18,6 +18,8 @@ from drf_spectacular.utils import OpenApiResponse, extend_schema, extend_schema_ from rest_framework import exceptions, permissions from rest_framework.authentication import BasicAuthentication from rest_framework.decorators import authentication_classes +from rest_framework.generics import DestroyAPIView +from rest_framework.permissions import AllowAny, IsAuthenticated from rest_framework.response import Response from rest_framework.views import APIView @@ -34,7 +36,12 @@ from InvenTree.mixins import ( from InvenTree.serializers import ExendedUserSerializer, UserCreateSerializer from InvenTree.settings import FRONTEND_URL_BASE from users.models import ApiToken, Owner -from users.serializers import GroupSerializer, OwnerSerializer, RoleSerializer +from users.serializers import ( + ApiTokenSerializer, + GroupSerializer, + OwnerSerializer, + RoleSerializer, +) logger = logging.getLogger('inventree') @@ -342,6 +349,22 @@ class GetAuthToken(APIView): raise exceptions.NotAuthenticated() +class TokenListView(DestroyAPIView, ListAPI): + """List of registered tokens for current users.""" + + permission_classes = (IsAuthenticated,) + serializer_class = ApiTokenSerializer + + def get_queryset(self): + """Only return data for current user.""" + return ApiToken.objects.filter(user=self.request.user) + + def perform_destroy(self, instance): + """Revoke token.""" + instance.revoked = True + instance.save() + + class LoginRedirect(RedirectView): """Redirect to the correct starting page after backend login.""" @@ -356,6 +379,13 @@ class LoginRedirect(RedirectView): user_urls = [ path('roles/', RoleDetails.as_view(), name='api-user-roles'), path('token/', GetAuthToken.as_view(), name='api-token'), + path( + 'tokens/', + include([ + path('/', TokenListView.as_view(), name='api-token-detail'), + path('', TokenListView.as_view(), name='api-token-list'), + ]), + ), path('me/', MeUserDetail.as_view(), name='api-user-me'), path( 'owner/', diff --git a/src/backend/InvenTree/users/serializers.py b/src/backend/InvenTree/users/serializers.py index c6c34fde3b..8455dfd2b6 100644 --- a/src/backend/InvenTree/users/serializers.py +++ b/src/backend/InvenTree/users/serializers.py @@ -8,7 +8,7 @@ from rest_framework import serializers from InvenTree.serializers import InvenTreeModelSerializer -from .models import Owner, RuleSet, check_user_role +from .models import ApiToken, Owner, RuleSet, check_user_role class OwnerSerializer(InvenTreeModelSerializer): @@ -116,5 +116,35 @@ def generate_permission_dict(permissions): perms[model] = [] perms[model].append(perm) - return perms + + +class ApiTokenSerializer(InvenTreeModelSerializer): + """Serializer for the ApiToken model.""" + + in_use = serializers.SerializerMethodField(read_only=True) + + def get_in_use(self, token: ApiToken) -> bool: + """Return True if the token is currently used to call the endpoint.""" + from InvenTree.middleware import get_token_from_request + + request = self.context.get('request') + rq_token = get_token_from_request(request) + return token.key == rq_token + + class Meta: + """Meta options for ApiTokenSerializer.""" + + model = ApiToken + fields = [ + 'created', + 'expiry', + 'id', + 'last_seen', + 'name', + 'token', + 'active', + 'revoked', + 'user', + 'in_use', + ] diff --git a/src/frontend/src/enums/ApiEndpoints.tsx b/src/frontend/src/enums/ApiEndpoints.tsx index 850c4506da..7a238d476a 100644 --- a/src/frontend/src/enums/ApiEndpoints.tsx +++ b/src/frontend/src/enums/ApiEndpoints.tsx @@ -14,6 +14,7 @@ export enum ApiEndpoints { user_me = 'user/me/', user_roles = 'user/roles/', user_token = 'user/token/', + user_tokens = 'user/tokens/', user_simple_login = 'email/generate/', user_reset = 'auth/password/reset/', user_reset_set = 'auth/password/reset/confirm/', diff --git a/src/frontend/src/pages/Index/Settings/AccountSettings/SecurityContent.tsx b/src/frontend/src/pages/Index/Settings/AccountSettings/SecurityContent.tsx index 1af5aadc17..b36f45ea91 100644 --- a/src/frontend/src/pages/Index/Settings/AccountSettings/SecurityContent.tsx +++ b/src/frontend/src/pages/Index/Settings/AccountSettings/SecurityContent.tsx @@ -8,6 +8,7 @@ import { Loader, Radio, Stack, + Table, Text, TextInput, Title, @@ -15,9 +16,10 @@ import { } from '@mantine/core'; import { IconAlertCircle, IconAt } from '@tabler/icons-react'; import { useQuery } from '@tanstack/react-query'; -import { useEffect, useState } from 'react'; +import { useEffect, useMemo, useState } from 'react'; import { api, queryClient } from '../../../../App'; +import { YesNoButton } from '../../../../components/buttons/YesNoButton'; import { PlaceholderPill } from '../../../../components/items/Placeholder'; import { ApiEndpoints } from '../../../../enums/ApiEndpoints'; import { apiUrl } from '../../../../states/ApiState'; @@ -85,6 +87,11 @@ export function SecurityContent() { )} )} + + + <Trans>Token</Trans> + + ); } @@ -329,3 +336,85 @@ function MfaContent() { ); } + +function TokenContent() { + const { isLoading, data, refetch } = useQuery({ + queryKey: ['token-list'], + queryFn: () => + api.get(apiUrl(ApiEndpoints.user_tokens)).then((res) => res.data) + }); + + function revokeToken(id: string) { + api + .delete(apiUrl(ApiEndpoints.user_tokens, id)) + .then(() => { + refetch(); + }) + .catch((res) => console.log(res.data)); + } + const rows = useMemo(() => { + if (isLoading || data === undefined) return null; + return data.map((token: any) => ( + + + + + {token.expiry} + {token.last_seen} + {token.token} + {token.name} + + {token.in_use ? ( + Token is used - no actions + ) : ( + + )} + + + )); + }, [data, isLoading]); + + /* renderer */ + if (isLoading) return ; + + if (data.length == 0) + return ( + } color="green"> + No tokens configured + + ); + + return ( + + + + + Active + + + Expiry + + + Last Seen + + + Token + + + Name + + + Actions + + + + {rows} +
+ ); +} From d5afc37264e25d47ca59de70fe5b88a0b19486af Mon Sep 17 00:00:00 2001 From: Oliver Date: Wed, 24 Jul 2024 11:02:25 +1000 Subject: [PATCH 02/55] Revert postgres version to 13 (#7717) * Adjust playwright test * Update docker compose for devcontainer * Revert docker container changes * Update notes * Revert base alpine version --- .devcontainer/docker-compose.yml | 2 +- contrib/container/Dockerfile | 4 ++-- contrib/container/dev-docker-compose.yml | 2 +- contrib/container/docker-compose.yml | 2 +- contrib/container/install_build_packages.sh | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml index 9fc7fd092f..aa549c0361 100644 --- a/.devcontainer/docker-compose.yml +++ b/.devcontainer/docker-compose.yml @@ -2,7 +2,7 @@ version: "3" services: db: - image: postgres:14 + image: postgres:13 restart: unless-stopped expose: - 5432/tcp diff --git a/contrib/container/Dockerfile b/contrib/container/Dockerfile index 63e5013524..572a286f5d 100644 --- a/contrib/container/Dockerfile +++ b/contrib/container/Dockerfile @@ -9,7 +9,7 @@ # - Runs InvenTree web server under django development server # - Monitors source files for any changes, and live-reloads server -ARG base_image=python:3.11-alpine3.20 +ARG base_image=python:3.11-alpine3.18 FROM ${base_image} AS inventree_base # Build arguments for this image @@ -64,7 +64,7 @@ RUN apk add --no-cache \ # Weasyprint requirements : https://doc.courtbouillon.org/weasyprint/stable/first_steps.html#alpine-3-12 py3-pip py3-pillow py3-cffi py3-brotli pango poppler-utils openldap \ # Postgres client - postgresql14-client \ + postgresql13-client \ # MySQL / MariaDB client mariadb-client mariadb-connector-c \ && \ diff --git a/contrib/container/dev-docker-compose.yml b/contrib/container/dev-docker-compose.yml index 0fcffdc20b..4b84be12a5 100644 --- a/contrib/container/dev-docker-compose.yml +++ b/contrib/container/dev-docker-compose.yml @@ -20,7 +20,7 @@ services: # Use PostgreSQL as the database backend # Note: This can be changed to a different backend if required inventree-dev-db: - image: postgres:14 + image: postgres:13 expose: - 5432/tcp environment: diff --git a/contrib/container/docker-compose.yml b/contrib/container/docker-compose.yml index f565138c51..de38b655b8 100644 --- a/contrib/container/docker-compose.yml +++ b/contrib/container/docker-compose.yml @@ -38,7 +38,7 @@ services: # Database service # Use PostgreSQL as the database backend inventree-db: - image: postgres:14 + image: postgres:13 container_name: inventree-db expose: - ${INVENTREE_DB_PORT:-5432}/tcp diff --git a/contrib/container/install_build_packages.sh b/contrib/container/install_build_packages.sh index f549b867fd..bbeae43a54 100644 --- a/contrib/container/install_build_packages.sh +++ b/contrib/container/install_build_packages.sh @@ -1,12 +1,12 @@ #!/bin/ash # Install system packages required for building InvenTree python libraries -# Note that for postgreslql, we use the 14 version, which matches the version used in the InvenTree docker image +# Note that for postgreslql, we use the version 13, which matches the version used in the InvenTree docker image apk add gcc g++ musl-dev openssl-dev libffi-dev cargo python3-dev openldap-dev \ libstdc++ build-base linux-headers py3-grpcio \ jpeg-dev openjpeg-dev libwebp-dev zlib-dev \ sqlite sqlite-dev \ mariadb-connector-c-dev mariadb-client mariadb-dev \ - postgresql14-dev postgresql-libs \ + postgresql13-dev postgresql-libs \ $@ From 96abd0898c043d0cdbab846647d15bc189709bdf Mon Sep 17 00:00:00 2001 From: Lukas <76838159+wolflu05@users.noreply.github.com> Date: Wed, 24 Jul 2024 04:36:02 +0200 Subject: [PATCH 03/55] Migrate Icons to Tabler icons and integrate into PUI (#7684) * add icon backend implementation * implement pui icon picker * integrate icons in PUI * Bump API version * PUI: add icon to detail pages top header * CUI: explain icon format and change link to tabler icons site * CUI: use new icon packs * move default icon implementation to backend * add icon template tag to use in report printing * add missing migrations * fit to previous schema with part category icon * fit to previous schema with part category icon * add icon pack plugin integration * Add custom command to migrate icons * add docs * fix: tests * fix: tests * add tests * fix: tests * fix: tests * fix: tests * fix tests * fix sonarcloud issues * add logging * remove unneded pass * significantly improve performance of icon picker component --- .vscode/launch.json | 26 +- docs/docs/extend/plugins/icon.md | 19 + docs/docs/report/helpers.md | 25 ++ docs/docs/stock/stock.md | 8 + docs/mkdocs.yml | 1 + .../InvenTree/InvenTree/api_version.py | 6 +- .../management/commands/migrate_icons.py | 192 ++++++++++ src/backend/InvenTree/InvenTree/models.py | 12 +- .../InvenTree/static/css/inventree.css | 11 + .../InvenTree/static/tabler-icons/LICENSE | 21 ++ .../InvenTree/static/tabler-icons/icons.json | 1 + .../static/tabler-icons/tabler-icons.ttf | Bin 0 -> 2386168 bytes .../static/tabler-icons/tabler-icons.woff | Bin 0 -> 1189756 bytes .../static/tabler-icons/tabler-icons.woff2 | Bin 0 -> 840176 bytes src/backend/InvenTree/build/test_api.py | 2 +- src/backend/InvenTree/common/api.py | 16 + src/backend/InvenTree/common/icons.py | 114 ++++++ src/backend/InvenTree/common/models.py | 2 + src/backend/InvenTree/common/serializers.py | 18 + src/backend/InvenTree/common/tests.py | 42 +++ src/backend/InvenTree/common/validators.py | 10 + ...ve_partcategory_icon_partcategory__icon.py | 29 ++ src/backend/InvenTree/part/models.py | 29 +- src/backend/InvenTree/part/serializers.py | 8 + .../part/templates/part/category.html | 12 +- .../InvenTree/part/templates/part/detail.html | 1 - src/backend/InvenTree/part/test_category.py | 28 ++ .../InvenTree/plugin/base/icons/mixins.py | 34 ++ .../InvenTree/plugin/mixins/__init__.py | 2 + .../plugin/samples/icons/__init__.py | 0 .../plugin/samples/icons/icon_sample.py | 39 ++ .../plugin/samples/icons/test_icon_sample.py | 52 +++ .../InvenTree/report/templatetags/report.py | 60 +++ src/backend/InvenTree/report/tests.py | 25 ++ src/backend/InvenTree/script/update_icons.py | 67 ++++ ...lter_stocklocation_custom_icon_and_more.py | 24 ++ src/backend/InvenTree/stock/models.py | 10 + .../stock/templates/stock/item_base.html | 1 - .../stock/templates/stock/location.html | 12 +- src/backend/InvenTree/stock/test_api.py | 31 +- src/backend/InvenTree/stock/tests.py | 44 ++- .../InvenTree/settings/settings_staff_js.html | 21 +- .../InvenTree/templates/js/dynamic/nav.js | 11 +- .../templates/js/translated/build.js | 3 - .../templates/js/translated/forms.js | 1 - .../templates/js/translated/helpers.js | 66 ++++ .../js/translated/model_renderers.js | 3 +- .../InvenTree/templates/js/translated/part.js | 16 +- .../templates/js/translated/purchase_order.js | 1 - .../templates/js/translated/return_order.js | 1 - .../templates/js/translated/stock.js | 18 +- src/frontend/package.json | 5 +- .../src/components/details/Details.tsx | 2 +- .../editors/TemplateEditor/TemplateEditor.tsx | 6 +- .../components/forms/fields/ApiFormField.tsx | 6 + .../src/components/forms/fields/IconField.tsx | 352 ++++++++++++++++++ .../src/components/items/ApiIcon.css.ts | 13 + src/frontend/src/components/items/ApiIcon.tsx | 27 ++ .../src/components/nav/BreadcrumbList.tsx | 6 +- .../src/components/nav/NavigationTree.tsx | 13 +- .../src/components/nav/PageDetail.tsx | 11 +- .../src/components/render/Instance.tsx | 3 + src/frontend/src/components/render/Part.tsx | 2 + src/frontend/src/components/render/Stock.tsx | 4 +- src/frontend/src/enums/ApiEndpoints.tsx | 1 + src/frontend/src/forms/PartForms.tsx | 4 +- src/frontend/src/forms/StockForms.tsx | 4 +- .../src/pages/part/CategoryDetail.tsx | 15 +- .../src/pages/stock/LocationDetail.tsx | 15 +- src/frontend/src/states/IconState.tsx | 68 ++++ src/frontend/src/states/states.tsx | 2 + .../src/tables/part/PartCategoryTable.tsx | 10 +- .../src/tables/stock/LocationTypesTable.tsx | 16 +- .../src/tables/stock/StockLocationTable.tsx | 10 +- src/frontend/yarn.lock | 32 ++ 75 files changed, 1702 insertions(+), 100 deletions(-) create mode 100644 docs/docs/extend/plugins/icon.md create mode 100644 src/backend/InvenTree/InvenTree/management/commands/migrate_icons.py create mode 100644 src/backend/InvenTree/InvenTree/static/tabler-icons/LICENSE create mode 100644 src/backend/InvenTree/InvenTree/static/tabler-icons/icons.json create mode 100644 src/backend/InvenTree/InvenTree/static/tabler-icons/tabler-icons.ttf create mode 100644 src/backend/InvenTree/InvenTree/static/tabler-icons/tabler-icons.woff create mode 100644 src/backend/InvenTree/InvenTree/static/tabler-icons/tabler-icons.woff2 create mode 100644 src/backend/InvenTree/common/icons.py create mode 100644 src/backend/InvenTree/part/migrations/0127_remove_partcategory_icon_partcategory__icon.py create mode 100644 src/backend/InvenTree/plugin/base/icons/mixins.py create mode 100644 src/backend/InvenTree/plugin/samples/icons/__init__.py create mode 100644 src/backend/InvenTree/plugin/samples/icons/icon_sample.py create mode 100644 src/backend/InvenTree/plugin/samples/icons/test_icon_sample.py create mode 100644 src/backend/InvenTree/script/update_icons.py create mode 100644 src/backend/InvenTree/stock/migrations/0112_alter_stocklocation_custom_icon_and_more.py create mode 100644 src/frontend/src/components/forms/fields/IconField.tsx create mode 100644 src/frontend/src/components/items/ApiIcon.css.ts create mode 100644 src/frontend/src/components/items/ApiIcon.tsx create mode 100644 src/frontend/src/states/IconState.tsx diff --git a/.vscode/launch.json b/.vscode/launch.json index effc92367a..a374de9140 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -6,19 +6,37 @@ "configurations": [ { "name": "InvenTree Server", - "type": "python", + "type": "debugpy", "request": "launch", "program": "${workspaceFolder}/src/backend/InvenTree/manage.py", - "args": ["runserver"], + "args": [ + "runserver", + // "0.0.0.0:8000", // expose server in network (useful for testing with mobile app) + // "--noreload" // disable auto-reload + ], + "django": true, + "justMyCode": true + }, + { + "name": "InvenTree Server - Tests", + "type": "debugpy", + "request": "launch", + "program": "${workspaceFolder}/src/backend/InvenTree/manage.py", + "args": [ + "test", + // "part.test_api.PartCategoryAPITest", // run only a specific test + ], "django": true, "justMyCode": true }, { "name": "InvenTree Server - 3rd party", - "type": "python", + "type": "debugpy", "request": "launch", "program": "${workspaceFolder}/src/backend/InvenTree/manage.py", - "args": ["runserver"], + "args": [ + "runserver" + ], "django": true, "justMyCode": false }, diff --git a/docs/docs/extend/plugins/icon.md b/docs/docs/extend/plugins/icon.md new file mode 100644 index 0000000000..8913539285 --- /dev/null +++ b/docs/docs/extend/plugins/icon.md @@ -0,0 +1,19 @@ +--- +title: Icon Pack Mixin +--- + +## IconPackMixin + +The IconPackMixin class provides basic functionality for letting plugins expose custom icon packs that are available in the InvenTree UI. This is especially useful to provide a custom crafted icon pack with icons for different location types, e.g. different sizes and styles of drawers, bags, ESD bags, ... which are not available in the standard tabler icons library. + +### Sample Plugin + +The following example demonstrates how to use the `IconPackMixin` class to add a custom icon pack: + +::: plugin.samples.icons.icon_sample.SampleIconPlugin + options: + show_bases: False + show_root_heading: False + show_root_toc_entry: False + show_source: True + members: [] diff --git a/docs/docs/report/helpers.md b/docs/docs/report/helpers.md index ce2a1d9188..3e8f8aff6f 100644 --- a/docs/docs/report/helpers.md +++ b/docs/docs/report/helpers.md @@ -259,6 +259,31 @@ A shortcut function is provided for rendering an image associated with a Company *Preview* and *thumbnail* image variations can be rendered for the `company_image` tag, in a similar manner to [part image variations](#image-variations) +## Icons + +Some models (e.g. part categories and locations) allow to specify a custom icon. To render these icons in a report, there is a `{% raw %}{% icon location.icon %}{% endraw %}` template tag from the report template library available. + +This tag renders the required html for the icon. + +!!! info "Loading fonts" + Additionally the icon fonts need to be loaded into the template. This can be done using the `{% raw %}{% include_icon_fonts %}{% endraw %}` template tag inside of a style block + +!!! tip "Custom classes for styling the icon further" + The icon template tag accepts an optional `class` argument which can be used to apply a custom class to the rendered icon used to style the icon further e.g. positioning it, changing it's size, ... `{% raw %}{% icon location.icon class="my-class" %}{% endraw %}`. + +```html +{% raw %} +{% load report %} + +{% block style %} +{% include_icon_fonts %} +{% endblock style %} + +{% icon location.icon %} + +{% endraw %} +``` + ## InvenTree Logo A template tag is provided to load the InvenTree logo image into a report. You can render the logo using the `{% raw %}{% logo_image %}{% endraw %}` tag: diff --git a/docs/docs/stock/stock.md b/docs/docs/stock/stock.md index 8e9690b5ec..a72841fc90 100644 --- a/docs/docs/stock/stock.md +++ b/docs/docs/stock/stock.md @@ -6,6 +6,14 @@ title: Stock A stock location represents a physical real-world location where *Stock Items* are stored. Locations are arranged in a cascading manner and each location may contain multiple sub-locations, or stock, or both. +### Icons + +Stock locations can be assigned custom icons (either directly or through [Stock Location Types](#stock-location-type)). When using PUI there is a custom icon picker component available that can help to select the right icon. However in CUI the icon needs to be entered manually. + +By default, the tabler icons package (with prefix: `ti`) is available. To manually select an item, search on the [tabler icons](https://tabler.io/icons) page for an icon and copy its name e.g. `bookmark`. Some icons have a filled and an outline version (if no variants are specified, it's an outline variant). Now these values can be put into the format: `::`. E.g. `ti:bookmark:outline` or `ti:bookmark:filled`. + +If there are some icons missing in the tabler icons package, users can even install their own custom icon packs through a plugin. See [`IconPackMixin`](../extend/plugins/icon.md). + ## Stock Location Type A stock location type represents a specific type of location (e.g. one specific size of drawer, shelf, ... or box) which can be assigned to multiple stock locations. In the first place, it is used to specify an icon and having the icon in sync for all locations that use this location type, but it also serves as a data field to quickly see what type of location this is. It is planned to add e.g. drawer dimension information to the location type to add a "find a matching, empty stock location" tool. diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 75974387d7..ed0e673d02 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -203,6 +203,7 @@ nav: - Barcode Mixin: extend/plugins/barcode.md - Currency Mixin: extend/plugins/currency.md - Event Mixin: extend/plugins/event.md + - Icon Pack Mixin: extend/plugins/icon.md - Label Printing Mixin: extend/plugins/label.md - Locate Mixin: extend/plugins/locate.md - Navigation Mixin: extend/plugins/navigation.md diff --git a/src/backend/InvenTree/InvenTree/api_version.py b/src/backend/InvenTree/InvenTree/api_version.py index 0cbdbf287b..1082460451 100644 --- a/src/backend/InvenTree/InvenTree/api_version.py +++ b/src/backend/InvenTree/InvenTree/api_version.py @@ -1,12 +1,16 @@ """InvenTree API version information.""" # InvenTree API version -INVENTREE_API_VERSION = 227 +INVENTREE_API_VERSION = 228 """Increment this API version number whenever there is a significant change to the API that any clients need to know about.""" INVENTREE_API_TEXT = """ +v228 - 2024-07-18 : https://github.com/inventree/InvenTree/pull/7684 + - Adds "icon" field to the PartCategory.path and StockLocation.path API + - Adds icon packages API endpoint + v227 - 2024-07-19 : https://github.com/inventree/InvenTree/pull/7693/ - Adds endpoints to list and revoke the tokens issued to the current user diff --git a/src/backend/InvenTree/InvenTree/management/commands/migrate_icons.py b/src/backend/InvenTree/InvenTree/management/commands/migrate_icons.py new file mode 100644 index 0000000000..c4e1305686 --- /dev/null +++ b/src/backend/InvenTree/InvenTree/management/commands/migrate_icons.py @@ -0,0 +1,192 @@ +"""Custom management command to migrate the old FontAwesome icons.""" + +import json + +from django.core.exceptions import ValidationError +from django.core.management.base import BaseCommand, CommandError +from django.db import models + +from common.icons import validate_icon +from part.models import PartCategory +from stock.models import StockLocation, StockLocationType + + +class Command(BaseCommand): + """Generate an icon map from the FontAwesome library to the new icon library.""" + + help = """Helper command to migrate the old FontAwesome icons to the new icon library.""" + + def add_arguments(self, parser): + """Add the arguments.""" + parser.add_argument( + '--output-file', + type=str, + help='Path to file to write generated icon map to', + ) + parser.add_argument( + '--input-file', type=str, help='Path to file to read icon map from' + ) + parser.add_argument( + '--include-items', + default=False, + action='store_true', + help='Include referenced inventree items in the output icon map (optional)', + ) + parser.add_argument( + '--import-now', + default=False, + action='store_true', + help='CAUTION: If this flag is set, the icon map will be imported and the database will be touched', + ) + + def handle(self, *args, **kwargs): + """Generate an icon map from the FontAwesome library to the new icon library.""" + # Check for invalid combinations of arguments + if kwargs['output_file'] and kwargs['input_file']: + raise CommandError('Cannot specify both --input-file and --output-file') + + if not kwargs['output_file'] and not kwargs['input_file']: + raise CommandError('Must specify either --input-file or --output-file') + + if kwargs['include_items'] and not kwargs['output_file']: + raise CommandError( + '--include-items can only be used with an --output-file specified' + ) + + if kwargs['output_file'] and kwargs['import_now']: + raise CommandError( + '--import-now can only be used with an --input-file specified' + ) + + ICON_MODELS = [ + (StockLocation, 'custom_icon'), + (StockLocationType, 'icon'), + (PartCategory, '_icon'), + ] + + def get_model_items_with_icons(model: models.Model, icon_field: str): + """Return a list of models with icon fields.""" + return model.objects.exclude(**{f'{icon_field}__isnull': True}).exclude(**{ + f'{icon_field}__exact': '' + }) + + # Generate output icon map file + if kwargs['output_file']: + icons = {} + + for model, icon_name in ICON_MODELS: + self.stdout.write( + f'Processing model {model.__name__} with icon field {icon_name}' + ) + + items = get_model_items_with_icons(model, icon_name) + + for item in items: + icon = getattr(item, icon_name) + + try: + validate_icon(icon) + continue # Skip if the icon is already valid + except ValidationError: + pass + + if icon not in icons: + icons[icon] = { + **({'items': []} if kwargs['include_items'] else {}), + 'new_icon': '', + } + + if kwargs['include_items']: + icons[icon]['items'].append({ + 'model': model.__name__.lower(), + 'id': item.id, # type: ignore + }) + + self.stdout.write(f'Writing icon map for {len(icons.keys())} icons') + with open(kwargs['output_file'], 'w') as f: + json.dump(icons, f, indent=2) + + self.stdout.write(f'Icon map written to {kwargs["output_file"]}') + + # Import icon map file + if kwargs['input_file']: + with open(kwargs['input_file'], 'r') as f: + icons = json.load(f) + + self.stdout.write(f'Loaded icon map for {len(icons.keys())} icons') + + self.stdout.write('Verifying icon map') + has_errors = False + + # Verify that all new icons are valid icons + for old_icon, data in icons.items(): + try: + validate_icon(data.get('new_icon', '')) + except ValidationError: + self.stdout.write( + f'[ERR] Invalid icon: "{old_icon}" -> "{data.get("new_icon", "")}' + ) + has_errors = True + + # Verify that all required items are provided in the icon map + for model, icon_name in ICON_MODELS: + self.stdout.write( + f'Processing model {model.__name__} with icon field {icon_name}' + ) + items = get_model_items_with_icons(model, icon_name) + + for item in items: + icon = getattr(item, icon_name) + + try: + validate_icon(icon) + continue # Skip if the icon is already valid + except ValidationError: + pass + + if icon not in icons: + self.stdout.write( + f' [ERR] Icon "{icon}" not found in icon map' + ) + has_errors = True + + # If there are errors, stop here + if has_errors: + self.stdout.write( + '[ERR] Icon map has errors, please fix them before continuing with importing' + ) + return + + # Import the icon map into the database if the flag is set + if kwargs['import_now']: + self.stdout.write('Start importing icons and updating database...') + cnt = 0 + + for model, icon_name in ICON_MODELS: + self.stdout.write( + f'Processing model {model.__name__} with icon field {icon_name}' + ) + items = get_model_items_with_icons(model, icon_name) + + for item in items: + icon = getattr(item, icon_name) + + try: + validate_icon(icon) + continue # Skip if the icon is already valid + except ValidationError: + pass + + setattr(item, icon_name, icons[icon]['new_icon']) + cnt += 1 + item.save() + + self.stdout.write( + f'Icon map successfully imported - changed {cnt} items' + ) + self.stdout.write('Icons are now migrated') + else: + self.stdout.write('Icon map is valid and ready to be imported') + self.stdout.write( + 'Run the command with --import-now to import the icon map and update the database' + ) diff --git a/src/backend/InvenTree/InvenTree/models.py b/src/backend/InvenTree/InvenTree/models.py index 81a4fd002a..c9f7a31253 100644 --- a/src/backend/InvenTree/InvenTree/models.py +++ b/src/backend/InvenTree/InvenTree/models.py @@ -575,6 +575,9 @@ class InvenTreeTree(MetadataMixin, PluginValidationMixin, MPTTModel): # e.g. for StockLocation, this value is 'location' ITEM_PARENT_KEY = None + # Extra fields to include in the get_path result. E.g. icon + EXTRA_PATH_FIELDS = [] + class Meta: """Metaclass defines extra model properties.""" @@ -868,7 +871,14 @@ class InvenTreeTree(MetadataMixin, PluginValidationMixin, MPTTModel): name: , } """ - return [{'pk': item.pk, 'name': item.name} for item in self.path] + return [ + { + 'pk': item.pk, + 'name': item.name, + **{k: getattr(item, k, None) for k in self.EXTRA_PATH_FIELDS}, + } + for item in self.path + ] def __str__(self): """String representation of a category is the full path to that category.""" diff --git a/src/backend/InvenTree/InvenTree/static/css/inventree.css b/src/backend/InvenTree/InvenTree/static/css/inventree.css index 912f482243..cc392d28b7 100644 --- a/src/backend/InvenTree/InvenTree/static/css/inventree.css +++ b/src/backend/InvenTree/InvenTree/static/css/inventree.css @@ -1101,3 +1101,14 @@ a { .large-treeview-icon { font-size: 1em; } + +.api-icon { + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better font rendering */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} diff --git a/src/backend/InvenTree/InvenTree/static/tabler-icons/LICENSE b/src/backend/InvenTree/InvenTree/static/tabler-icons/LICENSE new file mode 100644 index 0000000000..974db1ac4b --- /dev/null +++ b/src/backend/InvenTree/InvenTree/static/tabler-icons/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020-2024 Paweł Kuna + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/src/backend/InvenTree/InvenTree/static/tabler-icons/icons.json b/src/backend/InvenTree/InvenTree/static/tabler-icons/icons.json new file mode 100644 index 0000000000..0f52ecfafc --- /dev/null +++ b/src/backend/InvenTree/InvenTree/static/tabler-icons/icons.json @@ -0,0 +1 @@ +{"a-b-2":{"name":"a-b-2","category":"","tags":["test","visual","user"],"variants":{"outline":"f25f"}},"a-b-off":{"name":"a-b-off","category":"","tags":["test","visual","user"],"variants":{"outline":"f0a6"}},"a-b":{"name":"a-b","category":"","tags":["test","visual","user"],"variants":{"outline":"ec36"}},"abacus-off":{"name":"abacus-off","category":"Math","tags":["abacus","math","counting","adding up"],"variants":{"outline":"f3b6"}},"abacus":{"name":"abacus","category":"Math","tags":["abacus","math","counting","adding up"],"variants":{"outline":"f05c"}},"abc":{"name":"abc","category":"","tags":["letters","alphabet","latin"],"variants":{"outline":"f567"}},"access-point-off":{"name":"access-point-off","category":"Devices","tags":["device","hosts","airwaves","wireless","network"],"variants":{"outline":"ed1a"}},"access-point":{"name":"access-point","category":"Devices","tags":["device","hosts","airwaves","wireless","network"],"variants":{"outline":"ed1b"}},"accessible-off":{"name":"accessible-off","category":"","tags":["low-vision","blind","disability","handicapped"],"variants":{"outline":"f0a7"}},"accessible":{"name":"accessible","category":"","tags":["low-vision","blind","disability","handicapped"],"variants":{"outline":"eba9","filled":"f6ea"}},"activity-heartbeat":{"name":"activity-heartbeat","category":"","tags":["pulse","lifeline","impuls","hospital","heartrate"],"variants":{"outline":"f0db"}},"activity":{"name":"activity","category":"","tags":["pulse","motion","health","action"],"variants":{"outline":"ed23"}},"ad-2":{"name":"ad-2","category":"Design","tags":["advert","advertisement","marketing","commercial","traffic"],"variants":{"outline":"ef1f"}},"ad-circle-off":{"name":"ad-circle-off","category":"","tags":["marketing","promotion","advertisement","shape"],"variants":{"outline":"f79d"}},"ad-circle":{"name":"ad-circle","category":"","tags":["marketing","promotion","advertisement","shape"],"variants":{"outline":"f79e","filled":"f7d3"}},"ad-off":{"name":"ad-off","category":"Design","tags":["advert","advertisement","marketing","commercial","traffic"],"variants":{"outline":"f3b7"}},"ad":{"name":"ad","category":"Design","tags":["advert","advertisement","marketing","commercial","traffic"],"variants":{"outline":"ea02","filled":"f6eb"}},"address-book-off":{"name":"address-book-off","category":"","tags":["contact","contacts","phonebook","profile","resources"],"variants":{"outline":"f3b8"}},"address-book":{"name":"address-book","category":"","tags":["contact","contacts","phonebook","profile","resources"],"variants":{"outline":"f021"}},"adjustments-alt":{"name":"adjustments-alt","category":"System","tags":["equalizer","sliders","controls","settings","filter"],"variants":{"outline":"ec37"}},"adjustments-bolt":{"name":"adjustments-bolt","category":"System","tags":[],"variants":{"outline":"f7fb"}},"adjustments-cancel":{"name":"adjustments-cancel","category":"System","tags":[],"variants":{"outline":"f7fc"}},"adjustments-check":{"name":"adjustments-check","category":"System","tags":[],"variants":{"outline":"f7fd"}},"adjustments-code":{"name":"adjustments-code","category":"System","tags":[],"variants":{"outline":"f7fe"}},"adjustments-cog":{"name":"adjustments-cog","category":"System","tags":[],"variants":{"outline":"f7ff"}},"adjustments-dollar":{"name":"adjustments-dollar","category":"System","tags":[],"variants":{"outline":"f800"}},"adjustments-down":{"name":"adjustments-down","category":"System","tags":[],"variants":{"outline":"f801"}},"adjustments-exclamation":{"name":"adjustments-exclamation","category":"System","tags":[],"variants":{"outline":"f802"}},"adjustments-heart":{"name":"adjustments-heart","category":"System","tags":[],"variants":{"outline":"f803"}},"adjustments-horizontal":{"name":"adjustments-horizontal","category":"System","tags":["equalizer","sliders","controls","settings","filter"],"variants":{"outline":"ec38"}},"adjustments-minus":{"name":"adjustments-minus","category":"System","tags":[],"variants":{"outline":"f804"}},"adjustments-off":{"name":"adjustments-off","category":"System","tags":["equalizer","sliders","controls","settings","filter"],"variants":{"outline":"f0a8"}},"adjustments-pause":{"name":"adjustments-pause","category":"System","tags":[],"variants":{"outline":"f805"}},"adjustments-pin":{"name":"adjustments-pin","category":"System","tags":[],"variants":{"outline":"f806"}},"adjustments-plus":{"name":"adjustments-plus","category":"System","tags":[],"variants":{"outline":"f807"}},"adjustments-question":{"name":"adjustments-question","category":"System","tags":[],"variants":{"outline":"f808"}},"adjustments-search":{"name":"adjustments-search","category":"System","tags":[],"variants":{"outline":"f809"}},"adjustments-share":{"name":"adjustments-share","category":"System","tags":[],"variants":{"outline":"f80a"}},"adjustments-star":{"name":"adjustments-star","category":"System","tags":[],"variants":{"outline":"f80b"}},"adjustments-up":{"name":"adjustments-up","category":"System","tags":[],"variants":{"outline":"f80c"}},"adjustments-x":{"name":"adjustments-x","category":"System","tags":[],"variants":{"outline":"f80d"}},"adjustments":{"name":"adjustments","category":"System","tags":["equalizer","sliders","controls","settings","filter"],"variants":{"outline":"ea03","filled":"f6ec"}},"aerial-lift":{"name":"aerial-lift","category":"Vehicles","tags":["cable","car","gondola","mountains","ski","tramway"],"variants":{"outline":"edfe"}},"affiliate":{"name":"affiliate","category":"","tags":["network","connection","collaboration","people","connect","organization","networking"],"variants":{"outline":"edff","filled":"f6ed"}},"ai":{"name":"ai","category":"","tags":["artificial intelligence","letters","text","technology","robot","automatic","character"],"variants":{"outline":"fee7"}},"air-balloon":{"name":"air-balloon","category":"Vehicles","tags":["travel","adventure","attraction","fly","transport"],"variants":{"outline":"f4a6"}},"air-conditioning-disabled":{"name":"air-conditioning-disabled","category":"","tags":["cold","home","cooling","hot","off"],"variants":{"outline":"f542"}},"air-conditioning":{"name":"air-conditioning","category":"","tags":["cold","ice","home","cooling","heating","hot"],"variants":{"outline":"f3a2"}},"air-traffic-control":{"name":"air-traffic-control","category":"Map","tags":[],"variants":{"outline":"fb01"}},"alarm-average":{"name":"alarm-average","category":"System","tags":["notification","metric","ringing","mean","alertness","time","clockwork","signal","bell","chime"],"variants":{"outline":"fc9e"}},"alarm-minus":{"name":"alarm-minus","category":"System","tags":["alarm","bell","notification","delete","remove"],"variants":{"outline":"f630","filled":"f70a"}},"alarm-off":{"name":"alarm-off","category":"System","tags":["time","watch","clock","ring"],"variants":{"outline":"f0a9"}},"alarm-plus":{"name":"alarm-plus","category":"System","tags":["alarm","bell","notification","add","new"],"variants":{"outline":"f631","filled":"f70b"}},"alarm-snooze":{"name":"alarm-snooze","category":"System","tags":["alarm","bell","notification","sleep","nap"],"variants":{"outline":"f632","filled":"f70c"}},"alarm":{"name":"alarm","category":"System","tags":["time","watch","clock","ring"],"variants":{"outline":"ea04","filled":"f709"}},"album-off":{"name":"album-off","category":"","tags":["photos","photography","gallery","music","image"],"variants":{"outline":"f3b9"}},"album":{"name":"album","category":"","tags":["photos","photography","gallery","music","image"],"variants":{"outline":"f022"}},"alert-circle-off":{"name":"alert-circle-off","category":"System","tags":["warning","danger","caution","risk"],"variants":{"outline":"fc65"}},"alert-circle":{"name":"alert-circle","category":"System","tags":["warning","danger","caution","risk"],"variants":{"outline":"ea05","filled":"f6ee"}},"alert-hexagon-off":{"name":"alert-hexagon-off","category":"System","tags":[],"variants":{"outline":"fc66"}},"alert-hexagon":{"name":"alert-hexagon","category":"System","tags":[],"variants":{"outline":"f80e","filled":"fa34"}},"alert-octagon":{"name":"alert-octagon","category":"System","tags":["warning","danger","caution","risk"],"variants":{"outline":"ecc6","filled":"f6ef"}},"alert-small-off":{"name":"alert-small-off","category":"System","tags":[],"variants":{"outline":"fc67"}},"alert-small":{"name":"alert-small","category":"System","tags":[],"variants":{"outline":"f80f"}},"alert-square-rounded-off":{"name":"alert-square-rounded-off","category":"System","tags":[],"variants":{"outline":"fc68"}},"alert-square-rounded":{"name":"alert-square-rounded","category":"System","tags":[],"variants":{"outline":"f810","filled":"fa36"}},"alert-square":{"name":"alert-square","category":"System","tags":[],"variants":{"outline":"f811","filled":"fa35"}},"alert-triangle-off":{"name":"alert-triangle-off","category":"System","tags":["warning","danger","caution","risk"],"variants":{"outline":"fc69"}},"alert-triangle":{"name":"alert-triangle","category":"System","tags":["warning","danger","caution","risk"],"variants":{"outline":"ea06","filled":"f6f0"}},"alien":{"name":"alien","category":"","tags":["universe","extraterrestrial","ufo","space","galaxy","planet"],"variants":{"outline":"ebde","filled":"f70d"}},"align-box-bottom-center":{"name":"align-box-bottom-center","category":"Text","tags":["text","type","down","south"],"variants":{"outline":"f530","filled":"f70e"}},"align-box-bottom-left":{"name":"align-box-bottom-left","category":"Text","tags":["text","type","west","corner"],"variants":{"outline":"f531","filled":"f70f"}},"align-box-bottom-right":{"name":"align-box-bottom-right","category":"Text","tags":["text","type","east","corner"],"variants":{"outline":"f532","filled":"f710"}},"align-box-center-bottom":{"name":"align-box-center-bottom","category":"Text","tags":[],"variants":{"outline":"facb"}},"align-box-center-middle":{"name":"align-box-center-middle","category":"Text","tags":["text","type","line","horizontal"],"variants":{"outline":"f79f","filled":"f7d4"}},"align-box-center-stretch":{"name":"align-box-center-stretch","category":"Text","tags":[],"variants":{"outline":"facc"}},"align-box-center-top":{"name":"align-box-center-top","category":"Text","tags":[],"variants":{"outline":"facd"}},"align-box-left-bottom":{"name":"align-box-left-bottom","category":"Text","tags":["text","type","west","down","south","corner"],"variants":{"outline":"f533","filled":"f711"}},"align-box-left-middle":{"name":"align-box-left-middle","category":"Text","tags":["text","type","west"],"variants":{"outline":"f534","filled":"f712"}},"align-box-left-stretch":{"name":"align-box-left-stretch","category":"Text","tags":[],"variants":{"outline":"face"}},"align-box-left-top":{"name":"align-box-left-top","category":"Text","tags":["text","type","west","up","north","corner"],"variants":{"outline":"f535","filled":"f713"}},"align-box-right-bottom":{"name":"align-box-right-bottom","category":"Text","tags":["text","type","east","down","south","corner"],"variants":{"outline":"f536","filled":"f714"}},"align-box-right-middle":{"name":"align-box-right-middle","category":"Text","tags":["text","type","east"],"variants":{"outline":"f537","filled":"f7d5"}},"align-box-right-stretch":{"name":"align-box-right-stretch","category":"Text","tags":[],"variants":{"outline":"facf"}},"align-box-right-top":{"name":"align-box-right-top","category":"Text","tags":["text","type","east","up","north","corner"],"variants":{"outline":"f538","filled":"f715"}},"align-box-top-center":{"name":"align-box-top-center","category":"Text","tags":["text","type","up","north"],"variants":{"outline":"f539","filled":"f716"}},"align-box-top-left":{"name":"align-box-top-left","category":"Text","tags":["text","type","up","north","east","corner"],"variants":{"outline":"f53a","filled":"f717"}},"align-box-top-right":{"name":"align-box-top-right","category":"Text","tags":["text","type","up","north","west","corner"],"variants":{"outline":"f53b","filled":"f718"}},"align-center":{"name":"align-center","category":"Text","tags":["text","alignment","position"],"variants":{"outline":"ea07"}},"align-justified":{"name":"align-justified","category":"Text","tags":["text","alignment","position"],"variants":{"outline":"ea08"}},"align-left-2":{"name":"align-left-2","category":"Text","tags":["text","alignment","position"],"variants":{"outline":"ff00"}},"align-left":{"name":"align-left","category":"Text","tags":["text","alignment","position"],"variants":{"outline":"ea09"}},"align-right-2":{"name":"align-right-2","category":"Text","tags":["text","alignment","position"],"variants":{"outline":"feff"}},"align-right":{"name":"align-right","category":"Text","tags":["text","alignment","position"],"variants":{"outline":"ea0a"}},"alpha":{"name":"alpha","category":"Letters","tags":["letter","alphabet","greek","math"],"variants":{"outline":"f543"}},"alphabet-arabic":{"name":"alphabet-arabic","category":"Text","tags":[],"variants":{"outline":"ff2f"}},"alphabet-bangla":{"name":"alphabet-bangla","category":"Text","tags":["language","alphabet","bangla","bengali"],"variants":{"outline":"ff2e"}},"alphabet-cyrillic":{"name":"alphabet-cyrillic","category":"Text","tags":["russia","letters","language"],"variants":{"outline":"f1df"}},"alphabet-greek":{"name":"alphabet-greek","category":"Text","tags":["letters","language","alpha","beta"],"variants":{"outline":"f1e0"}},"alphabet-hebrew":{"name":"alphabet-hebrew","category":"Text","tags":["language","alphabet","hebrew","jewish"],"variants":{"outline":"ff2d"}},"alphabet-korean":{"name":"alphabet-korean","category":"Text","tags":["language","alphabet","korean"],"variants":{"outline":"ff2c"}},"alphabet-latin":{"name":"alphabet-latin","category":"Text","tags":["letters","language","rome"],"variants":{"outline":"f1e1"}},"alphabet-thai":{"name":"alphabet-thai","category":"Text","tags":["language","alphabet","thailand"],"variants":{"outline":"ff2b"}},"alt":{"name":"alt","category":"","tags":["alternative","substitute","replacement","variant","different","alternate","variation","stand-in","option","choice"],"variants":{"outline":"fc54"}},"ambulance":{"name":"ambulance","category":"Vehicles","tags":["vehicle","car","hospital","ward","doctor","rescuer"],"variants":{"outline":"ebf5"}},"ampersand":{"name":"ampersand","category":"Math","tags":["and","also","besides","moreover"],"variants":{"outline":"f229"}},"analyze-off":{"name":"analyze-off","category":"","tags":["analytics","data","statistics","graph"],"variants":{"outline":"f3ba"}},"analyze":{"name":"analyze","category":"","tags":["analytics","data","statistics","graph"],"variants":{"outline":"f3a3","filled":"f719"}},"anchor-off":{"name":"anchor-off","category":"Map","tags":["hold","ship","harbor","docks"],"variants":{"outline":"f0f7"}},"anchor":{"name":"anchor","category":"Map","tags":["hold","ship","harbor","docks"],"variants":{"outline":"eb76"}},"angle":{"name":"angle","category":"Design","tags":["geometry","math","degrees"],"variants":{"outline":"ef20"}},"ankh":{"name":"ankh","category":"Symbols","tags":["egypt","religion","cultures","community"],"variants":{"outline":"f1cd"}},"antenna-bars-1":{"name":"antenna-bars-1","category":"Devices","tags":["signal","wireless","wi-fi","quality"],"variants":{"outline":"ecc7"}},"antenna-bars-2":{"name":"antenna-bars-2","category":"Devices","tags":["signal","wireless","wi-fi","quality"],"variants":{"outline":"ecc8"}},"antenna-bars-3":{"name":"antenna-bars-3","category":"Devices","tags":["signal","wireless","wi-fi","quality"],"variants":{"outline":"ecc9"}},"antenna-bars-4":{"name":"antenna-bars-4","category":"Devices","tags":["signal","wireless","wi-fi","quality"],"variants":{"outline":"ecca"}},"antenna-bars-5":{"name":"antenna-bars-5","category":"Devices","tags":["signal","wireless","wi-fi","quality"],"variants":{"outline":"eccb"}},"antenna-bars-off":{"name":"antenna-bars-off","category":"Devices","tags":["signal","wireless","wi-fi","quality"],"variants":{"outline":"f0aa"}},"antenna-off":{"name":"antenna-off","category":"Devices","tags":["reach","tv","network","connetion","signal","communication"],"variants":{"outline":"f3bb"}},"antenna":{"name":"antenna","category":"Devices","tags":["reach","tv","network","connetion","signal","communication"],"variants":{"outline":"f094"}},"aperture-off":{"name":"aperture-off","category":"Photography","tags":["hole","opening","vent"],"variants":{"outline":"f3bc"}},"aperture":{"name":"aperture","category":"Photography","tags":["hole","opening","vent"],"variants":{"outline":"eb58"}},"api-app-off":{"name":"api-app-off","category":"Development","tags":["development","software","developer","platform"],"variants":{"outline":"f0ab"}},"api-app":{"name":"api-app","category":"Development","tags":["development","software","developer","platform"],"variants":{"outline":"effc"}},"api-off":{"name":"api-off","category":"Development","tags":["programming","coding","program","code","configuration"],"variants":{"outline":"f0f8"}},"api":{"name":"api","category":"Development","tags":["programming","coding","program","code","configuration"],"variants":{"outline":"effd"}},"app-window":{"name":"app-window","category":"","tags":["browser","page","website","web","interface"],"variants":{"outline":"efe6","filled":"f71a"}},"apple":{"name":"apple","category":"Food","tags":["fruit","healthy","diet","fitness"],"variants":{"outline":"ef21"}},"apps-off":{"name":"apps-off","category":"Development","tags":["application","add-on","user","download","mobile"],"variants":{"outline":"f0ac"}},"apps":{"name":"apps","category":"Development","tags":["application","add-on","user","download","mobile"],"variants":{"outline":"ebb6","filled":"f6f1"}},"archery-arrow":{"name":"archery-arrow","category":"","tags":["bow","target","shoot","sports","archer","hunting","bullseye","flight","quiver","precision"],"variants":{"outline":"fc55"}},"archive-off":{"name":"archive-off","category":"Document","tags":["box","index","records","old","collect"],"variants":{"outline":"f0ad"}},"archive":{"name":"archive","category":"Document","tags":["box","index","records","old","collect"],"variants":{"outline":"ea0b","filled":"fa82"}},"armchair-2-off":{"name":"armchair-2-off","category":"","tags":["seat","chair","sofa","home","furniture"],"variants":{"outline":"f3bd"}},"armchair-2":{"name":"armchair-2","category":"","tags":["seat","chair","sofa","home","furniture"],"variants":{"outline":"efe7"}},"armchair-off":{"name":"armchair-off","category":"","tags":["seat","chair","sofa","home","furniture"],"variants":{"outline":"f3be"}},"armchair":{"name":"armchair","category":"","tags":["seat","chair","sofa","home","furniture"],"variants":{"outline":"ef9e"}},"arrow-autofit-content":{"name":"arrow-autofit-content","category":"Arrows","tags":["direction","east","west"],"variants":{"outline":"ef31","filled":"f6f2"}},"arrow-autofit-down":{"name":"arrow-autofit-down","category":"Arrows","tags":["direction","south"],"variants":{"outline":"ef32"}},"arrow-autofit-height":{"name":"arrow-autofit-height","category":"Arrows","tags":["direction","north","up","down","south"],"variants":{"outline":"ef33"}},"arrow-autofit-left":{"name":"arrow-autofit-left","category":"Arrows","tags":["direction","west"],"variants":{"outline":"ef34"}},"arrow-autofit-right":{"name":"arrow-autofit-right","category":"Arrows","tags":["direction","east","west"],"variants":{"outline":"ef35"}},"arrow-autofit-up":{"name":"arrow-autofit-up","category":"Arrows","tags":["direction","north"],"variants":{"outline":"ef36"}},"arrow-autofit-width":{"name":"arrow-autofit-width","category":"Arrows","tags":["direction","east","west"],"variants":{"outline":"ef37"}},"arrow-back-up-double":{"name":"arrow-back-up-double","category":"Arrows","tags":[],"variants":{"outline":"f9ec"}},"arrow-back-up":{"name":"arrow-back-up","category":"Arrows","tags":["pointer","return","revert","reverse","undo","left"],"variants":{"outline":"eb77"}},"arrow-back":{"name":"arrow-back","category":"Arrows","tags":["pointer","return","revert","reverse","undo","left"],"variants":{"outline":"ea0c"}},"arrow-badge-down":{"name":"arrow-badge-down","category":"Arrows","tags":["army","badge","military","rank","soldier","war","south","bottom"],"variants":{"outline":"f60b","filled":"f7d6"}},"arrow-badge-left":{"name":"arrow-badge-left","category":"Arrows","tags":["army","badge","military","rank","soldier","war","west"],"variants":{"outline":"f60c","filled":"f7d7"}},"arrow-badge-right":{"name":"arrow-badge-right","category":"Arrows","tags":["army","badge","military","rank","soldier","war","east"],"variants":{"outline":"f60d","filled":"f7d8"}},"arrow-badge-up":{"name":"arrow-badge-up","category":"Arrows","tags":["army","badge","military","rank","soldier","war","north"],"variants":{"outline":"f60e","filled":"f7d9"}},"arrow-bar-both":{"name":"arrow-bar-both","category":"Arrows","tags":[],"variants":{"outline":"fadd"}},"arrow-bar-down":{"name":"arrow-bar-down","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ea0d"}},"arrow-bar-left":{"name":"arrow-bar-left","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ea0e"}},"arrow-bar-right":{"name":"arrow-bar-right","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ea0f"}},"arrow-bar-to-down":{"name":"arrow-bar-to-down","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ec88"}},"arrow-bar-to-left":{"name":"arrow-bar-to-left","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ec89"}},"arrow-bar-to-right":{"name":"arrow-bar-to-right","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ec8a"}},"arrow-bar-to-up":{"name":"arrow-bar-to-up","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ec8b"}},"arrow-bar-up":{"name":"arrow-bar-up","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ea10"}},"arrow-bear-left-2":{"name":"arrow-bear-left-2","category":"Arrows","tags":["direction","north"],"variants":{"outline":"f044"}},"arrow-bear-left":{"name":"arrow-bear-left","category":"Arrows","tags":["direction","north"],"variants":{"outline":"f045"}},"arrow-bear-right-2":{"name":"arrow-bear-right-2","category":"Arrows","tags":["direction","north"],"variants":{"outline":"f046"}},"arrow-bear-right":{"name":"arrow-bear-right","category":"Arrows","tags":["direction","north"],"variants":{"outline":"f047"}},"arrow-big-down-line":{"name":"arrow-big-down-line","category":"Arrows","tags":["direction","south"],"variants":{"outline":"efe8","filled":"f6c7"}},"arrow-big-down-lines":{"name":"arrow-big-down-lines","category":"Arrows","tags":["direction","south"],"variants":{"outline":"efe9","filled":"f6c8"}},"arrow-big-down":{"name":"arrow-big-down","category":"Arrows","tags":["direction","south"],"variants":{"outline":"edda","filled":"f6c6"}},"arrow-big-left-line":{"name":"arrow-big-left-line","category":"Arrows","tags":["direction","west"],"variants":{"outline":"efea","filled":"f6ca"}},"arrow-big-left-lines":{"name":"arrow-big-left-lines","category":"Arrows","tags":["direction","west"],"variants":{"outline":"efeb","filled":"f6cb"}},"arrow-big-left":{"name":"arrow-big-left","category":"Arrows","tags":["direction","west"],"variants":{"outline":"eddb","filled":"f6c9"}},"arrow-big-right-line":{"name":"arrow-big-right-line","category":"Arrows","tags":["direction","east","west"],"variants":{"outline":"efec","filled":"f6cd"}},"arrow-big-right-lines":{"name":"arrow-big-right-lines","category":"Arrows","tags":["direction","east","west"],"variants":{"outline":"efed","filled":"f6ce"}},"arrow-big-right":{"name":"arrow-big-right","category":"Arrows","tags":["direction","east","west"],"variants":{"outline":"eddc","filled":"f6cc"}},"arrow-big-up-line":{"name":"arrow-big-up-line","category":"Arrows","tags":["direction","north"],"variants":{"outline":"efee","filled":"f6d0"}},"arrow-big-up-lines":{"name":"arrow-big-up-lines","category":"Arrows","tags":["direction","north"],"variants":{"outline":"efef","filled":"f6d1"}},"arrow-big-up":{"name":"arrow-big-up","category":"Arrows","tags":["direction","north"],"variants":{"outline":"eddd","filled":"f6cf"}},"arrow-bounce":{"name":"arrow-bounce","category":"Arrows","tags":["direction","cursor","up","pointer","move"],"variants":{"outline":"f3a4"}},"arrow-capsule":{"name":"arrow-capsule","category":"Arrows","tags":[],"variants":{"outline":"fade"}},"arrow-curve-left":{"name":"arrow-curve-left","category":"Arrows","tags":["direction","north"],"variants":{"outline":"f048"}},"arrow-curve-right":{"name":"arrow-curve-right","category":"Arrows","tags":["direction","north"],"variants":{"outline":"f049"}},"arrow-down-bar":{"name":"arrow-down-bar","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ed98"}},"arrow-down-circle":{"name":"arrow-down-circle","category":"Arrows","tags":["proceed","swipe","below","bottom"],"variants":{"outline":"ea11"}},"arrow-down-from-arc":{"name":"arrow-down-from-arc","category":"","tags":[],"variants":{"outline":"fd86"}},"arrow-down-left-circle":{"name":"arrow-down-left-circle","category":"Arrows","tags":["corner","bottom","point"],"variants":{"outline":"ea12"}},"arrow-down-left":{"name":"arrow-down-left","category":"Arrows","tags":["corner","bottom","point"],"variants":{"outline":"ea13"}},"arrow-down-rhombus":{"name":"arrow-down-rhombus","category":"Arrows","tags":["proceed","swipe","below","shape","bottom","south"],"variants":{"outline":"f61d"}},"arrow-down-right-circle":{"name":"arrow-down-right-circle","category":"Arrows","tags":["corner","bottom","point"],"variants":{"outline":"ea14"}},"arrow-down-right":{"name":"arrow-down-right","category":"Arrows","tags":["corner","bottom","point"],"variants":{"outline":"ea15"}},"arrow-down-square":{"name":"arrow-down-square","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ed9a"}},"arrow-down-tail":{"name":"arrow-down-tail","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ed9b"}},"arrow-down-to-arc":{"name":"arrow-down-to-arc","category":"","tags":[],"variants":{"outline":"fd87"}},"arrow-down":{"name":"arrow-down","category":"Arrows","tags":["proceed","swipe","below","bottom"],"variants":{"outline":"ea16"}},"arrow-elbow-left":{"name":"arrow-elbow-left","category":"Arrows","tags":[],"variants":{"outline":"f9ed"}},"arrow-elbow-right":{"name":"arrow-elbow-right","category":"Arrows","tags":[],"variants":{"outline":"f9ee"}},"arrow-fork":{"name":"arrow-fork","category":"Arrows","tags":["direction","north"],"variants":{"outline":"f04a"}},"arrow-forward-up-double":{"name":"arrow-forward-up-double","category":"Arrows","tags":[],"variants":{"outline":"f9ef"}},"arrow-forward-up":{"name":"arrow-forward-up","category":"Arrows","tags":["point","turn","next","redo","right"],"variants":{"outline":"eb78"}},"arrow-forward":{"name":"arrow-forward","category":"Arrows","tags":["point","turn","next","redo","right"],"variants":{"outline":"ea17"}},"arrow-guide":{"name":"arrow-guide","category":"Arrows","tags":["direction","west","bend","navigation"],"variants":{"outline":"f22a"}},"arrow-iteration":{"name":"arrow-iteration","category":"Arrows","tags":["direction","loop","right","east"],"variants":{"outline":"f578"}},"arrow-left-bar":{"name":"arrow-left-bar","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ed9c"}},"arrow-left-circle":{"name":"arrow-left-circle","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ea18"}},"arrow-left-from-arc":{"name":"arrow-left-from-arc","category":"","tags":[],"variants":{"outline":"fd88"}},"arrow-left-rhombus":{"name":"arrow-left-rhombus","category":"Arrows","tags":["proceed","swipe","below","shape","west"],"variants":{"outline":"f61e"}},"arrow-left-right":{"name":"arrow-left-right","category":"Arrows","tags":["direction","west","east"],"variants":{"outline":"f04b"}},"arrow-left-square":{"name":"arrow-left-square","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ed9d"}},"arrow-left-tail":{"name":"arrow-left-tail","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ed9e"}},"arrow-left-to-arc":{"name":"arrow-left-to-arc","category":"","tags":[],"variants":{"outline":"fd89"}},"arrow-left":{"name":"arrow-left","category":"Arrows","tags":["back","swipe","return"],"variants":{"outline":"ea19"}},"arrow-loop-left-2":{"name":"arrow-loop-left-2","category":"Arrows","tags":["direction","west"],"variants":{"outline":"f04c"}},"arrow-loop-left":{"name":"arrow-loop-left","category":"Arrows","tags":["drag","move","turn"],"variants":{"outline":"ed9f"}},"arrow-loop-right-2":{"name":"arrow-loop-right-2","category":"Arrows","tags":["direction","east"],"variants":{"outline":"f04d"}},"arrow-loop-right":{"name":"arrow-loop-right","category":"Arrows","tags":["drag","move","turn"],"variants":{"outline":"eda0"}},"arrow-merge-alt-left":{"name":"arrow-merge-alt-left","category":"Arrows","tags":["merge-left","shift-left","combine-left","direction-left","join-left","move-left","alt-left-arrow","leftward","left-shift","left-merge"],"variants":{"outline":"fc9f"}},"arrow-merge-alt-right":{"name":"arrow-merge-alt-right","category":"Arrows","tags":["merge-right","shift-right","combine-right","direction-right","join-right","move-right","alt-right-arrow","rightward","right-shift","right-merge"],"variants":{"outline":"fca0"}},"arrow-merge-both":{"name":"arrow-merge-both","category":"Arrows","tags":["direction","up","north","higher","right","left"],"variants":{"outline":"f23b"}},"arrow-merge-left":{"name":"arrow-merge-left","category":"Arrows","tags":["direction","up","north","higher"],"variants":{"outline":"f23c"}},"arrow-merge-right":{"name":"arrow-merge-right","category":"Arrows","tags":["direction","up","north","higher"],"variants":{"outline":"f23d"}},"arrow-merge":{"name":"arrow-merge","category":"Arrows","tags":["direction","north","up"],"variants":{"outline":"f04e"}},"arrow-move-down":{"name":"arrow-move-down","category":"Arrows","tags":["direction","south","bottom"],"variants":{"outline":"f2ba"}},"arrow-move-left":{"name":"arrow-move-left","category":"Arrows","tags":["direction","west"],"variants":{"outline":"f2bb"}},"arrow-move-right":{"name":"arrow-move-right","category":"Arrows","tags":["direction","east"],"variants":{"outline":"f2bc"}},"arrow-move-up":{"name":"arrow-move-up","category":"Arrows","tags":["direction","north","top"],"variants":{"outline":"f2bd"}},"arrow-narrow-down":{"name":"arrow-narrow-down","category":"Arrows","tags":["bottom","proceed","swipe","next"],"variants":{"outline":"ea1a"}},"arrow-narrow-left":{"name":"arrow-narrow-left","category":"Arrows","tags":["back","previous","pointer","point"],"variants":{"outline":"ea1b"}},"arrow-narrow-right":{"name":"arrow-narrow-right","category":"Arrows","tags":["next","proceed","point","pointer"],"variants":{"outline":"ea1c"}},"arrow-narrow-up":{"name":"arrow-narrow-up","category":"Arrows","tags":["top","point"],"variants":{"outline":"ea1d"}},"arrow-ramp-left-2":{"name":"arrow-ramp-left-2","category":"Arrows","tags":["direction","west"],"variants":{"outline":"f04f"}},"arrow-ramp-left-3":{"name":"arrow-ramp-left-3","category":"Arrows","tags":["direction","west"],"variants":{"outline":"f050"}},"arrow-ramp-left":{"name":"arrow-ramp-left","category":"Arrows","tags":["direction","side","turn"],"variants":{"outline":"ed3c"}},"arrow-ramp-right-2":{"name":"arrow-ramp-right-2","category":"Arrows","tags":["direction","east"],"variants":{"outline":"f051"}},"arrow-ramp-right-3":{"name":"arrow-ramp-right-3","category":"Arrows","tags":["direction","east"],"variants":{"outline":"f052"}},"arrow-ramp-right":{"name":"arrow-ramp-right","category":"Arrows","tags":["direction","side","turn"],"variants":{"outline":"ed3d"}},"arrow-right-bar":{"name":"arrow-right-bar","category":"Arrows","tags":["drag","move"],"variants":{"outline":"eda1"}},"arrow-right-circle":{"name":"arrow-right-circle","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ea1e"}},"arrow-right-from-arc":{"name":"arrow-right-from-arc","category":"","tags":[],"variants":{"outline":"fd8a"}},"arrow-right-rhombus":{"name":"arrow-right-rhombus","category":"Arrows","tags":["proceed","swipe","below","shape","east"],"variants":{"outline":"f61f"}},"arrow-right-square":{"name":"arrow-right-square","category":"Arrows","tags":["direction","east"],"variants":{"outline":"eda2"}},"arrow-right-tail":{"name":"arrow-right-tail","category":"Arrows","tags":["direction","east"],"variants":{"outline":"eda3"}},"arrow-right-to-arc":{"name":"arrow-right-to-arc","category":"","tags":[],"variants":{"outline":"fd8b"}},"arrow-right":{"name":"arrow-right","category":"Arrows","tags":["next","proceed","swipe"],"variants":{"outline":"ea1f"}},"arrow-rotary-first-left":{"name":"arrow-rotary-first-left","category":"Arrows","tags":["direction","south"],"variants":{"outline":"f053"}},"arrow-rotary-first-right":{"name":"arrow-rotary-first-right","category":"Arrows","tags":["direction","south"],"variants":{"outline":"f054"}},"arrow-rotary-last-left":{"name":"arrow-rotary-last-left","category":"Arrows","tags":["direction","north"],"variants":{"outline":"f055"}},"arrow-rotary-last-right":{"name":"arrow-rotary-last-right","category":"Arrows","tags":["direction","north"],"variants":{"outline":"f056"}},"arrow-rotary-left":{"name":"arrow-rotary-left","category":"Arrows","tags":["direction","west"],"variants":{"outline":"f057"}},"arrow-rotary-right":{"name":"arrow-rotary-right","category":"Arrows","tags":["direction","east"],"variants":{"outline":"f058"}},"arrow-rotary-straight":{"name":"arrow-rotary-straight","category":"Arrows","tags":["direction","north"],"variants":{"outline":"f059"}},"arrow-roundabout-left":{"name":"arrow-roundabout-left","category":"Arrows","tags":["direction","east","traffic","circle"],"variants":{"outline":"f22b"}},"arrow-roundabout-right":{"name":"arrow-roundabout-right","category":"Arrows","tags":["direction","west","traffic","circle"],"variants":{"outline":"f22c"}},"arrow-sharp-turn-left":{"name":"arrow-sharp-turn-left","category":"Arrows","tags":["direction","north","down"],"variants":{"outline":"f05a"}},"arrow-sharp-turn-right":{"name":"arrow-sharp-turn-right","category":"Arrows","tags":["direction","south","down"],"variants":{"outline":"f05b"}},"arrow-up-bar":{"name":"arrow-up-bar","category":"Arrows","tags":["direction","north"],"variants":{"outline":"eda4"}},"arrow-up-circle":{"name":"arrow-up-circle","category":"Arrows","tags":["top","point"],"variants":{"outline":"ea20"}},"arrow-up-from-arc":{"name":"arrow-up-from-arc","category":"","tags":[],"variants":{"outline":"fd8c"}},"arrow-up-left-circle":{"name":"arrow-up-left-circle","category":"Arrows","tags":["top","corner","point"],"variants":{"outline":"ea21"}},"arrow-up-left":{"name":"arrow-up-left","category":"Arrows","tags":["top","corner","point"],"variants":{"outline":"ea22"}},"arrow-up-rhombus":{"name":"arrow-up-rhombus","category":"Arrows","tags":["proceed","swipe","below","shape","top","north"],"variants":{"outline":"f620"}},"arrow-up-right-circle":{"name":"arrow-up-right-circle","category":"Arrows","tags":["top","corner","point"],"variants":{"outline":"ea23"}},"arrow-up-right":{"name":"arrow-up-right","category":"Arrows","tags":["top","corner","point"],"variants":{"outline":"ea24"}},"arrow-up-square":{"name":"arrow-up-square","category":"Arrows","tags":["direction","north"],"variants":{"outline":"eda6"}},"arrow-up-tail":{"name":"arrow-up-tail","category":"Arrows","tags":["direction","north"],"variants":{"outline":"eda7"}},"arrow-up-to-arc":{"name":"arrow-up-to-arc","category":"","tags":[],"variants":{"outline":"fd8d"}},"arrow-up":{"name":"arrow-up","category":"Arrows","tags":["top","point"],"variants":{"outline":"ea25"}},"arrow-wave-left-down":{"name":"arrow-wave-left-down","category":"Arrows","tags":["direction","south"],"variants":{"outline":"eda8"}},"arrow-wave-left-up":{"name":"arrow-wave-left-up","category":"Arrows","tags":["direction","north"],"variants":{"outline":"eda9"}},"arrow-wave-right-down":{"name":"arrow-wave-right-down","category":"Arrows","tags":["direction","south"],"variants":{"outline":"edaa"}},"arrow-wave-right-up":{"name":"arrow-wave-right-up","category":"Arrows","tags":["direction","north"],"variants":{"outline":"edab"}},"arrow-zig-zag":{"name":"arrow-zig-zag","category":"Arrows","tags":["direction","cursor","pointer","turn","move"],"variants":{"outline":"f4a7"}},"arrows-cross":{"name":"arrows-cross","category":"Arrows","tags":["direction","north","south"],"variants":{"outline":"effe"}},"arrows-diagonal-2":{"name":"arrows-diagonal-2","category":"Arrows","tags":["zoom","corners","stretch"],"variants":{"outline":"ea26"}},"arrows-diagonal-minimize-2":{"name":"arrows-diagonal-minimize-2","category":"Arrows","tags":["direction","south","north"],"variants":{"outline":"ef38"}},"arrows-diagonal-minimize":{"name":"arrows-diagonal-minimize","category":"Arrows","tags":["direction","south","north"],"variants":{"outline":"ef39"}},"arrows-diagonal":{"name":"arrows-diagonal","category":"Arrows","tags":["zoom","corners","stretch"],"variants":{"outline":"ea27"}},"arrows-diff":{"name":"arrows-diff","category":"Arrows","tags":["direction","right","left","west","east"],"variants":{"outline":"f296"}},"arrows-double-ne-sw":{"name":"arrows-double-ne-sw","category":"Arrows","tags":["direction","north","south"],"variants":{"outline":"edde"}},"arrows-double-nw-se":{"name":"arrows-double-nw-se","category":"Arrows","tags":["direction","north","south"],"variants":{"outline":"eddf"}},"arrows-double-se-nw":{"name":"arrows-double-se-nw","category":"Arrows","tags":["direction","north","south"],"variants":{"outline":"ede0"}},"arrows-double-sw-ne":{"name":"arrows-double-sw-ne","category":"Arrows","tags":["direction","north","south"],"variants":{"outline":"ede1"}},"arrows-down-up":{"name":"arrows-down-up","category":"Arrows","tags":["direction","north","south"],"variants":{"outline":"edac"}},"arrows-down":{"name":"arrows-down","category":"Arrows","tags":["direction","south"],"variants":{"outline":"edad"}},"arrows-exchange-2":{"name":"arrows-exchange-2","category":"Arrows","tags":["direction","west","east"],"variants":{"outline":"f1f3"}},"arrows-exchange":{"name":"arrows-exchange","category":"Arrows","tags":["direction","west","east"],"variants":{"outline":"f1f4"}},"arrows-horizontal":{"name":"arrows-horizontal","category":"Arrows","tags":["zoom","stretch","left","right"],"variants":{"outline":"eb59"}},"arrows-join-2":{"name":"arrows-join-2","category":"Arrows","tags":["direction","east"],"variants":{"outline":"edae"}},"arrows-join":{"name":"arrows-join","category":"Arrows","tags":["direction","east"],"variants":{"outline":"edaf"}},"arrows-left-down":{"name":"arrows-left-down","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ee00"}},"arrows-left-right":{"name":"arrows-left-right","category":"Arrows","tags":["direction","east","west"],"variants":{"outline":"edb0"}},"arrows-left":{"name":"arrows-left","category":"Arrows","tags":["direction","west"],"variants":{"outline":"edb1"}},"arrows-maximize":{"name":"arrows-maximize","category":"Arrows","tags":["fullscreen","expand"],"variants":{"outline":"ea28"}},"arrows-minimize":{"name":"arrows-minimize","category":"Arrows","tags":["fullscreen","exit","close"],"variants":{"outline":"ea29"}},"arrows-move-horizontal":{"name":"arrows-move-horizontal","category":"Arrows","tags":["direction","west","east","left","right"],"variants":{"outline":"f22d"}},"arrows-move-vertical":{"name":"arrows-move-vertical","category":"Arrows","tags":["direction","up","north","south","down","higher","lower"],"variants":{"outline":"f22e"}},"arrows-move":{"name":"arrows-move","category":"Arrows","tags":["direction","navigation","left","right","up","down","north","south","west","east","higher","lower"],"variants":{"outline":"f22f"}},"arrows-random":{"name":"arrows-random","category":"Arrows","tags":["direction","north","south","west","east"],"variants":{"outline":"f095"}},"arrows-right-down":{"name":"arrows-right-down","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ee01"}},"arrows-right-left":{"name":"arrows-right-left","category":"Arrows","tags":["direction","east","west"],"variants":{"outline":"edb2"}},"arrows-right":{"name":"arrows-right","category":"Arrows","tags":["direction","east"],"variants":{"outline":"edb3"}},"arrows-shuffle-2":{"name":"arrows-shuffle-2","category":"Arrows","tags":["direction","random","cross","mix","music"],"variants":{"outline":"efff"}},"arrows-shuffle":{"name":"arrows-shuffle","category":"Arrows","tags":["direction","random","cross","mix","music"],"variants":{"outline":"f000"}},"arrows-sort":{"name":"arrows-sort","category":"Arrows","tags":["top","bottom","parallel","order"],"variants":{"outline":"eb5a"}},"arrows-split-2":{"name":"arrows-split-2","category":"Arrows","tags":["direction","navigation","east"],"variants":{"outline":"edb4"}},"arrows-split":{"name":"arrows-split","category":"Arrows","tags":["direction","navigation","east"],"variants":{"outline":"edb5"}},"arrows-transfer-down":{"name":"arrows-transfer-down","category":"Arrows","tags":["direction","south","bottom"],"variants":{"outline":"f2cc"}},"arrows-transfer-up":{"name":"arrows-transfer-up","category":"Arrows","tags":["direction","north","top"],"variants":{"outline":"f2cd"}},"arrows-up-down":{"name":"arrows-up-down","category":"Arrows","tags":["direction","north","south"],"variants":{"outline":"edb6"}},"arrows-up-left":{"name":"arrows-up-left","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ee02"}},"arrows-up-right":{"name":"arrows-up-right","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ee03"}},"arrows-up":{"name":"arrows-up","category":"Arrows","tags":["direction","north"],"variants":{"outline":"edb7"}},"arrows-vertical":{"name":"arrows-vertical","category":"Arrows","tags":["expand","stretch","top","bottom"],"variants":{"outline":"eb5b"}},"artboard-off":{"name":"artboard-off","category":"Design","tags":["graphics","drawing","design","art","canvas"],"variants":{"outline":"f0ae"}},"artboard":{"name":"artboard","category":"Design","tags":["graphics","drawing","design","art","canvas"],"variants":{"outline":"ea2a","filled":"fa83"}},"article-off":{"name":"article-off","category":"","tags":["news","newspaper","media","blog"],"variants":{"outline":"f3bf"}},"article":{"name":"article","category":"","tags":["news","newspaper","media","blog"],"variants":{"outline":"f1e2","filled":"f7da"}},"aspect-ratio-off":{"name":"aspect-ratio-off","category":"Media","tags":["size","dimension","width","height","orientation"],"variants":{"outline":"f0af"}},"aspect-ratio":{"name":"aspect-ratio","category":"Media","tags":["size","dimension","width","height","orientation"],"variants":{"outline":"ed30","filled":"f7db"}},"assembly-off":{"name":"assembly-off","category":"Development","tags":["assembly","engineering","manufacturing","production","robotics"],"variants":{"outline":"f3c0"}},"assembly":{"name":"assembly","category":"Development","tags":["assembly","engineering","manufacturing","production","robotics"],"variants":{"outline":"f24d","filled":"fe9e"}},"asset":{"name":"asset","category":"Development","tags":["assembly","engineering","manufacturing","production","robotics"],"variants":{"outline":"f1ce","filled":"fe9d"}},"asterisk-simple":{"name":"asterisk-simple","category":"Text","tags":["star","password","security"],"variants":{"outline":"efd4"}},"asterisk":{"name":"asterisk","category":"Text","tags":["star","password","security"],"variants":{"outline":"efd5"}},"at-off":{"name":"at-off","category":"Text","tags":["email","message","mention","sign","@"],"variants":{"outline":"f0b0"}},"at":{"name":"at","category":"Text","tags":["email","message","mention","sign","@"],"variants":{"outline":"ea2b"}},"atom-2":{"name":"atom-2","category":"","tags":["unit","element","part","electrons","protons","neutrons"],"variants":{"outline":"ebdf","filled":"f71b"}},"atom-off":{"name":"atom-off","category":"","tags":["unit","element","part","electrons"],"variants":{"outline":"f0f9"}},"atom":{"name":"atom","category":"","tags":["unit","element","part","electrons"],"variants":{"outline":"eb79"}},"augmented-reality-2":{"name":"augmented-reality-2","category":"","tags":["technology","dimensional","geometry"],"variants":{"outline":"f37e"}},"augmented-reality-off":{"name":"augmented-reality-off","category":"","tags":["technology","dimensional","geometry"],"variants":{"outline":"f3c1"}},"augmented-reality":{"name":"augmented-reality","category":"","tags":["technology","dimensional","geometry"],"variants":{"outline":"f023"}},"auth-2fa":{"name":"auth-2fa","category":"","tags":["login","password","verification","code","two-step"],"variants":{"outline":"eca0"}},"automatic-gearbox":{"name":"automatic-gearbox","category":"Vehicles","tags":[],"variants":{"outline":"fc89"}},"automation":{"name":"automation","category":"","tags":[],"variants":{"outline":"fef8"}},"avocado":{"name":"avocado","category":"","tags":[],"variants":{"outline":"fd8e"}},"award-off":{"name":"award-off","category":"","tags":["prize","reward","competition","contest","win"],"variants":{"outline":"f0fa"}},"award":{"name":"award","category":"","tags":["prize","reward","competition","contest","win"],"variants":{"outline":"ea2c","filled":"f71c"}},"axe":{"name":"axe","category":"","tags":["blade","wood","tool","hatchet"],"variants":{"outline":"ef9f"}},"axis-x":{"name":"axis-x","category":"Arrows","tags":["math","geometry"],"variants":{"outline":"ef45"}},"axis-y":{"name":"axis-y","category":"Arrows","tags":["math","geometry"],"variants":{"outline":"ef46"}},"baby-bottle":{"name":"baby-bottle","category":"Health","tags":["kid","milk","child","food","drink","feeding"],"variants":{"outline":"f5d2"}},"baby-carriage":{"name":"baby-carriage","category":"Health","tags":["child","infant","cradle","pram"],"variants":{"outline":"f05d","filled":"fe9c"}},"background":{"name":"background","category":"","tags":["backdrop","setting","context","environment","scene","ambient","surroundings","scape","contextual","atmosphere"],"variants":{"outline":"fd2c"}},"backhoe":{"name":"backhoe","category":"Vehicles","tags":["rear","equipment","digger","excavation","tractor","loader","construction","site","excavator"],"variants":{"outline":"ed86"}},"backpack-off":{"name":"backpack-off","category":"","tags":["education","school","learning","adventure","travel"],"variants":{"outline":"f3c2"}},"backpack":{"name":"backpack","category":"","tags":["education","school","learning","adventure","travel"],"variants":{"outline":"ef47"}},"backslash":{"name":"backslash","category":"Math","tags":[],"variants":{"outline":"fab9"}},"backspace":{"name":"backspace","category":"Text","tags":["delete","remove","eliminate"],"variants":{"outline":"ea2d","filled":"f7dc"}},"badge-3d":{"name":"badge-3d","category":"Badges","tags":["shape","movie","glasses","film"],"variants":{"outline":"f555","filled":"fe9b"}},"badge-4k":{"name":"badge-4k","category":"Badges","tags":["shape","high","resolution","video","display"],"variants":{"outline":"f556","filled":"fe9a"}},"badge-8k":{"name":"badge-8k","category":"Badges","tags":["shape","high","resolution","video","display"],"variants":{"outline":"f557","filled":"fe99"}},"badge-ad-off":{"name":"badge-ad-off","category":"","tags":[],"variants":{"outline":"fd8f"}},"badge-ad":{"name":"badge-ad","category":"Badges","tags":["shape","marketing","media","promotion","advertising","advertisement"],"variants":{"outline":"f558","filled":"fe98"}},"badge-ar":{"name":"badge-ar","category":"Badges","tags":["shape","agumented","reality","techonoly"],"variants":{"outline":"f559","filled":"fe97"}},"badge-cc":{"name":"badge-cc","category":"Badges","tags":["shape","accessiblity","subtitles","youtube","netflix"],"variants":{"outline":"f55a","filled":"fe96"}},"badge-hd":{"name":"badge-hd","category":"Badges","tags":["shape","video","display","resolution","movie"],"variants":{"outline":"f55b","filled":"fe95"}},"badge-off":{"name":"badge-off","category":"","tags":["army","badge","military","rank","soldier","war"],"variants":{"outline":"f0fb"}},"badge-sd":{"name":"badge-sd","category":"Badges","tags":["shape","card","memory","sim","phone"],"variants":{"outline":"f55c","filled":"fe94"}},"badge-tm":{"name":"badge-tm","category":"Badges","tags":["shape","brand","copyright","logo","product"],"variants":{"outline":"f55d","filled":"fe93"}},"badge-vo":{"name":"badge-vo","category":"Badges","tags":["shape","mic","film","netflix","voice","video"],"variants":{"outline":"f55e","filled":"fe92"}},"badge-vr":{"name":"badge-vr","category":"Badges","tags":["shape","technology","virtual","reality","device"],"variants":{"outline":"f55f","filled":"fe91"}},"badge-wc":{"name":"badge-wc","category":"Badges","tags":["shape","toilet","restroom","male","female"],"variants":{"outline":"f560","filled":"fe90"}},"badge":{"name":"badge","category":"","tags":["army","badge","military","rank","soldier","war"],"variants":{"outline":"efc2","filled":"f667"}},"badges-off":{"name":"badges-off","category":"","tags":["army","badge","military","rank","soldier","war"],"variants":{"outline":"f0fc"}},"badges":{"name":"badges","category":"","tags":["army","badge","military","rank","soldier","war"],"variants":{"outline":"efc3","filled":"f7dd"}},"baguette":{"name":"baguette","category":"Food","tags":["bread","french","breakfast","bakery","loaf"],"variants":{"outline":"f3a5"}},"ball-american-football-off":{"name":"ball-american-football-off","category":"Sport","tags":["sport","game","sportsman","play","match","pitch"],"variants":{"outline":"f3c3"}},"ball-american-football":{"name":"ball-american-football","category":"Sport","tags":["sport","game","sportsman","play","match","pitch"],"variants":{"outline":"ee04"}},"ball-baseball":{"name":"ball-baseball","category":"Sport","tags":["sport","game","competition","pitch"],"variants":{"outline":"efa0"}},"ball-basketball":{"name":"ball-basketball","category":"Sport","tags":["game","round","quarter","basket","nba"],"variants":{"outline":"ec28"}},"ball-bowling":{"name":"ball-bowling","category":"Sport","tags":["round","strike","spare","pin"],"variants":{"outline":"ec29"}},"ball-football-off":{"name":"ball-football-off","category":"Sport","tags":["sport","game","sportsman","play","match","pitch"],"variants":{"outline":"ee05"}},"ball-football":{"name":"ball-football","category":"Sport","tags":["sport","game","sportsman","play","match","pitch"],"variants":{"outline":"ee06"}},"ball-tennis":{"name":"ball-tennis","category":"Sport","tags":["game","set","match","court","racket"],"variants":{"outline":"ec2a"}},"ball-volleyball":{"name":"ball-volleyball","category":"Sport","tags":["point","set","match","attacker","ace","setter","serve"],"variants":{"outline":"ec2b"}},"balloon-off":{"name":"balloon-off","category":"","tags":["party","birthday","decoration"],"variants":{"outline":"f0fd"}},"balloon":{"name":"balloon","category":"","tags":["party","birthday","decoration"],"variants":{"outline":"ef3a","filled":"fa84"}},"ballpen-off":{"name":"ballpen-off","category":"Text","tags":["write","school","education","stationery","text"],"variants":{"outline":"f0b1"}},"ballpen":{"name":"ballpen","category":"Text","tags":["write","school","education","stationery","text"],"variants":{"outline":"f06e","filled":"fa85"}},"ban":{"name":"ban","category":"","tags":["no","reject","restriction","prohibited"],"variants":{"outline":"ea2e"}},"bandage-off":{"name":"bandage-off","category":"Health","tags":["patch","wound","cut","pain"],"variants":{"outline":"f3c4"}},"bandage":{"name":"bandage","category":"Health","tags":["patch","wound","cut","pain"],"variants":{"outline":"eb7a","filled":"f7de"}},"barbell-off":{"name":"barbell-off","category":"Sport","tags":["weight","gym","fitness","powerlift"],"variants":{"outline":"f0b2"}},"barbell":{"name":"barbell","category":"Sport","tags":["weight","gym","fitness","powerlift"],"variants":{"outline":"eff0","filled":"fe8f"}},"barcode-off":{"name":"barcode-off","category":"","tags":["product","shop","scan","supermarket"],"variants":{"outline":"f0b3"}},"barcode":{"name":"barcode","category":"","tags":["product","shop","scan","supermarket"],"variants":{"outline":"ebc6"}},"barrel-off":{"name":"barrel-off","category":"","tags":["beer","wine","fuel","tank","cask"],"variants":{"outline":"f0fe"}},"barrel":{"name":"barrel","category":"","tags":["beer","wine","fuel","tank","cask"],"variants":{"outline":"f0b4"}},"barrier-block-off":{"name":"barrier-block-off","category":"","tags":["construction","stop","traffic","barricade","street"],"variants":{"outline":"f0b5"}},"barrier-block":{"name":"barrier-block","category":"","tags":["construction","stop","traffic","barricade","street"],"variants":{"outline":"f00e","filled":"fe8e"}},"baseline-density-large":{"name":"baseline-density-large","category":"Text","tags":["large","sizeable","oversized","big","bulky","massive","huge","gigantic","substantial","enormous"],"variants":{"outline":"f9f0"}},"baseline-density-medium":{"name":"baseline-density-medium","category":"Text","tags":["medium","average","moderate","middle","intermediate","standard","midsize","usual","typical","regular"],"variants":{"outline":"f9f1"}},"baseline-density-small":{"name":"baseline-density-small","category":"Text","tags":["small","tiny","little","miniature","compact","petite","mini","micro","diminutive","wee"],"variants":{"outline":"f9f2"}},"baseline":{"name":"baseline","category":"Text","tags":["align","arrow","bottom","format","vertical"],"variants":{"outline":"f024"}},"basket-bolt":{"name":"basket-bolt","category":"","tags":[],"variants":{"outline":"fb43"}},"basket-cancel":{"name":"basket-cancel","category":"","tags":[],"variants":{"outline":"fb44"}},"basket-check":{"name":"basket-check","category":"","tags":[],"variants":{"outline":"fb45"}},"basket-code":{"name":"basket-code","category":"","tags":[],"variants":{"outline":"fb46"}},"basket-cog":{"name":"basket-cog","category":"","tags":[],"variants":{"outline":"fb47"}},"basket-discount":{"name":"basket-discount","category":"","tags":[],"variants":{"outline":"fb48"}},"basket-dollar":{"name":"basket-dollar","category":"","tags":[],"variants":{"outline":"fb49"}},"basket-down":{"name":"basket-down","category":"","tags":[],"variants":{"outline":"fb4a"}},"basket-exclamation":{"name":"basket-exclamation","category":"","tags":[],"variants":{"outline":"fb4b"}},"basket-heart":{"name":"basket-heart","category":"","tags":[],"variants":{"outline":"fb4c"}},"basket-minus":{"name":"basket-minus","category":"","tags":[],"variants":{"outline":"fb4d"}},"basket-off":{"name":"basket-off","category":"E-commerce","tags":["shop","store","online","shopping"],"variants":{"outline":"f0b6"}},"basket-pause":{"name":"basket-pause","category":"","tags":[],"variants":{"outline":"fb4e"}},"basket-pin":{"name":"basket-pin","category":"","tags":[],"variants":{"outline":"fb4f"}},"basket-plus":{"name":"basket-plus","category":"","tags":[],"variants":{"outline":"fb50"}},"basket-question":{"name":"basket-question","category":"","tags":[],"variants":{"outline":"fb51"}},"basket-search":{"name":"basket-search","category":"","tags":[],"variants":{"outline":"fb52"}},"basket-share":{"name":"basket-share","category":"","tags":[],"variants":{"outline":"fb53"}},"basket-star":{"name":"basket-star","category":"","tags":[],"variants":{"outline":"fb54"}},"basket-up":{"name":"basket-up","category":"","tags":[],"variants":{"outline":"fb55"}},"basket-x":{"name":"basket-x","category":"","tags":[],"variants":{"outline":"fb56"}},"basket":{"name":"basket","category":"E-commerce","tags":["shop","store","online","shopping"],"variants":{"outline":"ebe1","filled":"f7df"}},"bat":{"name":"bat","category":"Animals","tags":["animal","halloween","vampire","scary","blood"],"variants":{"outline":"f284"}},"bath-off":{"name":"bath-off","category":"","tags":["water","clean","hygiene","bathroom","tub"],"variants":{"outline":"f0ff"}},"bath":{"name":"bath","category":"","tags":["water","clean","hygiene","bathroom","tub"],"variants":{"outline":"ef48","filled":"f71d"}},"battery-1":{"name":"battery-1","category":"Devices","tags":["energy","power","electricity"],"variants":{"outline":"ea2f","filled":"f71e"}},"battery-2":{"name":"battery-2","category":"Devices","tags":["energy","power","electricity"],"variants":{"outline":"ea30","filled":"f71f"}},"battery-3":{"name":"battery-3","category":"Devices","tags":["energy","power","electricity"],"variants":{"outline":"ea31","filled":"f720"}},"battery-4":{"name":"battery-4","category":"Devices","tags":["energy","power","electricity"],"variants":{"outline":"ea32","filled":"f721"}},"battery-automotive":{"name":"battery-automotive","category":"Vehicles","tags":["vehicle","charge","motor","current","car","electricity","electric","power"],"variants":{"outline":"ee07"}},"battery-charging-2":{"name":"battery-charging-2","category":"Devices","tags":["charge","energy","power","electricity"],"variants":{"outline":"ef3b"}},"battery-charging":{"name":"battery-charging","category":"Devices","tags":["charge","energy","power","electricity"],"variants":{"outline":"ea33"}},"battery-eco":{"name":"battery-eco","category":"Devices","tags":["ecology","charge","energy","power","electricity"],"variants":{"outline":"ef3c"}},"battery-exclamation":{"name":"battery-exclamation","category":"Devices","tags":["energy","power","electricity"],"variants":{"outline":"ff1d"}},"battery-off":{"name":"battery-off","category":"Devices","tags":["energy","power","electricity"],"variants":{"outline":"ed1c"}},"battery-vertical-1":{"name":"battery-vertical-1","category":"Devices","tags":["energy","power","electricity"],"variants":{"outline":"ff1c"}},"battery-vertical-2":{"name":"battery-vertical-2","category":"Devices","tags":["energy","power","electricity"],"variants":{"outline":"ff1b"}},"battery-vertical-3":{"name":"battery-vertical-3","category":"Devices","tags":["energy","power","electricity"],"variants":{"outline":"ff1a"}},"battery-vertical-4":{"name":"battery-vertical-4","category":"Devices","tags":["energy","power","electricity"],"variants":{"outline":"ff19"}},"battery-vertical-charging-2":{"name":"battery-vertical-charging-2","category":"Devices","tags":["charge","energy","power","electricity"],"variants":{"outline":"ff18"}},"battery-vertical-charging":{"name":"battery-vertical-charging","category":"Devices","tags":["charge","energy","power","electricity"],"variants":{"outline":"ff17"}},"battery-vertical-eco":{"name":"battery-vertical-eco","category":"Devices","tags":["ecology","charge","energy","power","electricity"],"variants":{"outline":"ff16"}},"battery-vertical-exclamation":{"name":"battery-vertical-exclamation","category":"Devices","tags":["energy","power","electricity"],"variants":{"outline":"ff15"}},"battery-vertical-off":{"name":"battery-vertical-off","category":"Devices","tags":["energy","power","electricity"],"variants":{"outline":"ff14"}},"battery-vertical":{"name":"battery-vertical","category":"Devices","tags":["energy","power","electricity"],"variants":{"outline":"ff13"}},"battery":{"name":"battery","category":"Devices","tags":["energy","power","electricity"],"variants":{"outline":"ea34","filled":"f668"}},"beach-off":{"name":"beach-off","category":"Map","tags":["sand","sun","umbrella","vacation","travel"],"variants":{"outline":"f0b7"}},"beach":{"name":"beach","category":"Map","tags":["sand","sun","umbrella","vacation","travel"],"variants":{"outline":"ef3d"}},"bed-flat":{"name":"bed-flat","category":"","tags":["mattress","sofa","couch","futon","sleeping","restful","horizontal","recline","lying","horizontal-bed"],"variants":{"outline":"fca1","filled":"fe8d"}},"bed-off":{"name":"bed-off","category":"Map","tags":["sleep","night","bedroom","rest"],"variants":{"outline":"f100"}},"bed":{"name":"bed","category":"Map","tags":["furniture","sleeping","comfortable","bedroom","mattress","resting","relax","sleep","futon","cozy"],"variants":{"outline":"eb5c","filled":"f7e0"}},"beer-off":{"name":"beer-off","category":"Food","tags":["alcohol","drink","beverage","bar","pub"],"variants":{"outline":"f101"}},"beer":{"name":"beer","category":"Food","tags":["alcohol","drink","beverage","bar","pub"],"variants":{"outline":"efa1","filled":"f7e1"}},"bell-bolt":{"name":"bell-bolt","category":"System","tags":[],"variants":{"outline":"f812"}},"bell-cancel":{"name":"bell-cancel","category":"System","tags":[],"variants":{"outline":"f813"}},"bell-check":{"name":"bell-check","category":"System","tags":[],"variants":{"outline":"f814"}},"bell-code":{"name":"bell-code","category":"System","tags":[],"variants":{"outline":"f815"}},"bell-cog":{"name":"bell-cog","category":"System","tags":[],"variants":{"outline":"f816"}},"bell-dollar":{"name":"bell-dollar","category":"System","tags":[],"variants":{"outline":"f817"}},"bell-down":{"name":"bell-down","category":"System","tags":[],"variants":{"outline":"f818"}},"bell-exclamation":{"name":"bell-exclamation","category":"System","tags":[],"variants":{"outline":"f819"}},"bell-heart":{"name":"bell-heart","category":"System","tags":[],"variants":{"outline":"f81a"}},"bell-minus":{"name":"bell-minus","category":"System","tags":["notification","alarm","alert","remove","ring"],"variants":{"outline":"ede2","filled":"f722"}},"bell-off":{"name":"bell-off","category":"System","tags":["alarm","sound","notification"],"variants":{"outline":"ece9"}},"bell-pause":{"name":"bell-pause","category":"System","tags":[],"variants":{"outline":"f81b"}},"bell-pin":{"name":"bell-pin","category":"System","tags":[],"variants":{"outline":"f81c"}},"bell-plus":{"name":"bell-plus","category":"System","tags":["alarm","notification","alert","set"],"variants":{"outline":"ede3","filled":"f723"}},"bell-question":{"name":"bell-question","category":"System","tags":[],"variants":{"outline":"f81d"}},"bell-ringing-2":{"name":"bell-ringing-2","category":"System","tags":["alarm","sound","notification"],"variants":{"outline":"ede4","filled":"f724"}},"bell-ringing":{"name":"bell-ringing","category":"System","tags":["alarm","sound","notification"],"variants":{"outline":"ed07","filled":"f725"}},"bell-school":{"name":"bell-school","category":"","tags":["alarm","education","alert","sound","notification","study"],"variants":{"outline":"f05e"}},"bell-search":{"name":"bell-search","category":"System","tags":[],"variants":{"outline":"f81e"}},"bell-share":{"name":"bell-share","category":"System","tags":[],"variants":{"outline":"f81f"}},"bell-star":{"name":"bell-star","category":"System","tags":[],"variants":{"outline":"f820"}},"bell-up":{"name":"bell-up","category":"System","tags":[],"variants":{"outline":"f821"}},"bell-x":{"name":"bell-x","category":"System","tags":["alarm","ring","sound","alert","disabled"],"variants":{"outline":"ede5","filled":"f726"}},"bell-z":{"name":"bell-z","category":"System","tags":["alarm","bell","clock","date","snooze","time"],"variants":{"outline":"eff1","filled":"f727"}},"bell":{"name":"bell","category":"System","tags":["alarm","sound","notification"],"variants":{"outline":"ea35","filled":"f669"}},"beta":{"name":"beta","category":"Letters","tags":["letter","alphabet","greek","math"],"variants":{"outline":"f544"}},"bible":{"name":"bible","category":"","tags":["religion","holy","christian","miracle","church"],"variants":{"outline":"efc4"}},"bike-off":{"name":"bike-off","category":"Vehicles","tags":["cycling","bicycle","sport","wheel"],"variants":{"outline":"f0b8"}},"bike":{"name":"bike","category":"Vehicles","tags":["cycling","bicycle","sport","wheel"],"variants":{"outline":"ea36"}},"binary-off":{"name":"binary-off","category":"Computers","tags":["binary"],"variants":{"outline":"f3c5"}},"binary-tree-2":{"name":"binary-tree-2","category":"Computers","tags":["data","diversity","it","math"],"variants":{"outline":"f5d3","filled":"ff65"}},"binary-tree":{"name":"binary-tree","category":"Computers","tags":["data","diversity","it","math"],"variants":{"outline":"f5d4","filled":"ff64"}},"binary":{"name":"binary","category":"Computers","tags":["binary"],"variants":{"outline":"ee08"}},"binoculars":{"name":"binoculars","category":"","tags":["birds","explorer","field glasses","magnifying eye glasses","observe","view","watch"],"variants":{"outline":"fefe","filled":"ff0b"}},"biohazard-off":{"name":"biohazard-off","category":"Symbols","tags":["danger","radioactive","toxic","microbe","virus","biotoxin"],"variants":{"outline":"f0b9"}},"biohazard":{"name":"biohazard","category":"Symbols","tags":["danger","radioactive","toxic","microbe","virus","biotoxin"],"variants":{"outline":"ecb8","filled":"fe8c"}},"blade":{"name":"blade","category":"","tags":["razor","beard","barber","cut"],"variants":{"outline":"f4bd","filled":"f7e2"}},"bleach-chlorine":{"name":"bleach-chlorine","category":"Laundry","tags":["clothing","washing","chemical","laundry","detergent","clean"],"variants":{"outline":"f2f0"}},"bleach-no-chlorine":{"name":"bleach-no-chlorine","category":"Laundry","tags":["clothing","washing","chemical","laundry"],"variants":{"outline":"f2f1"}},"bleach-off":{"name":"bleach-off","category":"Laundry","tags":["clothing","washing","chemical","laundry"],"variants":{"outline":"f2f2"}},"bleach":{"name":"bleach","category":"Laundry","tags":["clothing","washing","chemical","laundry"],"variants":{"outline":"f2f3"}},"blend-mode":{"name":"blend-mode","category":"Design","tags":[],"variants":{"outline":"feb0"}},"blender":{"name":"blender","category":"","tags":["mixer","kitchen","appliance","blend","food","smoothie","processing","mixing","grind","blending"],"variants":{"outline":"fca2"}},"blob":{"name":"blob","category":"","tags":[],"variants":{"outline":"feaf","filled":"feb1"}},"blockquote":{"name":"blockquote","category":"Text","tags":["citation","quotation","saying","text","section","style","styling","css"],"variants":{"outline":"ee09"}},"bluetooth-connected":{"name":"bluetooth-connected","category":"Devices","tags":["wireless","connection","connect"],"variants":{"outline":"ecea"}},"bluetooth-off":{"name":"bluetooth-off","category":"Devices","tags":["wireless","connection","connect"],"variants":{"outline":"eceb"}},"bluetooth-x":{"name":"bluetooth-x","category":"Devices","tags":["multimedia","technology","disabled","connection","communication"],"variants":{"outline":"f081"}},"bluetooth":{"name":"bluetooth","category":"Devices","tags":["wireless","connection","connect"],"variants":{"outline":"ea37"}},"blur-off":{"name":"blur-off","category":"Design","tags":["edit","photo","photography","tool"],"variants":{"outline":"f3c6"}},"blur":{"name":"blur","category":"Design","tags":["edit","photo","photography","tool"],"variants":{"outline":"ef8c"}},"bmp":{"name":"bmp","category":"Extensions","tags":["format","filetype","file","document"],"variants":{"outline":"f3a6"}},"body-scan":{"name":"body-scan","category":"System","tags":["medical","health","biometric","wellness","check-up","diagnostic","physical","anatomy","examination","body-health"],"variants":{"outline":"fca3"}},"bold-off":{"name":"bold-off","category":"Text","tags":["font","style","boldface"],"variants":{"outline":"f0ba"}},"bold":{"name":"bold","category":"Text","tags":["font","style","boldface"],"variants":{"outline":"eb7b"}},"bolt-off":{"name":"bolt-off","category":"","tags":["energy","power","electricity","storm"],"variants":{"outline":"ecec"}},"bolt":{"name":"bolt","category":"","tags":["energy","power","electricity","storm"],"variants":{"outline":"ea38"}},"bomb":{"name":"bomb","category":"","tags":["explosion","weapon","military","war"],"variants":{"outline":"f59c","filled":"fa86"}},"bone-off":{"name":"bone-off","category":"Food","tags":["skeleton","human","dog","body"],"variants":{"outline":"f0bb"}},"bone":{"name":"bone","category":"Food","tags":["skeleton","human","dog","body"],"variants":{"outline":"edb8","filled":"fe8b"}},"bong-off":{"name":"bong-off","category":"","tags":["smoke","smoking","cannabis","marijuana","drugs"],"variants":{"outline":"f3c7"}},"bong":{"name":"bong","category":"","tags":["smoke","smoking","cannabis","marijuana","drugs"],"variants":{"outline":"f3a7"}},"book-2":{"name":"book-2","category":"Document","tags":["read","dictionary","magazine","library","booklet","novel"],"variants":{"outline":"efc5"}},"book-download":{"name":"book-download","category":"Document","tags":["education","e-book","digital"],"variants":{"outline":"f070"}},"book-off":{"name":"book-off","category":"Document","tags":["read","dictionary","magazine","library","booklet","novel"],"variants":{"outline":"f0bc"}},"book-upload":{"name":"book-upload","category":"Document","tags":["e-book","e-learning","education","reading"],"variants":{"outline":"f071"}},"book":{"name":"book","category":"Document","tags":["read","dictionary","magazine","library","booklet","novel"],"variants":{"outline":"ea39","filled":"fa87"}},"bookmark-ai":{"name":"bookmark-ai","category":"","tags":[],"variants":{"outline":"fc8a"}},"bookmark-edit":{"name":"bookmark-edit","category":"Document","tags":[],"variants":{"outline":"fa5e"}},"bookmark-minus":{"name":"bookmark-minus","category":"Document","tags":[],"variants":{"outline":"fa5f"}},"bookmark-off":{"name":"bookmark-off","category":"Document","tags":["read","clip","marker","tag"],"variants":{"outline":"eced"}},"bookmark-plus":{"name":"bookmark-plus","category":"Document","tags":[],"variants":{"outline":"fa60"}},"bookmark-question":{"name":"bookmark-question","category":"Document","tags":[],"variants":{"outline":"fa61"}},"bookmark":{"name":"bookmark","category":"Document","tags":["read","clip","marker","tag"],"variants":{"outline":"ea3a","filled":"fa88"}},"bookmarks-off":{"name":"bookmarks-off","category":"Document","tags":["read","clip","marker","tag"],"variants":{"outline":"f0bd"}},"bookmarks":{"name":"bookmarks","category":"Document","tags":["read","clip","marker","tag"],"variants":{"outline":"ed08","filled":"fb1f"}},"books-off":{"name":"books-off","category":"Document","tags":["education","learning","reading","school","library"],"variants":{"outline":"f0be"}},"books":{"name":"books","category":"Document","tags":["education","learning","reading","school","library"],"variants":{"outline":"eff2"}},"boom":{"name":"boom","category":"","tags":[],"variants":{"outline":"fdbe","filled":"fe8a"}},"border-all":{"name":"border-all","category":"Design","tags":["table","side","line"],"variants":{"outline":"ea3b"}},"border-bottom-plus":{"name":"border-bottom-plus","category":"","tags":[],"variants":{"outline":"fdbd"}},"border-bottom":{"name":"border-bottom","category":"Design","tags":["table","side","line"],"variants":{"outline":"ea3c"}},"border-corner-ios":{"name":"border-corner-ios","category":"","tags":[],"variants":{"outline":"fd98"}},"border-corner-pill":{"name":"border-corner-pill","category":"Design","tags":[],"variants":{"outline":"fd62"}},"border-corner-rounded":{"name":"border-corner-rounded","category":"Design","tags":[],"variants":{"outline":"fd63"}},"border-corner-square":{"name":"border-corner-square","category":"Design","tags":[],"variants":{"outline":"fd64"}},"border-corners":{"name":"border-corners","category":"Design","tags":[],"variants":{"outline":"f7a0"}},"border-horizontal":{"name":"border-horizontal","category":"Design","tags":["table","side","line"],"variants":{"outline":"ea3d"}},"border-inner":{"name":"border-inner","category":"Design","tags":["table","side","line"],"variants":{"outline":"ea3e"}},"border-left-plus":{"name":"border-left-plus","category":"","tags":[],"variants":{"outline":"fdbc"}},"border-left":{"name":"border-left","category":"Design","tags":["table","side","line"],"variants":{"outline":"ea3f"}},"border-none":{"name":"border-none","category":"Design","tags":["table"],"variants":{"outline":"ea40"}},"border-outer":{"name":"border-outer","category":"Design","tags":["table","side","line"],"variants":{"outline":"ea41"}},"border-radius":{"name":"border-radius","category":"Design","tags":["corner","rounded","line"],"variants":{"outline":"eb7c"}},"border-right-plus":{"name":"border-right-plus","category":"","tags":[],"variants":{"outline":"fdbb"}},"border-right":{"name":"border-right","category":"Design","tags":["table","side","line"],"variants":{"outline":"ea42"}},"border-sides":{"name":"border-sides","category":"Design","tags":[],"variants":{"outline":"f7a1"}},"border-style-2":{"name":"border-style-2","category":"Design","tags":["google","excel","sheets"],"variants":{"outline":"ef22"}},"border-style":{"name":"border-style","category":"Design","tags":["google","excel","sheets"],"variants":{"outline":"ee0a"}},"border-top-plus":{"name":"border-top-plus","category":"","tags":[],"variants":{"outline":"fdba"}},"border-top":{"name":"border-top","category":"Design","tags":["table","side","line"],"variants":{"outline":"ea43"}},"border-vertical":{"name":"border-vertical","category":"Design","tags":["table","side","line"],"variants":{"outline":"ea44"}},"bottle-off":{"name":"bottle-off","category":"Food","tags":["water","drink","beer","energy","wine"],"variants":{"outline":"f3c8"}},"bottle":{"name":"bottle","category":"Food","tags":["water","drink","beer","energy","wine"],"variants":{"outline":"ef0b","filled":"fa89"}},"bounce-left":{"name":"bounce-left","category":"Design","tags":["ball","west","motion","jump"],"variants":{"outline":"f59d","filled":"fb20"}},"bounce-right":{"name":"bounce-right","category":"Design","tags":["ball","east","motion","jump"],"variants":{"outline":"f59e","filled":"fb21"}},"bow":{"name":"bow","category":"Sport","tags":["arrow","archer","hunt","hunter"],"variants":{"outline":"f096","filled":"fe89"}},"bowl-chopsticks":{"name":"bowl-chopsticks","category":"","tags":[],"variants":{"outline":"fd90","filled":"fe88"}},"bowl-spoon":{"name":"bowl-spoon","category":"","tags":[],"variants":{"outline":"fd91","filled":"fe87"}},"bowl":{"name":"bowl","category":"Food","tags":["food","soup","kitchen","vessel"],"variants":{"outline":"f4fa","filled":"fb22"}},"box-align-bottom-left":{"name":"box-align-bottom-left","category":"Design","tags":["cube","side","down","south-west"],"variants":{"outline":"f2ce","filled":"fa8b"}},"box-align-bottom-right":{"name":"box-align-bottom-right","category":"Design","tags":["cube","side","down","south-east"],"variants":{"outline":"f2cf","filled":"fa8c"}},"box-align-bottom":{"name":"box-align-bottom","category":"Design","tags":["rectangle","side","down","south"],"variants":{"outline":"f2a8","filled":"fa8a"}},"box-align-left":{"name":"box-align-left","category":"Design","tags":["rectangle side","west"],"variants":{"outline":"f2a9","filled":"fa8d"}},"box-align-right":{"name":"box-align-right","category":"Design","tags":["rectangle","side","east"],"variants":{"outline":"f2aa","filled":"fa8e"}},"box-align-top-left":{"name":"box-align-top-left","category":"Design","tags":["cube","side","up","north-west"],"variants":{"outline":"f2d0","filled":"fa90"}},"box-align-top-right":{"name":"box-align-top-right","category":"Design","tags":["cube","side","up","north-east"],"variants":{"outline":"f2d1","filled":"fa91"}},"box-align-top":{"name":"box-align-top","category":"Design","tags":["rectangle","side","up","north"],"variants":{"outline":"f2ab","filled":"fa8f"}},"box-margin":{"name":"box-margin","category":"Design","tags":["css","cascading","style","section","space","text","content","outside","container"],"variants":{"outline":"ee0b"}},"box-model-2-off":{"name":"box-model-2-off","category":"Design","tags":["css","cascading","style","section","element","square","website","container"],"variants":{"outline":"f3c9"}},"box-model-2":{"name":"box-model-2","category":"Design","tags":["css","cascading","style","section","element","square","website","container"],"variants":{"outline":"ef23"}},"box-model-off":{"name":"box-model-off","category":"Design","tags":["css","cascading","style","section","element","square","website","container"],"variants":{"outline":"f3ca"}},"box-model":{"name":"box-model","category":"Design","tags":["css","cascading","style","section","element","square","website","container"],"variants":{"outline":"ee0c"}},"box-multiple-0":{"name":"box-multiple-0","category":"Numbers","tags":["css","cascading","style","sheet","background","section","zero","website","layer"],"variants":{"outline":"ee0d"}},"box-multiple-1":{"name":"box-multiple-1","category":"Numbers","tags":["css","cascading","style","sheet","background","section","one","website","layer"],"variants":{"outline":"ee0e"}},"box-multiple-2":{"name":"box-multiple-2","category":"Numbers","tags":["css","cascading","style","sheet","background","section","two","website","layer"],"variants":{"outline":"ee0f"}},"box-multiple-3":{"name":"box-multiple-3","category":"Numbers","tags":["css","cascading","style","sheet","background","section","three","website","layer"],"variants":{"outline":"ee10"}},"box-multiple-4":{"name":"box-multiple-4","category":"Numbers","tags":["css","cascading","style","sheet","background","section","four","website","layer"],"variants":{"outline":"ee11"}},"box-multiple-5":{"name":"box-multiple-5","category":"Numbers","tags":["css","cascading","style","sheet","background","section","five","website","layer"],"variants":{"outline":"ee12"}},"box-multiple-6":{"name":"box-multiple-6","category":"Numbers","tags":["css","cascading","style","sheet","background","section","six","website","layer"],"variants":{"outline":"ee13"}},"box-multiple-7":{"name":"box-multiple-7","category":"Numbers","tags":["css","cascading","style","sheet","background","section","seven","website","layer"],"variants":{"outline":"ee14"}},"box-multiple-8":{"name":"box-multiple-8","category":"Numbers","tags":["css","cascading","style","sheet","background","section","eight","website","layer"],"variants":{"outline":"ee15"}},"box-multiple-9":{"name":"box-multiple-9","category":"Numbers","tags":["css","cascading","style","sheet","background","section","nine","website","layer"],"variants":{"outline":"ee16"}},"box-multiple":{"name":"box-multiple","category":"","tags":["css","cascading","style","sheet","background","section","website","layer"],"variants":{"outline":"ee17"}},"box-off":{"name":"box-off","category":"","tags":["cube","app","application","package","container"],"variants":{"outline":"f102"}},"box-padding":{"name":"box-padding","category":"Design","tags":["css","cascading","style","section","space","text","content","website","container","inside"],"variants":{"outline":"ee18"}},"box":{"name":"box","category":"","tags":["cube","app","application","package","container"],"variants":{"outline":"ea45"}},"braces-off":{"name":"braces-off","category":"Math","tags":["punctuation","additional","information"],"variants":{"outline":"f0bf"}},"braces":{"name":"braces","category":"Math","tags":["punctuation","additional","information"],"variants":{"outline":"ebcc"}},"brackets-angle-off":{"name":"brackets-angle-off","category":"","tags":[],"variants":{"outline":"fcb1"}},"brackets-angle":{"name":"brackets-angle","category":"","tags":[],"variants":{"outline":"fcb2"}},"brackets-contain-end":{"name":"brackets-contain-end","category":"Math","tags":["word","regex","find"],"variants":{"outline":"f1e3"}},"brackets-contain-start":{"name":"brackets-contain-start","category":"Math","tags":["word","regex","find"],"variants":{"outline":"f1e4"}},"brackets-contain":{"name":"brackets-contain","category":"Math","tags":["word","regex","find"],"variants":{"outline":"f1e5"}},"brackets-off":{"name":"brackets-off","category":"Math","tags":["punctuation","additional","information"],"variants":{"outline":"f0c0"}},"brackets":{"name":"brackets","category":"Math","tags":["punctuation","additional","information"],"variants":{"outline":"ebcd"}},"braille":{"name":"braille","category":"","tags":["blind","alphabet","disability","letters","read"],"variants":{"outline":"f545"}},"brain":{"name":"brain","category":"","tags":["mind","human","iq","inteligence","organ"],"variants":{"outline":"f59f"}},"brand-4chan":{"name":"brand-4chan","category":"Brand","tags":["bulletin","board","music","photography","image","share"],"variants":{"outline":"f494"}},"brand-abstract":{"name":"brand-abstract","category":"Brand","tags":["design","software","web","ux"],"variants":{"outline":"f495"}},"brand-adobe-after-effect":{"name":"brand-adobe-after-effect","category":"Brand","tags":[],"variants":{"outline":"ff2a"}},"brand-adobe-illustrator":{"name":"brand-adobe-illustrator","category":"Brand","tags":[],"variants":{"outline":"ff29"}},"brand-adobe-indesign":{"name":"brand-adobe-indesign","category":"Brand","tags":[],"variants":{"outline":"ff28"}},"brand-adobe-photoshop":{"name":"brand-adobe-photoshop","category":"Brand","tags":[],"variants":{"outline":"ff27"}},"brand-adobe-premier":{"name":"brand-adobe-premier","category":"Brand","tags":[],"variants":{"outline":"ff26"}},"brand-adobe-xd":{"name":"brand-adobe-xd","category":"Brand","tags":[],"variants":{"outline":"ff25"}},"brand-adobe":{"name":"brand-adobe","category":"Brand","tags":["photoshop","illustrator","indesign"],"variants":{"outline":"f0dc"}},"brand-adonis-js":{"name":"brand-adonis-js","category":"Brand","tags":["framework","web","app","typescript"],"variants":{"outline":"f496"}},"brand-airbnb":{"name":"brand-airbnb","category":"Brand","tags":["flat","apartment","holiday","vacation","city","break","book"],"variants":{"outline":"ed68"}},"brand-airtable":{"name":"brand-airtable","category":"Brand","tags":["creation of","sharing","database","interface"],"variants":{"outline":"ef6a"}},"brand-algolia":{"name":"brand-algolia","category":"Brand","tags":["web","browser","software","efficient","ai"],"variants":{"outline":"f390"}},"brand-alipay":{"name":"brand-alipay","category":"Brand","tags":["pay","china","electronically","alibaba"],"variants":{"outline":"f7a2"}},"brand-alpine-js":{"name":"brand-alpine-js","category":"Brand","tags":["javascript","programming","coding"],"variants":{"outline":"f324"}},"brand-amazon":{"name":"brand-amazon","category":"Brand","tags":["shopping","online","media","shop","ecommerce"],"variants":{"outline":"f230"}},"brand-amd":{"name":"brand-amd","category":"Brand","tags":["electronics","computer","components","processors"],"variants":{"outline":"f653"}},"brand-amigo":{"name":"brand-amigo","category":"Brand","tags":[],"variants":{"outline":"f5f9"}},"brand-among-us":{"name":"brand-among-us","category":"Brand","tags":["game","crewmate","impostor"],"variants":{"outline":"f205"}},"brand-android":{"name":"brand-android","category":"Brand","tags":["os","company","system","interface","software","logo"],"variants":{"outline":"ec16"}},"brand-angular":{"name":"brand-angular","category":"Brand","tags":["programming","coding","typescript"],"variants":{"outline":"ef6b"}},"brand-ansible":{"name":"brand-ansible","category":"Brand","tags":[],"variants":{"outline":"fa70"}},"brand-ao3":{"name":"brand-ao3","category":"Brand","tags":["open","source","make","webstie","fanfiction"],"variants":{"outline":"f5e8"}},"brand-appgallery":{"name":"brand-appgallery","category":"Brand","tags":["games","apps","online","store","video"],"variants":{"outline":"f231"}},"brand-apple-arcade":{"name":"brand-apple-arcade","category":"Brand","tags":["technology","video","game","service","macos","device","play","online"],"variants":{"outline":"ed69"}},"brand-apple-news":{"name":"brand-apple-news","category":"Brand","tags":[],"variants":{"outline":"ff24"}},"brand-apple-podcast":{"name":"brand-apple-podcast","category":"Brand","tags":["audio","software","music","ios","tvos"],"variants":{"outline":"f1e6"}},"brand-apple":{"name":"brand-apple","category":"Brand","tags":["os","company","system","interface","software","devices","logo"],"variants":{"outline":"ec17","filled":"fd74"}},"brand-appstore":{"name":"brand-appstore","category":"Brand","tags":["shop","online","application","logo"],"variants":{"outline":"ed24"}},"brand-arc":{"name":"brand-arc","category":"Brand","tags":[],"variants":{"outline":"feae"}},"brand-asana":{"name":"brand-asana","category":"Brand","tags":["task","management","project management","manage","collaborate","collaboration","team","teamwork","technology"],"variants":{"outline":"edc5"}},"brand-astro":{"name":"brand-astro","category":"Brand","tags":[],"variants":{"outline":"fdb9"}},"brand-auth0":{"name":"brand-auth0","category":"Brand","tags":[],"variants":{"outline":"fcb3"}},"brand-aws":{"name":"brand-aws","category":"Brand","tags":[],"variants":{"outline":"fa4c"}},"brand-azure":{"name":"brand-azure","category":"Brand","tags":["microsoft","azure","cloud","computing","technology","services","software","platform","it","digital"],"variants":{"outline":"fa4d"}},"brand-backbone":{"name":"brand-backbone","category":"Brand","tags":["javascript","programmers","creation","websites"],"variants":{"outline":"f325"}},"brand-badoo":{"name":"brand-badoo","category":"Brand","tags":["website","communication","chat","social media"],"variants":{"outline":"f206"}},"brand-baidu":{"name":"brand-baidu","category":"Brand","tags":["china","ai","network","company"],"variants":{"outline":"f5e9"}},"brand-bandcamp":{"name":"brand-bandcamp","category":"Brand","tags":["music","website","music company","audio"],"variants":{"outline":"f207"}},"brand-bandlab":{"name":"brand-bandlab","category":"Brand","tags":["make","music","online","cloud","webstie"],"variants":{"outline":"f5fa"}},"brand-beats":{"name":"brand-beats","category":"Brand","tags":["music","audio","headphones","audio equipment"],"variants":{"outline":"f208"}},"brand-behance":{"name":"brand-behance","category":"Brand","tags":["logo","website","adobe","project","views","marks","platform","designer"],"variants":{"outline":"ec6e"}},"brand-bilibili":{"name":"brand-bilibili","category":"Brand","tags":["china","platform","streaming","video"],"variants":{"outline":"f6d2"}},"brand-binance":{"name":"brand-binance","category":"Brand","tags":["website","crypto","cryptocurrency","exchange"],"variants":{"outline":"f5a0"}},"brand-bing":{"name":"brand-bing","category":"Brand","tags":["search","result","find","engine","internet","microsoft","web","technology"],"variants":{"outline":"edc6"}},"brand-bitbucket":{"name":"brand-bitbucket","category":"Brand","tags":["version","control","repository","hosting","atlassian","source","code","development","git","technology"],"variants":{"outline":"edc7"}},"brand-blackberry":{"name":"brand-blackberry","category":"Brand","tags":["phone","mobile","system","operating","os","electronics"],"variants":{"outline":"f568"}},"brand-blender":{"name":"brand-blender","category":"Brand","tags":["software","graphic","3d","animation"],"variants":{"outline":"f326"}},"brand-blogger":{"name":"brand-blogger","category":"Brand","tags":["media","blogging","internet","social","site"],"variants":{"outline":"f35a"}},"brand-bluesky":{"name":"brand-bluesky","category":"Brand","tags":[],"variants":{"outline":"fd75"}},"brand-booking":{"name":"brand-booking","category":"Brand","tags":["flat","apartment","holiday","vacation","city","break","book","rent"],"variants":{"outline":"edc8"}},"brand-bootstrap":{"name":"brand-bootstrap","category":"Brand","tags":["programming","coding","HTML","hardware","javascript","js"],"variants":{"outline":"ef3e"}},"brand-bulma":{"name":"brand-bulma","category":"Brand","tags":["programming","coding","html","css"],"variants":{"outline":"f327"}},"brand-bumble":{"name":"brand-bumble","category":"Brand","tags":["app","dating","social","media","communication"],"variants":{"outline":"f5fb"}},"brand-bunpo":{"name":"brand-bunpo","category":"Brand","tags":["learn","japanese","app","grammatic"],"variants":{"outline":"f4cf"}},"brand-c-sharp":{"name":"brand-c-sharp","category":"Brand","tags":["coding","programming","files","language"],"variants":{"outline":"f003"}},"brand-cake":{"name":"brand-cake","category":"Brand","tags":[],"variants":{"outline":"f7a3"}},"brand-cakephp":{"name":"brand-cakephp","category":"Brand","tags":["framework","make","app","web","php"],"variants":{"outline":"f7af"}},"brand-campaignmonitor":{"name":"brand-campaignmonitor","category":"Brand","tags":["technology","e-mail","site","cm","group"],"variants":{"outline":"f328"}},"brand-carbon":{"name":"brand-carbon","category":"Brand","tags":[],"variants":{"outline":"f348"}},"brand-cashapp":{"name":"brand-cashapp","category":"Brand","tags":["payment","finance","mobile","app","money","transfer"],"variants":{"outline":"f391"}},"brand-chrome":{"name":"brand-chrome","category":"Brand","tags":["browser","internet","web","logo"],"variants":{"outline":"ec18"}},"brand-cinema-4d":{"name":"brand-cinema-4d","category":"Brand","tags":[],"variants":{"outline":"fa71"}},"brand-citymapper":{"name":"brand-citymapper","category":"Brand","tags":["app","transport","public","software"],"variants":{"outline":"f5fc"}},"brand-cloudflare":{"name":"brand-cloudflare","category":"Brand","tags":["cloudflare","web","security","content","delivery","ddos","protection","network","internet","performance","firewall","cdn","website"],"variants":{"outline":"fa4e"}},"brand-codecov":{"name":"brand-codecov","category":"Brand","tags":["coding","analysis","archive","merge"],"variants":{"outline":"f329"}},"brand-codepen":{"name":"brand-codepen","category":"Brand","tags":["logo","community","internet","codes","programing","programmer","source","website","platform","designer"],"variants":{"outline":"ec6f"}},"brand-codesandbox":{"name":"brand-codesandbox","category":"Brand","tags":["online","code","editor","prototyping","prototype","web","app","programming","integrated","development","environment","technology"],"variants":{"outline":"ed6a"}},"brand-cohost":{"name":"brand-cohost","category":"Brand","tags":["web","website","app","social","nodes","network","community","communication","user","post","images","photos","comment","feedback"],"variants":{"outline":"f5d5"}},"brand-coinbase":{"name":"brand-coinbase","category":"Brand","tags":["cryptocurrencies","bitcoin","ethereum","traded company"],"variants":{"outline":"f209"}},"brand-comedy-central":{"name":"brand-comedy-central","category":"Brand","tags":["tv","serial","films","stand-up","skits"],"variants":{"outline":"f217"}},"brand-coreos":{"name":"brand-coreos","category":"Brand","tags":["operating","system","linux","programmers"],"variants":{"outline":"f5fd"}},"brand-couchdb":{"name":"brand-couchdb","category":"Brand","tags":["document","engine","database","json"],"variants":{"outline":"f60f"}},"brand-couchsurfing":{"name":"brand-couchsurfing","category":"Brand","tags":["app","website","accommodation","lodging"],"variants":{"outline":"f392"}},"brand-cpp":{"name":"brand-cpp","category":"Brand","tags":["code","programming","language","coding"],"variants":{"outline":"f5fe"}},"brand-craft":{"name":"brand-craft","category":"Brand","tags":[],"variants":{"outline":"fa72"}},"brand-crunchbase":{"name":"brand-crunchbase","category":"Brand","tags":[],"variants":{"outline":"f7e3"}},"brand-css3":{"name":"brand-css3","category":"Brand","tags":["cascading","style","sheet","programming","development","web","website","technology"],"variants":{"outline":"ed6b"}},"brand-ctemplar":{"name":"brand-ctemplar","category":"Brand","tags":["e-mail","file","sharing","encryption","app","mobile"],"variants":{"outline":"f4d0"}},"brand-cucumber":{"name":"brand-cucumber","category":"Brand","tags":["software","tool","gherkin","programming","ruby","javascript"],"variants":{"outline":"ef6c"}},"brand-cupra":{"name":"brand-cupra","category":"Brand","tags":["car","seat","sport","formentor","ateca","leon"],"variants":{"outline":"f4d1"}},"brand-cypress":{"name":"brand-cypress","category":"Brand","tags":["test","automation","user","interface","javascript"],"variants":{"outline":"f333"}},"brand-d3":{"name":"brand-d3","category":"Brand","tags":["data","charts","javascript","js"],"variants":{"outline":"f24e"}},"brand-databricks":{"name":"brand-databricks","category":"Brand","tags":["databricks","data","analytics","big","science","machine","learning","platform","engineering","processing","ai"],"variants":{"outline":"fc41"}},"brand-days-counter":{"name":"brand-days-counter","category":"Brand","tags":["app","mobile","highlights","days","birthday"],"variants":{"outline":"f4d2"}},"brand-dcos":{"name":"brand-dcos","category":"Brand","tags":["os","operating","system","cloud","services","networking"],"variants":{"outline":"f32a"}},"brand-debian":{"name":"brand-debian","category":"Brand","tags":["operating system","linux","computer","gnu"],"variants":{"outline":"ef57"}},"brand-deezer":{"name":"brand-deezer","category":"Brand","tags":["music","media","sound","singer"],"variants":{"outline":"f78b"}},"brand-deliveroo":{"name":"brand-deliveroo","category":"Brand","tags":["food","online","delivery","supplier"],"variants":{"outline":"f4d3"}},"brand-deno":{"name":"brand-deno","category":"Brand","tags":["software","javascript","programming","typescript"],"variants":{"outline":"f24f"}},"brand-denodo":{"name":"brand-denodo","category":"Brand","tags":["data","managment","cloud","delivery"],"variants":{"outline":"f610"}},"brand-deviantart":{"name":"brand-deviantart","category":"Brand","tags":["logo","community","internet","works","designer","project","presenting","artist","discussion","website","platform"],"variants":{"outline":"ecfb"}},"brand-digg":{"name":"brand-digg","category":"Brand","tags":[],"variants":{"outline":"fa73"}},"brand-dingtalk":{"name":"brand-dingtalk","category":"Brand","tags":["platform","communication","company","mobile"],"variants":{"outline":"f5ea"}},"brand-discord":{"name":"brand-discord","category":"Brand","tags":["app","application","logo","communication","talks","gamers","freeware","platform"],"variants":{"outline":"ece3","filled":"f7e4"}},"brand-disney":{"name":"brand-disney","category":"Brand","tags":["films","castle","serials","magic","fantasia"],"variants":{"outline":"f20a"}},"brand-disqus":{"name":"brand-disqus","category":"Brand","tags":["comment","blog","service","website","online","platform","social","networking","technology"],"variants":{"outline":"edc9"}},"brand-django":{"name":"brand-django","category":"Brand","tags":["creation","web","application","framework"],"variants":{"outline":"f349"}},"brand-docker":{"name":"brand-docker","category":"Brand","tags":["app","development","hub","platform","software","developer","programming","programmer","virtualization","technology"],"variants":{"outline":"edca"}},"brand-doctrine":{"name":"brand-doctrine","category":"Brand","tags":["database","programming","library","php"],"variants":{"outline":"ef6d"}},"brand-dolby-digital":{"name":"brand-dolby-digital","category":"Brand","tags":["cinema","technology","sound","home"],"variants":{"outline":"f4d4"}},"brand-douban":{"name":"brand-douban","category":"Brand","tags":["china","social","network","film","books","music"],"variants":{"outline":"f5ff"}},"brand-dribbble":{"name":"brand-dribbble","category":"Brand","tags":["logo","website","community","project","platform","self-promotion","designer","portfolio"],"variants":{"outline":"ec19","filled":"f7e5"}},"brand-drops":{"name":"brand-drops","category":"Brand","tags":["education","learning","language","word","game","design"],"variants":{"outline":"f4d5"}},"brand-drupal":{"name":"brand-drupal","category":"Brand","tags":["software","content","management","creation","application"],"variants":{"outline":"f393"}},"brand-edge":{"name":"brand-edge","category":"Brand","tags":["browser","internet","web","logo","explorer"],"variants":{"outline":"ecfc"}},"brand-elastic":{"name":"brand-elastic","category":"Brand","tags":["software","analysis","data","search"],"variants":{"outline":"f611"}},"brand-electronic-arts":{"name":"brand-electronic-arts","category":"Brand","tags":[],"variants":{"outline":"fa74"}},"brand-ember":{"name":"brand-ember","category":"Brand","tags":["library","javascript","web","app","framework"],"variants":{"outline":"f497"}},"brand-envato":{"name":"brand-envato","category":"Brand","tags":["community","creative","resources","tools"],"variants":{"outline":"f394"}},"brand-etsy":{"name":"brand-etsy","category":"Brand","tags":["online","marketplace","make","sell","buy"],"variants":{"outline":"f654"}},"brand-evernote":{"name":"brand-evernote","category":"Brand","tags":["app","organisation","notes","storage","archiving"],"variants":{"outline":"f600"}},"brand-facebook":{"name":"brand-facebook","category":"Brand","tags":["logo","app","application","community","social","communication","website","user","post","images","photos","comment","feedback","fb"],"variants":{"outline":"ec1a","filled":"f7e6"}},"brand-feedly":{"name":"brand-feedly","category":"Brand","tags":["feedly","rss","reader","news","aggregator","content","discovery","information","consumption","feed","newsfeed","app"],"variants":{"outline":"fa75"}},"brand-figma":{"name":"brand-figma","category":"Brand","tags":["logo","editor","graphic","image","implement","prototyping"],"variants":{"outline":"ec93"}},"brand-filezilla":{"name":"brand-filezilla","category":"Brand","tags":[],"variants":{"outline":"fa76"}},"brand-finder":{"name":"brand-finder","category":"Brand","tags":["software","files","manager","macos","osx","programming"],"variants":{"outline":"f218"}},"brand-firebase":{"name":"brand-firebase","category":"Brand","tags":["development","coding","programming","mobile apps"],"variants":{"outline":"ef6e"}},"brand-firefox":{"name":"brand-firefox","category":"Brand","tags":["browser","internet","web","logo"],"variants":{"outline":"ecfd"}},"brand-fiverr":{"name":"brand-fiverr","category":"Brand","tags":["marketplace","creative","proffesional","services"],"variants":{"outline":"f7a4"}},"brand-flickr":{"name":"brand-flickr","category":"Brand","tags":["logo","website","house","facilitate","sharing","digital","photos","images"],"variants":{"outline":"ecfe"}},"brand-flightradar24":{"name":"brand-flightradar24","category":"Brand","tags":["plane","route","fly","height","speed","statistisc"],"variants":{"outline":"f4d6"}},"brand-flipboard":{"name":"brand-flipboard","category":"Brand","tags":["news","newspapper","social","media"],"variants":{"outline":"f20b"}},"brand-flutter":{"name":"brand-flutter","category":"Brand","tags":["tools","programmer","creation","aplication"],"variants":{"outline":"f395"}},"brand-fortnite":{"name":"brand-fortnite","category":"Brand","tags":["games","online","battle","multiplayer","gun","weapon","building"],"variants":{"outline":"f260"}},"brand-foursquare":{"name":"brand-foursquare","category":"Brand","tags":["logo","website","community","social","network"],"variants":{"outline":"ecff"}},"brand-framer-motion":{"name":"brand-framer-motion","category":"Brand","tags":["library","builder","website","developers"],"variants":{"outline":"f78c"}},"brand-framer":{"name":"brand-framer","category":"Brand","tags":["logo","application","app","prototyping","prototype","animations"],"variants":{"outline":"ec1b"}},"brand-funimation":{"name":"brand-funimation","category":"Brand","tags":["dubbing","japan","anime","stream","website"],"variants":{"outline":"f655"}},"brand-gatsby":{"name":"brand-gatsby","category":"Brand","tags":["framework","webpage","creation","software"],"variants":{"outline":"f396"}},"brand-git":{"name":"brand-git","category":"Brand","tags":["programming","coding","software","perl","boume shell"],"variants":{"outline":"ef6f"}},"brand-github-copilot":{"name":"brand-github-copilot","category":"Brand","tags":["ai","artificial","intelligence","autocomplete","coding"],"variants":{"outline":"f4a8"}},"brand-github":{"name":"brand-github","category":"Brand","tags":["logo","website","hosting","project","programming","software","development"],"variants":{"outline":"ec1c","filled":"f7e7"}},"brand-gitlab":{"name":"brand-gitlab","category":"Brand","tags":["logo","website","software","code","programming","programmers"],"variants":{"outline":"ec1d"}},"brand-gmail":{"name":"brand-gmail","category":"Brand","tags":["google","message","mail","communication"],"variants":{"outline":"efa2"}},"brand-golang":{"name":"brand-golang","category":"Brand","tags":["language","programming","app","write","c++","java"],"variants":{"outline":"f78d"}},"brand-google-analytics":{"name":"brand-google-analytics","category":"Brand","tags":["advertising","track","website","traffic","e-commerce","online","technology"],"variants":{"outline":"edcb"}},"brand-google-big-query":{"name":"brand-google-big-query","category":"Brand","tags":["data","analysis","cloud","petabytes","sql"],"variants":{"outline":"f612"}},"brand-google-drive":{"name":"brand-google-drive","category":"Brand","tags":["logo","cloud","disc","documents","sheet","presentation","file","edit"],"variants":{"outline":"ec1e"}},"brand-google-fit":{"name":"brand-google-fit","category":"Brand","tags":["health","tracking","platform","software"],"variants":{"outline":"f297"}},"brand-google-home":{"name":"brand-google-home","category":"Brand","tags":["app","control","devices","speaker"],"variants":{"outline":"f601"}},"brand-google-maps":{"name":"brand-google-maps","category":"Brand","tags":[],"variants":{"outline":"fa4f"}},"brand-google-one":{"name":"brand-google-one","category":"Brand","tags":["data","software","storage","cloud"],"variants":{"outline":"f232"}},"brand-google-photos":{"name":"brand-google-photos","category":"Brand","tags":["gallery","videos","photography","website"],"variants":{"outline":"f20c"}},"brand-google-play":{"name":"brand-google-play","category":"Brand","tags":["logo","application","app","shop","store","online"],"variants":{"outline":"ed25"}},"brand-google-podcasts":{"name":"brand-google-podcasts","category":"Brand","tags":["app","android","ios","discover","listen"],"variants":{"outline":"f656"}},"brand-google":{"name":"brand-google","category":"Brand","tags":["logo","enterprise","browser","internet","web","discover"],"variants":{"outline":"ec1f","filled":"fd1a"}},"brand-grammarly":{"name":"brand-grammarly","category":"Brand","tags":["text","editor","detects","mistakes","grammar"],"variants":{"outline":"f32b"}},"brand-graphql":{"name":"brand-graphql","category":"Brand","tags":["software","communication","server"],"variants":{"outline":"f32c"}},"brand-gravatar":{"name":"brand-gravatar","category":"Brand","tags":["avatar","image","face","blog","comment","represent","online","technology"],"variants":{"outline":"edcc"}},"brand-grindr":{"name":"brand-grindr","category":"Brand","tags":["app","communication","dating","gay","lgbt"],"variants":{"outline":"f20d"}},"brand-guardian":{"name":"brand-guardian","category":"Brand","tags":["news","log","british","article","blog"],"variants":{"outline":"f4fb"}},"brand-gumroad":{"name":"brand-gumroad","category":"Brand","tags":["e-commerce","platform","sell","direct"],"variants":{"outline":"f5d6"}},"brand-hackerrank":{"name":"brand-hackerrank","category":"Brand","tags":[],"variants":{"outline":"ff23"}},"brand-hbo":{"name":"brand-hbo","category":"Brand","tags":["tv","channels","film","movie","serials"],"variants":{"outline":"f657"}},"brand-headlessui":{"name":"brand-headlessui","category":"Brand","tags":["tailwind","css","js","javascript"],"variants":{"outline":"f32d"}},"brand-hexo":{"name":"brand-hexo","category":"Brand","tags":[],"variants":{"outline":"fa50"}},"brand-hipchat":{"name":"brand-hipchat","category":"Brand","tags":["chat","communicate","communication","talk","discuss","app","collaborate","collaboration","technology"],"variants":{"outline":"edcd"}},"brand-html5":{"name":"brand-html5","category":"Brand","tags":["programming","development","web","website","technology","markup","language"],"variants":{"outline":"ed6c"}},"brand-inertia":{"name":"brand-inertia","category":"Brand","tags":["create","app","online","javascript"],"variants":{"outline":"f34a"}},"brand-instagram":{"name":"brand-instagram","category":"Brand","tags":["logo","app","application","images","photos","videos","post","stories","online","community"],"variants":{"outline":"ec20"}},"brand-intercom":{"name":"brand-intercom","category":"Brand","tags":["chat","communcation","software"],"variants":{"outline":"f1cf"}},"brand-itch":{"name":"brand-itch","category":"Brand","tags":[],"variants":{"outline":"fa22"}},"brand-javascript":{"name":"brand-javascript","category":"Brand","tags":["js","language","programming"],"variants":{"outline":"ef0c"}},"brand-juejin":{"name":"brand-juejin","category":"Brand","tags":["development","new","technologies","developers"],"variants":{"outline":"f7b0"}},"brand-kako-talk":{"name":"brand-kako-talk","category":"Brand","tags":["kakao-talk","messaging","communication","chat","social","app","talk","branding","kakao","conversation"],"variants":{"outline":"fd2d"}},"brand-kbin":{"name":"brand-kbin","category":"Brand","tags":[],"variants":{"outline":"fad0"}},"brand-kick":{"name":"brand-kick","category":"Brand","tags":[],"variants":{"outline":"fa23"}},"brand-kickstarter":{"name":"brand-kickstarter","category":"Brand","tags":["crowdfunding","platform","project","creative","idea","business","launch","technology"],"variants":{"outline":"edce"}},"brand-kotlin":{"name":"brand-kotlin","category":"Brand","tags":["programming","language","programmer","development","developer","technology"],"variants":{"outline":"ed6d"}},"brand-laravel":{"name":"brand-laravel","category":"Brand","tags":["framework","software","php","modular","application","building","system"],"variants":{"outline":"f34b"}},"brand-lastfm":{"name":"brand-lastfm","category":"Brand","tags":["radio station","website","music","media player"],"variants":{"outline":"f001"}},"brand-leetcode":{"name":"brand-leetcode","category":"Brand","tags":[],"variants":{"outline":"fa51"}},"brand-letterboxd":{"name":"brand-letterboxd","category":"Brand","tags":[],"variants":{"outline":"fa24"}},"brand-line":{"name":"brand-line","category":"Brand","tags":[],"variants":{"outline":"f7e8"}},"brand-linkedin":{"name":"brand-linkedin","category":"Brand","tags":["logo","website","corporation","work","business","internet"],"variants":{"outline":"ec8c"}},"brand-linktree":{"name":"brand-linktree","category":"Brand","tags":["hyperlinks","social media","freemium service","website"],"variants":{"outline":"f1e7"}},"brand-linqpad":{"name":"brand-linqpad","category":"Brand","tags":["framework","programmers","database"],"variants":{"outline":"f562"}},"brand-livewire":{"name":"brand-livewire","category":"Brand","tags":[],"variants":{"outline":"fd76"}},"brand-loom":{"name":"brand-loom","category":"Brand","tags":["video","messages","osx","record","screen","camera"],"variants":{"outline":"ef70"}},"brand-mailgun":{"name":"brand-mailgun","category":"Brand","tags":["delivery","service","tracking","pickup"],"variants":{"outline":"f32e"}},"brand-mantine":{"name":"brand-mantine","category":"Brand","tags":["creation","web","application","development"],"variants":{"outline":"f32f"}},"brand-mastercard":{"name":"brand-mastercard","category":"Brand","tags":["payment","money","debit","finance"],"variants":{"outline":"ef49"}},"brand-mastodon":{"name":"brand-mastodon","category":"Brand","tags":["web","app","social","nodes","network"],"variants":{"outline":"f250"}},"brand-matrix":{"name":"brand-matrix","category":"Brand","tags":["non","profit","communication","ip","devices"],"variants":{"outline":"f5eb"}},"brand-mcdonalds":{"name":"brand-mcdonalds","category":"Brand","tags":["food","cheeseburger","hamburger","fries","fastfood"],"variants":{"outline":"f251"}},"brand-medium":{"name":"brand-medium","category":"Brand","tags":["logo","website","brand","wordmark","design"],"variants":{"outline":"ec70"}},"brand-meetup":{"name":"brand-meetup","category":"Brand","tags":[],"variants":{"outline":"fc6a"}},"brand-mercedes":{"name":"brand-mercedes","category":"Brand","tags":["car","racing","f1","bus","van"],"variants":{"outline":"f072"}},"brand-messenger":{"name":"brand-messenger","category":"Brand","tags":["logo","app","application","communication","text","messages","communicator","photos","images","videos","giphy"],"variants":{"outline":"ec71"}},"brand-meta":{"name":"brand-meta","category":"Brand","tags":["social media","facebook","fb","instagram","messegner","giphy"],"variants":{"outline":"efb0"}},"brand-metabrainz":{"name":"brand-metabrainz","category":"Brand","tags":["website","database","open-source","musicbrainz","listenbrainz","bookbrainz","critiquebrainz"],"variants":{"outline":"ff12"}},"brand-minecraft":{"name":"brand-minecraft","category":"Brand","tags":[],"variants":{"outline":"faef"}},"brand-miniprogram":{"name":"brand-miniprogram","category":"Brand","tags":[],"variants":{"outline":"f602"}},"brand-mixpanel":{"name":"brand-mixpanel","category":"Brand","tags":["analytics","buisness","software","application"],"variants":{"outline":"f397"}},"brand-monday":{"name":"brand-monday","category":"Brand","tags":["software","application development","cloud base platform"],"variants":{"outline":"f219"}},"brand-mongodb":{"name":"brand-mongodb","category":"Brand","tags":["database","c++","system","open","programmers"],"variants":{"outline":"f613"}},"brand-my-oppo":{"name":"brand-my-oppo","category":"Brand","tags":["mobile","app","services","membership"],"variants":{"outline":"f4d7"}},"brand-mysql":{"name":"brand-mysql","category":"Brand","tags":["opensource","database","system","web","app"],"variants":{"outline":"f614"}},"brand-national-geographic":{"name":"brand-national-geographic","category":"Brand","tags":["institution","scientific","educational","nonprofit"],"variants":{"outline":"f603"}},"brand-nem":{"name":"brand-nem","category":"Brand","tags":["coin","crypto","cryptocurrency","digital"],"variants":{"outline":"f5a1"}},"brand-netbeans":{"name":"brand-netbeans","category":"Brand","tags":["software","programming","tools","java","mobile devices"],"variants":{"outline":"ef71"}},"brand-netease-music":{"name":"brand-netease-music","category":"Brand","tags":["cloud","sound","app","stream","china"],"variants":{"outline":"f604"}},"brand-netflix":{"name":"brand-netflix","category":"Brand","tags":["series","tv","episode","movie","film","media","watch","app","technology"],"variants":{"outline":"edcf"}},"brand-nexo":{"name":"brand-nexo","category":"Brand","tags":["coin","crypto","cryptocurrency","digital"],"variants":{"outline":"f5a2"}},"brand-nextcloud":{"name":"brand-nextcloud","category":"Brand","tags":["software","technology","file","hosting","php","javascript"],"variants":{"outline":"f4d8"}},"brand-nextjs":{"name":"brand-nextjs","category":"Brand","tags":["website creation","web platform","software","web application functions"],"variants":{"outline":"f0dd"}},"brand-nodejs":{"name":"brand-nodejs","category":"Brand","tags":[],"variants":{"outline":"fae0"}},"brand-nord-vpn":{"name":"brand-nord-vpn","category":"Brand","tags":["protects","device","software"],"variants":{"outline":"f37f"}},"brand-notion":{"name":"brand-notion","category":"Brand","tags":["software","note taking","project management","database"],"variants":{"outline":"ef7b"}},"brand-npm":{"name":"brand-npm","category":"Brand","tags":["package","manager","node.js","javascript"],"variants":{"outline":"f569"}},"brand-nuxt":{"name":"brand-nuxt","category":"Brand","tags":["software","app development","library","javascript","js"],"variants":{"outline":"f0de"}},"brand-nytimes":{"name":"brand-nytimes","category":"Brand","tags":["magazines","news","newspapper","website"],"variants":{"outline":"ef8d"}},"brand-oauth":{"name":"brand-oauth","category":"Brand","tags":[],"variants":{"outline":"fa52"}},"brand-office":{"name":"brand-office","category":"Brand","tags":["text","editor","software","word","excel"],"variants":{"outline":"f398"}},"brand-ok-ru":{"name":"brand-ok-ru","category":"Brand","tags":["socialmedia","message","posts"],"variants":{"outline":"f399"}},"brand-onedrive":{"name":"brand-onedrive","category":"Brand","tags":["virtual","disk","microsoft","cloud"],"variants":{"outline":"f5d7"}},"brand-onlyfans":{"name":"brand-onlyfans","category":"Brand","tags":["website","platform","photos","videos","stream","pay"],"variants":{"outline":"f605"}},"brand-open-source":{"name":"brand-open-source","category":"Brand","tags":["software","code","developer","public","licence","technology"],"variants":{"outline":"edd0"}},"brand-openai":{"name":"brand-openai","category":"Brand","tags":["nonprofit","artificial","intelligence","website"],"variants":{"outline":"f78e"}},"brand-openvpn":{"name":"brand-openvpn","category":"Brand","tags":["software","creating","secure","connection"],"variants":{"outline":"f39a"}},"brand-opera":{"name":"brand-opera","category":"Brand","tags":["logo","browser","internet","free","program"],"variants":{"outline":"ec21"}},"brand-pagekit":{"name":"brand-pagekit","category":"Brand","tags":["content","management","system","website","component","modular","technology"],"variants":{"outline":"edd1"}},"brand-parsinta":{"name":"brand-parsinta","category":"Brand","tags":[],"variants":{"outline":"fc42"}},"brand-patreon":{"name":"brand-patreon","category":"Brand","tags":["artist","software","creator","patron","art","subscription","income","earn"],"variants":{"outline":"edd2","filled":"fcff"}},"brand-paypal":{"name":"brand-paypal","category":"Brand","tags":["logo","enterprise","service","payment","internet","businessman","consumer"],"variants":{"outline":"ec22","filled":"f7e9"}},"brand-paypay":{"name":"brand-paypay","category":"Brand","tags":["japan","electronic","payment","services","mobile"],"variants":{"outline":"f5ec"}},"brand-peanut":{"name":"brand-peanut","category":"Brand","tags":["social","app","mobile","women"],"variants":{"outline":"f39b"}},"brand-pepsi":{"name":"brand-pepsi","category":"Brand","tags":["food","cola","coke","drink","bottle","carbonated"],"variants":{"outline":"f261"}},"brand-php":{"name":"brand-php","category":"Brand","tags":["programming","coding","script","format","file"],"variants":{"outline":"ef72"}},"brand-picsart":{"name":"brand-picsart","category":"Brand","tags":["photo","photography","software","video","editing"],"variants":{"outline":"f4d9"}},"brand-pinterest":{"name":"brand-pinterest","category":"Brand","tags":["logo","website","images","materials"],"variants":{"outline":"ec8d"}},"brand-planetscale":{"name":"brand-planetscale","category":"Brand","tags":["mysql","database","developers"],"variants":{"outline":"f78f"}},"brand-pnpm":{"name":"brand-pnpm","category":"Brand","tags":[],"variants":{"outline":"fd77"}},"brand-pocket":{"name":"brand-pocket","category":"Brand","tags":["logo","software","application","app","mobile","device","gathering","storage"],"variants":{"outline":"ed00"}},"brand-polymer":{"name":"brand-polymer","category":"Brand","tags":[],"variants":{"outline":"f498"}},"brand-powershell":{"name":"brand-powershell","category":"Brand","tags":["microsoft","command","interpreter","software","opensource"],"variants":{"outline":"f5ed"}},"brand-printables":{"name":"brand-printables","category":"Brand","tags":[],"variants":{"outline":"fd1b"}},"brand-prisma":{"name":"brand-prisma","category":"Brand","tags":["software","open","source","tools","developer","platform"],"variants":{"outline":"f499"}},"brand-producthunt":{"name":"brand-producthunt","category":"Brand","tags":["technology","product","share","discover","new","novelty","web","geek"],"variants":{"outline":"edd3"}},"brand-pushbullet":{"name":"brand-pushbullet","category":"Brand","tags":["data","transfer","tool","software"],"variants":{"outline":"f330"}},"brand-pushover":{"name":"brand-pushover","category":"Brand","tags":["notifications","push","cloud based","mobile","app"],"variants":{"outline":"f20e"}},"brand-python":{"name":"brand-python","category":"Brand","tags":["logo","language","programming","source"],"variants":{"outline":"ed01"}},"brand-qq":{"name":"brand-qq","category":"Brand","tags":["china","communicator","internet"],"variants":{"outline":"f606"}},"brand-radix-ui":{"name":"brand-radix-ui","category":"Brand","tags":["opensource","library","web","application","high","quality"],"variants":{"outline":"f790"}},"brand-react-native":{"name":"brand-react-native","category":"Brand","tags":["programming","tools","app","javascript","js"],"variants":{"outline":"ef73"}},"brand-react":{"name":"brand-react","category":"Brand","tags":["library","javascript","creation","interface","software"],"variants":{"outline":"f34c"}},"brand-reason":{"name":"brand-reason","category":"Brand","tags":[],"variants":{"outline":"f49a"}},"brand-reddit":{"name":"brand-reddit","category":"Brand","tags":["logo","website","information","link","internet"],"variants":{"outline":"ec8e"}},"brand-redhat":{"name":"brand-redhat","category":"Brand","tags":["software","entrepreneurship","creation"],"variants":{"outline":"f331"}},"brand-redux":{"name":"brand-redux","category":"Brand","tags":["library","javascript","menagment","centralization","application","status"],"variants":{"outline":"f3a8"}},"brand-revolut":{"name":"brand-revolut","category":"Brand","tags":["bank","money","finance","change","currency"],"variants":{"outline":"f4da"}},"brand-rumble":{"name":"brand-rumble","category":"Brand","tags":[],"variants":{"outline":"fad1"}},"brand-rust":{"name":"brand-rust","category":"Brand","tags":[],"variants":{"outline":"fa53"}},"brand-safari":{"name":"brand-safari","category":"Brand","tags":["logo","browser","internet","iphone","ipad","MacBook","compass","apple","discover"],"variants":{"outline":"ec23"}},"brand-samsungpass":{"name":"brand-samsungpass","category":"Brand","tags":["management","storage","personal","information","id","password"],"variants":{"outline":"f4db"}},"brand-sass":{"name":"brand-sass","category":"Brand","tags":["technology","preprocessor","script","language","programming","css","syntax","compile"],"variants":{"outline":"edd4"}},"brand-sentry":{"name":"brand-sentry","category":"Brand","tags":["technology","application","monitoring","error","tracking","software","cloud","development","app"],"variants":{"outline":"edd5"}},"brand-sharik":{"name":"brand-sharik","category":"Brand","tags":["file","sharing","wifi","mobile","hotspot"],"variants":{"outline":"f4dc"}},"brand-shazam":{"name":"brand-shazam","category":"Brand","tags":["app","technology","device","music","sound","play","discover","artist","recognize"],"variants":{"outline":"edd6"}},"brand-shopee":{"name":"brand-shopee","category":"Brand","tags":["shopping","online","media","shop","ecommerce"],"variants":{"outline":"f252"}},"brand-sketch":{"name":"brand-sketch","category":"Brand","tags":["logo","editor","edit","graphic","apple","commercial"],"variants":{"outline":"ec24"}},"brand-skype":{"name":"brand-skype","category":"Brand","tags":["logo","application","app","communication","talks","call","video","internet","camera"],"variants":{"outline":"ed02"}},"brand-slack":{"name":"brand-slack","category":"Brand","tags":["logo","free","internet","service","stuff","electron","app","application","communicator","textual","audio","multimedia"],"variants":{"outline":"ec72"}},"brand-snapchat":{"name":"brand-snapchat","category":"Brand","tags":["logo","app","application","photos","sending","images","mobile","video"],"variants":{"outline":"ec25"}},"brand-snapseed":{"name":"brand-snapseed","category":"Brand","tags":["edit","photo","image","editor","google"],"variants":{"outline":"f253"}},"brand-snowflake":{"name":"brand-snowflake","category":"Brand","tags":["data","cloud","platform","website"],"variants":{"outline":"f615"}},"brand-socket-io":{"name":"brand-socket-io","category":"Brand","tags":["library","javascript","web","app","communication"],"variants":{"outline":"f49b"}},"brand-solidjs":{"name":"brand-solidjs","category":"Brand","tags":["library","framework","developers","programmers","javascript"],"variants":{"outline":"f5ee"}},"brand-soundcloud":{"name":"brand-soundcloud","category":"Brand","tags":["technology","audio","distribution","platform","music","upload","promote","streaming"],"variants":{"outline":"ed6e"}},"brand-spacehey":{"name":"brand-spacehey","category":"Brand","tags":["internet","network","social","website"],"variants":{"outline":"f4fc"}},"brand-speedtest":{"name":"brand-speedtest","category":"Brand","tags":[],"variants":{"outline":"fa77"}},"brand-spotify":{"name":"brand-spotify","category":"Brand","tags":["logo","app","application","platform","music","listening","streaming","podcast"],"variants":{"outline":"ed03","filled":"fe86"}},"brand-stackoverflow":{"name":"brand-stackoverflow","category":"Brand","tags":["social","media","programming","website"],"variants":{"outline":"ef58"}},"brand-stackshare":{"name":"brand-stackshare","category":"Brand","tags":["website","developers","tech","opensource"],"variants":{"outline":"f607"}},"brand-steam":{"name":"brand-steam","category":"Brand","tags":["technology","video","game","digital","distribution","software","player","pc"],"variants":{"outline":"ed6f"}},"brand-stocktwits":{"name":"brand-stocktwits","category":"Brand","tags":[],"variants":{"outline":"fd78"}},"brand-storj":{"name":"brand-storj","category":"Brand","tags":[],"variants":{"outline":"fa54"}},"brand-storybook":{"name":"brand-storybook","category":"Brand","tags":["tool","creation","interface","application"],"variants":{"outline":"f332"}},"brand-storytel":{"name":"brand-storytel","category":"Brand","tags":["audiobook","stream","phone","tablet","digital","subscription","service"],"variants":{"outline":"f608"}},"brand-strava":{"name":"brand-strava","category":"Brand","tags":["run","ride","hike","activity","gps","sport","app"],"variants":{"outline":"f254"}},"brand-stripe":{"name":"brand-stripe","category":"Brand","tags":["technology","payment","processing","money","subscription","finance","financial","software","e-commerce"],"variants":{"outline":"edd7"}},"brand-sublime-text":{"name":"brand-sublime-text","category":"Brand","tags":["software","text","editing","programming"],"variants":{"outline":"ef74"}},"brand-sugarizer":{"name":"brand-sugarizer","category":"Brand","tags":["learning","platform","webstie","child"],"variants":{"outline":"f7a5"}},"brand-supabase":{"name":"brand-supabase","category":"Brand","tags":["opensource","database","software","storage"],"variants":{"outline":"f6d3"}},"brand-superhuman":{"name":"brand-superhuman","category":"Brand","tags":["software","email","productivity","tools"],"variants":{"outline":"f50c"}},"brand-supernova":{"name":"brand-supernova","category":"Brand","tags":["editor","developer","tools","technology","design"],"variants":{"outline":"f49c"}},"brand-surfshark":{"name":"brand-surfshark","category":"Brand","tags":["vpn","security","ip","network","private"],"variants":{"outline":"f255"}},"brand-svelte":{"name":"brand-svelte","category":"Brand","tags":["programming","coding","interface","web app"],"variants":{"outline":"f0df"}},"brand-swift":{"name":"brand-swift","category":"Brand","tags":[],"variants":{"outline":"fa55"}},"brand-symfony":{"name":"brand-symfony","category":"Brand","tags":["framework","php","software","build","web","application"],"variants":{"outline":"f616"}},"brand-tabler":{"name":"brand-tabler","category":"Brand","tags":["logo","website","dashboard","download","open-source","ui"],"variants":{"outline":"ec8f"}},"brand-tailwind":{"name":"brand-tailwind","category":"Brand","tags":["logo","firm","website"],"variants":{"outline":"eca1"}},"brand-taobao":{"name":"brand-taobao","category":"Brand","tags":["china","platform","shopping","online"],"variants":{"outline":"f5ef"}},"brand-teams":{"name":"brand-teams","category":"Brand","tags":["microsoft","technology"],"variants":{"outline":"fadf"}},"brand-ted":{"name":"brand-ted","category":"Brand","tags":["nonprofit","website","scientific","conferences","organised"],"variants":{"outline":"f658"}},"brand-telegram":{"name":"brand-telegram","category":"Brand","tags":["logo","app","application","communicator","internet","cloud","messages","text","images","photos","videos","record","file","send"],"variants":{"outline":"ec26"}},"brand-terraform":{"name":"brand-terraform","category":"Brand","tags":[],"variants":{"outline":"fa56"}},"brand-tether":{"name":"brand-tether","category":"Brand","tags":["coin","crypto","cryptocurrency","digital"],"variants":{"outline":"f5a3"}},"brand-thingiverse":{"name":"brand-thingiverse","category":"Brand","tags":[],"variants":{"outline":"fd1c"}},"brand-threads":{"name":"brand-threads","category":"Brand","tags":[],"variants":{"outline":"fb02"}},"brand-threejs":{"name":"brand-threejs","category":"Brand","tags":["javascript","3d","library","interface","software","make","animation"],"variants":{"outline":"f5f0"}},"brand-tidal":{"name":"brand-tidal","category":"Brand","tags":["technology","subscription","music","podcast","video","streaming","playlist","party","track","song"],"variants":{"outline":"ed70"}},"brand-tiktok":{"name":"brand-tiktok","category":"Brand","tags":["logo","app","application","mobile","video","music"],"variants":{"outline":"ec73","filled":"f7ea"}},"brand-tinder":{"name":"brand-tinder","category":"Brand","tags":["date","dating","app","love","affection","affair","couple","technology","networking","swipe","match"],"variants":{"outline":"ed71"}},"brand-topbuzz":{"name":"brand-topbuzz","category":"Brand","tags":["video","gif","articles","news"],"variants":{"outline":"f50d"}},"brand-torchain":{"name":"brand-torchain","category":"Brand","tags":["coin","crypto","cryptocurrency","digital"],"variants":{"outline":"f5a4"}},"brand-toyota":{"name":"brand-toyota","category":"Brand","tags":["car","transport","transportation"],"variants":{"outline":"f262"}},"brand-trello":{"name":"brand-trello","category":"Brand","tags":["visual","tool","board","kanban"],"variants":{"outline":"f39d"}},"brand-tripadvisor":{"name":"brand-tripadvisor","category":"Brand","tags":["travel","trip","tourism","website"],"variants":{"outline":"f002"}},"brand-tumblr":{"name":"brand-tumblr","category":"Brand","tags":["logo","website","platform","blog","community"],"variants":{"outline":"ed04"}},"brand-twilio":{"name":"brand-twilio","category":"Brand","tags":["communication","answering","calls","messages"],"variants":{"outline":"f617"}},"brand-twitch":{"name":"brand-twitch","category":"Brand","tags":["logo","platform","streaming","streamers","videos","films","chat","subs"],"variants":{"outline":"ed05"}},"brand-twitter":{"name":"brand-twitter","category":"Brand","tags":["logo","app","application","community","social","communication","website","user","post","images","photos","comment","feedback"],"variants":{"outline":"ec27","filled":"f7eb"}},"brand-typescript":{"name":"brand-typescript","category":"Brand","tags":["language","programmers","opensource","javascript"],"variants":{"outline":"f5f1"}},"brand-uber":{"name":"brand-uber","category":"Brand","tags":["taxi","transport","car","food"],"variants":{"outline":"ef75"}},"brand-ubuntu":{"name":"brand-ubuntu","category":"Brand","tags":["os","operating","system","linux","gnu"],"variants":{"outline":"ef59"}},"brand-unity":{"name":"brand-unity","category":"Brand","tags":["engine","creation","3d","2d"],"variants":{"outline":"f49d"}},"brand-unsplash":{"name":"brand-unsplash","category":"Brand","tags":["picture","photo","photography","search","image","stock"],"variants":{"outline":"edd8"}},"brand-upwork":{"name":"brand-upwork","category":"Brand","tags":["freelancer","software","finance"],"variants":{"outline":"f39e"}},"brand-valorant":{"name":"brand-valorant","category":"Brand","tags":["game","fps","videogame","shooter"],"variants":{"outline":"f39f"}},"brand-vercel":{"name":"brand-vercel","category":"Brand","tags":["develop","preview","programmers","build","publish"],"variants":{"outline":"ef24"}},"brand-vimeo":{"name":"brand-vimeo","category":"Brand","tags":["logo","website","sharing","watching","video","users"],"variants":{"outline":"ed06"}},"brand-vinted":{"name":"brand-vinted","category":"Brand","tags":["website","clothes","trading","exchange","sale","shopping"],"variants":{"outline":"f20f"}},"brand-visa":{"name":"brand-visa","category":"Brand","tags":["payment","card","method","pay"],"variants":{"outline":"f380"}},"brand-visual-studio":{"name":"brand-visual-studio","category":"Brand","tags":["software","microsoft","programming","developers","coding"],"variants":{"outline":"ef76"}},"brand-vite":{"name":"brand-vite","category":"Brand","tags":["software","building","tool","programming","web","projects"],"variants":{"outline":"f5f2"}},"brand-vivaldi":{"name":"brand-vivaldi","category":"Brand","tags":["browser","internet","web","free","program"],"variants":{"outline":"f210"}},"brand-vk":{"name":"brand-vk","category":"Brand","tags":["technology","social","media","networking","service","russian"],"variants":{"outline":"ed72"}},"brand-vlc":{"name":"brand-vlc","category":"Brand","tags":[],"variants":{"outline":"fa78"}},"brand-volkswagen":{"name":"brand-volkswagen","category":"Brand","tags":["car","vehicle","transportation","van","traveling"],"variants":{"outline":"f50e"}},"brand-vsco":{"name":"brand-vsco","category":"Brand","tags":["photography","image","application"],"variants":{"outline":"f334"}},"brand-vscode":{"name":"brand-vscode","category":"Brand","tags":["code","editor","software"],"variants":{"outline":"f3a0"}},"brand-vue":{"name":"brand-vue","category":"Brand","tags":["programming","coding","javascript","document","software"],"variants":{"outline":"f0e0"}},"brand-walmart":{"name":"brand-walmart","category":"Brand","tags":["shop","supermarket","food","drinking","groceries","shopping"],"variants":{"outline":"f211"}},"brand-waze":{"name":"brand-waze","category":"Brand","tags":["software","navigation","satellite","mobile","phone"],"variants":{"outline":"f5d8"}},"brand-webflow":{"name":"brand-webflow","category":"Brand","tags":["web","website","creation"],"variants":{"outline":"f2d2"}},"brand-wechat":{"name":"brand-wechat","category":"Brand","tags":["china","communicator","social","media","software"],"variants":{"outline":"f5f3"}},"brand-weibo":{"name":"brand-weibo","category":"Brand","tags":["china","share","messages","internet","service"],"variants":{"outline":"f609"}},"brand-whatsapp":{"name":"brand-whatsapp","category":"Brand","tags":["logo","app","application","communication","text","messages","communicator","photos","images","videos","giphy"],"variants":{"outline":"ec74"}},"brand-wikipedia":{"name":"brand-wikipedia","category":"Brand","tags":[],"variants":{"outline":"fa79"}},"brand-windows":{"name":"brand-windows","category":"Brand","tags":["logo","system","os","computer","microsoft"],"variants":{"outline":"ecd8"}},"brand-windy":{"name":"brand-windy","category":"Brand","tags":["weather","sun","cold","hot","rain","forecast"],"variants":{"outline":"f4dd"}},"brand-wish":{"name":"brand-wish","category":"Brand","tags":["shopping","online","tools","gadgets","toys"],"variants":{"outline":"f212"}},"brand-wix":{"name":"brand-wix","category":"Brand","tags":["logo","maker","web","website"],"variants":{"outline":"f3a1"}},"brand-wordpress":{"name":"brand-wordpress","category":"Brand","tags":["logotype","web","website","glyph","social"],"variants":{"outline":"f2d3"}},"brand-x":{"name":"brand-x","category":"Brand","tags":["twitter"],"variants":{"outline":"fc0f","filled":"fc21"}},"brand-xamarin":{"name":"brand-xamarin","category":"Brand","tags":[],"variants":{"outline":"fa7a"}},"brand-xbox":{"name":"brand-xbox","category":"Brand","tags":["game","console","videogame","controller"],"variants":{"outline":"f298"}},"brand-xdeep":{"name":"brand-xdeep","category":"Brand","tags":[],"variants":{"outline":"fc10"}},"brand-xing":{"name":"brand-xing","category":"Brand","tags":["web","media","network","site","social"],"variants":{"outline":"f21a"}},"brand-yahoo":{"name":"brand-yahoo","category":"Brand","tags":["web","services","technology","inbox","mail","news","search"],"variants":{"outline":"ed73"}},"brand-yandex":{"name":"brand-yandex","category":"Brand","tags":[],"variants":{"outline":"fae1"}},"brand-yarn":{"name":"brand-yarn","category":"Brand","tags":[],"variants":{"outline":"fd79"}},"brand-yatse":{"name":"brand-yatse","category":"Brand","tags":["multimedia","technology","pilot","software","android"],"variants":{"outline":"f213"}},"brand-ycombinator":{"name":"brand-ycombinator","category":"Brand","tags":["startup","accelerator","seed","money","launch","company","business","invest","funding"],"variants":{"outline":"edd9"}},"brand-youtube-kids":{"name":"brand-youtube-kids","category":"Brand","tags":["video","program","young","children","maker","stories","youtuber"],"variants":{"outline":"f214"}},"brand-youtube":{"name":"brand-youtube","category":"Brand","tags":["logo","platform","channel","film","video","youtuber","maker","comments","stream","streamer"],"variants":{"outline":"ec90","filled":"fc22"}},"brand-zalando":{"name":"brand-zalando","category":"Brand","tags":["footwear","shoes","clotches","app","online","shop"],"variants":{"outline":"f49e"}},"brand-zapier":{"name":"brand-zapier","category":"Brand","tags":["automated","create","app","buissnes"],"variants":{"outline":"f49f"}},"brand-zeit":{"name":"brand-zeit","category":"Brand","tags":["consulting","software"],"variants":{"outline":"f335"}},"brand-zhihu":{"name":"brand-zhihu","category":"Brand","tags":["forum","make","question","answers","website"],"variants":{"outline":"f60a"}},"brand-zoom":{"name":"brand-zoom","category":"Brand","tags":["program","video","chat","meetings","online"],"variants":{"outline":"f215"}},"brand-zulip":{"name":"brand-zulip","category":"Brand","tags":["chat","software","phyton","javascript"],"variants":{"outline":"f4de"}},"brand-zwift":{"name":"brand-zwift","category":"Brand","tags":["technology","bike","sport","movement","game"],"variants":{"outline":"f216"}},"bread-off":{"name":"bread-off","category":"Food","tags":["food","breakfast","sandwich","toast","baking"],"variants":{"outline":"f3cb"}},"bread":{"name":"bread","category":"Food","tags":["food","breakfast","sandwich","toast","baking"],"variants":{"outline":"efa3","filled":"fe85"}},"briefcase-2":{"name":"briefcase-2","category":"","tags":["bag","baggage","folder","carrier","documents","suitcase","job","work","luggage"],"variants":{"outline":"fb03","filled":"fe84"}},"briefcase-off":{"name":"briefcase-off","category":"","tags":["bag","baggage","folder","carrier","documents"],"variants":{"outline":"f3cc"}},"briefcase":{"name":"briefcase","category":"","tags":["bag","baggage","folder","carrier","documents","suitcase","job","work","luggage"],"variants":{"outline":"ea46","filled":"fd00"}},"brightness-2":{"name":"brightness-2","category":"Photography","tags":["light","screen","level","daytime","sun"],"variants":{"outline":"ee19"}},"brightness-auto":{"name":"brightness-auto","category":"","tags":[],"variants":{"outline":"fd99","filled":"fe83"}},"brightness-down":{"name":"brightness-down","category":"Photography","tags":["dark","darker","screen"],"variants":{"outline":"eb7d","filled":"fb23"}},"brightness-half":{"name":"brightness-half","category":"Photography","tags":["light","screen","level","daytime","sun"],"variants":{"outline":"ee1a"}},"brightness-off":{"name":"brightness-off","category":"Photography","tags":["light","dark","screen"],"variants":{"outline":"f3cd"}},"brightness-up":{"name":"brightness-up","category":"Photography","tags":["light","screen"],"variants":{"outline":"eb7e","filled":"fb24"}},"brightness":{"name":"brightness","category":"Photography","tags":["light","dark","screen"],"variants":{"outline":"eb7f","filled":"fe82"}},"broadcast-off":{"name":"broadcast-off","category":"Devices","tags":["communication","tv","signal","media","sound","connection","network"],"variants":{"outline":"f1e8"}},"broadcast":{"name":"broadcast","category":"Devices","tags":["communication","tv","signal","media","sound","connection","network"],"variants":{"outline":"f1e9"}},"browser-check":{"name":"browser-check","category":"Devices","tags":["internet","web","display","done","tick"],"variants":{"outline":"efd6"}},"browser-off":{"name":"browser-off","category":"Devices","tags":["internet","web","display"],"variants":{"outline":"f0c1"}},"browser-plus":{"name":"browser-plus","category":"Devices","tags":["internet","web","display","new","add"],"variants":{"outline":"efd7"}},"browser-x":{"name":"browser-x","category":"Devices","tags":["internet","web","display","close"],"variants":{"outline":"efd8"}},"browser":{"name":"browser","category":"Devices","tags":["internet","web","display"],"variants":{"outline":"ebb7"}},"brush-off":{"name":"brush-off","category":"Design","tags":["paint","art","picture","paintbrush","painter","theme"],"variants":{"outline":"f0c2"}},"brush":{"name":"brush","category":"Design","tags":["paint","art","picture","paintbrush","painter","theme"],"variants":{"outline":"ebb8"}},"bubble-minus":{"name":"bubble-minus","category":"Communication","tags":["comment","chat","reply","communication","conversation","faq","message","text"],"variants":{"outline":"febe"}},"bubble-plus":{"name":"bubble-plus","category":"Communication","tags":["comment","chat","reply","communication","conversation","faq","message","text"],"variants":{"outline":"febd"}},"bubble-tea-2":{"name":"bubble-tea-2","category":"","tags":[],"variants":{"outline":"ff52"}},"bubble-tea":{"name":"bubble-tea","category":"","tags":[],"variants":{"outline":"ff51"}},"bubble-text":{"name":"bubble-text","category":"Communication","tags":["comment","chat","reply","communication","conversation","faq","message","text"],"variants":{"outline":"febc"}},"bubble-x":{"name":"bubble-x","category":"Communication","tags":["comment","chat","reply","communication","conversation","faq","message","text"],"variants":{"outline":"febb"}},"bubble":{"name":"bubble","category":"Communication","tags":["comment","chat","reply","communication","conversation","faq","message","text"],"variants":{"outline":"feba","filled":"fec3"}},"bucket-droplet":{"name":"bucket-droplet","category":"Design","tags":["water","liquid","drop","tool","fill"],"variants":{"outline":"f56a"}},"bucket-off":{"name":"bucket-off","category":"Design","tags":["collection","container","water","liquid"],"variants":{"outline":"f103"}},"bucket":{"name":"bucket","category":"Design","tags":["collection","container","water","liquid"],"variants":{"outline":"ea47"}},"bug-off":{"name":"bug-off","category":"Development","tags":["germ","insect","error","nature"],"variants":{"outline":"f0c3"}},"bug":{"name":"bug","category":"Development","tags":["germ","insect","error","nature"],"variants":{"outline":"ea48","filled":"fd01"}},"building-arch":{"name":"building-arch","category":"Buildings","tags":["arc","curve","dome","monument","history","architecture"],"variants":{"outline":"ea49"}},"building-bank":{"name":"building-bank","category":"Buildings","tags":["architecture","city","urban","construction","money","credit","loan","workplace"],"variants":{"outline":"ebe2"}},"building-bridge-2":{"name":"building-bridge-2","category":"Buildings","tags":["architecture","urban","river","overpass","city","countryside"],"variants":{"outline":"ea4a"}},"building-bridge":{"name":"building-bridge","category":"Buildings","tags":["architecture","urban","river","overpass","city","countryside"],"variants":{"outline":"ea4b"}},"building-broadcast-tower":{"name":"building-broadcast-tower","category":"Buildings","tags":["communication","internet","signal"],"variants":{"outline":"f4be","filled":"fe81"}},"building-burj-al-arab":{"name":"building-burj-al-arab","category":"","tags":[],"variants":{"outline":"ff50"}},"building-carousel":{"name":"building-carousel","category":"Buildings","tags":["amusement","park","fair","merry-go-round","fun","entertaianment"],"variants":{"outline":"ed87"}},"building-castle":{"name":"building-castle","category":"Buildings","tags":["king","queen","royal","architecture","medieval","middle","ages","nobility","tower","fortress","fort","fortification","princess","prince"],"variants":{"outline":"ed88"}},"building-church":{"name":"building-church","category":"Buildings","tags":["religion","chapel","sanctuary","temple","cathedral","pray","prayer"],"variants":{"outline":"ea4c"}},"building-circus":{"name":"building-circus","category":"Buildings","tags":["tent","show","carnival","clown"],"variants":{"outline":"f4bf"}},"building-community":{"name":"building-community","category":"Buildings","tags":["place","skyscraper","district neighborhood","area"],"variants":{"outline":"ebf6"}},"building-cottage":{"name":"building-cottage","category":"Buildings","tags":["small","house","countryside","live","farm","rural","outskirts"],"variants":{"outline":"ee1b"}},"building-estate":{"name":"building-estate","category":"Buildings","tags":["office","property","work","architecture"],"variants":{"outline":"f5a5"}},"building-factory-2":{"name":"building-factory-2","category":"Buildings","tags":["goods","manufature","machine","trade","produce","product","worker","industry","industrial","site"],"variants":{"outline":"f082"}},"building-factory":{"name":"building-factory","category":"Buildings","tags":["goods","manufature","machine","trade","produce","product","worker","industry","industrial","site"],"variants":{"outline":"ee1c"}},"building-fortress":{"name":"building-fortress","category":"Buildings","tags":["military","town","defend","attack","stronghold","protect","protection","medieval"],"variants":{"outline":"ed89"}},"building-hospital":{"name":"building-hospital","category":"Buildings","tags":["doctor","sickness","illness","nurse","medication","emergency","treat","surgery"],"variants":{"outline":"ea4d"}},"building-lighthouse":{"name":"building-lighthouse","category":"Buildings","tags":["light","sea","tower","beacon","flash","ship","guide","lightship","leading","watchtower","signal"],"variants":{"outline":"ed8a"}},"building-monument":{"name":"building-monument","category":"Buildings","tags":["history","memorial","commemorative"],"variants":{"outline":"ed26"}},"building-mosque":{"name":"building-mosque","category":"Buildings","tags":[],"variants":{"outline":"fa57"}},"building-off":{"name":"building-off","category":"Buildings","tags":["flat","office","city","urban","scyscraper","architecture","construction"],"variants":{"outline":"fefd"}},"building-pavilion":{"name":"building-pavilion","category":"Buildings","tags":["place","party","residence","ornamentation"],"variants":{"outline":"ebf7"}},"building-skyscraper":{"name":"building-skyscraper","category":"Buildings","tags":["city","urban","office","workplace","corporation","hotel","apartments"],"variants":{"outline":"ec39"}},"building-stadium":{"name":"building-stadium","category":"Buildings","tags":["construciton","estate","football","supporters"],"variants":{"outline":"f641"}},"building-store":{"name":"building-store","category":"Buildings","tags":["shopping","shop","supermarket","market","products","retail","buy","sell"],"variants":{"outline":"ea4e"}},"building-tunnel":{"name":"building-tunnel","category":"Buildings","tags":["train","road","underground","subway"],"variants":{"outline":"f5a6"}},"building-warehouse":{"name":"building-warehouse","category":"Buildings","tags":["store","inventory","stuff","things","machinery"],"variants":{"outline":"ebe3"}},"building-wind-turbine":{"name":"building-wind-turbine","category":"Buildings","tags":["power","ecology","electricy","energy"],"variants":{"outline":"f4c0"}},"building":{"name":"building","category":"Buildings","tags":["flat","office","city","urban","scyscraper","architecture","construction"],"variants":{"outline":"ea4f"}},"buildings":{"name":"buildings","category":"Buildings","tags":["flat","office","city","urban","scyscraper","architecture","construction"],"variants":{"outline":"ff40"}},"bulb-off":{"name":"bulb-off","category":"","tags":["energy","power","electricity","creativity","light","idea"],"variants":{"outline":"ea50"}},"bulb":{"name":"bulb","category":"","tags":["energy","power","electricity","creativity","light","idea"],"variants":{"outline":"ea51","filled":"f66a"}},"bulldozer":{"name":"bulldozer","category":"Vehicles","tags":["tractor","construction","site","build","rear","machine"],"variants":{"outline":"ee1d"}},"burger":{"name":"burger","category":"","tags":[],"variants":{"outline":"fcb4"}},"bus-off":{"name":"bus-off","category":"Vehicles","tags":["vehicle","drive","driver","engine","motor","journey","trip"],"variants":{"outline":"f3ce"}},"bus-stop":{"name":"bus-stop","category":"Vehicles","tags":["transport","station","city","travel"],"variants":{"outline":"f2d4"}},"bus":{"name":"bus","category":"Vehicles","tags":["vehicle","drive","driver","engine","motor","journey","trip"],"variants":{"outline":"ebe4"}},"businessplan":{"name":"businessplan","category":"","tags":["business","money","corporate","document","goal","achieve","manage","roadmap","grow"],"variants":{"outline":"ee1e"}},"butterfly":{"name":"butterfly","category":"Nature","tags":["animal","insect","nature","fly","wings"],"variants":{"outline":"efd9"}},"cactus-off":{"name":"cactus-off","category":"Nature","tags":["plant","desert","spikes","nature","garden"],"variants":{"outline":"f3cf"}},"cactus":{"name":"cactus","category":"Nature","tags":["plant","desert","spikes","nature","garden"],"variants":{"outline":"f21b","filled":"fb25"}},"cake-off":{"name":"cake-off","category":"","tags":["baking","birthday","party","chocolate","sweet"],"variants":{"outline":"f104"}},"cake":{"name":"cake","category":"","tags":["baking","birthday","party","chocolate","sweet"],"variants":{"outline":"f00f"}},"calculator-off":{"name":"calculator-off","category":"Devices","tags":["math","count","add","subtract","multiply","divide","amount"],"variants":{"outline":"f0c4"}},"calculator":{"name":"calculator","category":"Devices","tags":["math","count","add","subtract","multiply","divide","amount"],"variants":{"outline":"eb80","filled":"fb26"}},"calendar-bolt":{"name":"calendar-bolt","category":"System","tags":[],"variants":{"outline":"f822"}},"calendar-cancel":{"name":"calendar-cancel","category":"System","tags":[],"variants":{"outline":"f823"}},"calendar-check":{"name":"calendar-check","category":"System","tags":[],"variants":{"outline":"f824"}},"calendar-clock":{"name":"calendar-clock","category":"","tags":["time-calendar","schedule-clock","appointment","date-time","event-schedule","timing","calendar-clock","agenda","time-management","calendar-event"],"variants":{"outline":"fd2e"}},"calendar-code":{"name":"calendar-code","category":"System","tags":[],"variants":{"outline":"f825"}},"calendar-cog":{"name":"calendar-cog","category":"System","tags":[],"variants":{"outline":"f826"}},"calendar-dollar":{"name":"calendar-dollar","category":"System","tags":[],"variants":{"outline":"f827"}},"calendar-dot":{"name":"calendar-dot","category":"","tags":[],"variants":{"outline":"fd3e"}},"calendar-down":{"name":"calendar-down","category":"System","tags":[],"variants":{"outline":"f828"}},"calendar-due":{"name":"calendar-due","category":"System","tags":["date","deadline","schedule"],"variants":{"outline":"f621"}},"calendar-event":{"name":"calendar-event","category":"System","tags":["date","day","plan","schedule","agenda","calender"],"variants":{"outline":"ea52"}},"calendar-exclamation":{"name":"calendar-exclamation","category":"System","tags":[],"variants":{"outline":"f829"}},"calendar-heart":{"name":"calendar-heart","category":"System","tags":[],"variants":{"outline":"f82a"}},"calendar-minus":{"name":"calendar-minus","category":"System","tags":["date","day","plan","schedule","agenda","calender"],"variants":{"outline":"ebb9"}},"calendar-month":{"name":"calendar-month","category":"","tags":["monthly-calendar","month-view","date-month","monthly-schedule","timeframe","calendar-grid","month","month-planner","monthly","date-grid"],"variants":{"outline":"fd2f"}},"calendar-off":{"name":"calendar-off","category":"System","tags":["date","day","plan","schedule","agenda","calender"],"variants":{"outline":"ee1f"}},"calendar-pause":{"name":"calendar-pause","category":"System","tags":[],"variants":{"outline":"f82b"}},"calendar-pin":{"name":"calendar-pin","category":"System","tags":[],"variants":{"outline":"f82c"}},"calendar-plus":{"name":"calendar-plus","category":"System","tags":["date","day","plan","schedule","agenda","add","calender"],"variants":{"outline":"ebba"}},"calendar-question":{"name":"calendar-question","category":"System","tags":[],"variants":{"outline":"f82d"}},"calendar-repeat":{"name":"calendar-repeat","category":"System","tags":[],"variants":{"outline":"fad2"}},"calendar-sad":{"name":"calendar-sad","category":"","tags":[],"variants":{"outline":"fd1d"}},"calendar-search":{"name":"calendar-search","category":"System","tags":[],"variants":{"outline":"f82e"}},"calendar-share":{"name":"calendar-share","category":"System","tags":[],"variants":{"outline":"f82f"}},"calendar-smile":{"name":"calendar-smile","category":"","tags":[],"variants":{"outline":"fd1e"}},"calendar-star":{"name":"calendar-star","category":"System","tags":[],"variants":{"outline":"f830"}},"calendar-stats":{"name":"calendar-stats","category":"System","tags":["plan","timetable","schedule","meeting","busy","month","year","date","statistics","calender"],"variants":{"outline":"ee20"}},"calendar-time":{"name":"calendar-time","category":"System","tags":["plan","timetable","schedule","meeting","busy","month","year","date","calender"],"variants":{"outline":"ee21"}},"calendar-up":{"name":"calendar-up","category":"System","tags":[],"variants":{"outline":"f831"}},"calendar-user":{"name":"calendar-user","category":"","tags":[],"variants":{"outline":"fd1f"}},"calendar-week":{"name":"calendar-week","category":"","tags":["weekly-calendar","week-view","date-week","weekly-schedule","timeframe","calendar-grid","week","week-planner","weekly","date-grid"],"variants":{"outline":"fd30"}},"calendar-x":{"name":"calendar-x","category":"System","tags":[],"variants":{"outline":"f832"}},"calendar":{"name":"calendar","category":"System","tags":["date","day","plan","schedule","agenda","calender"],"variants":{"outline":"ea53","filled":"fb27"}},"camera-bolt":{"name":"camera-bolt","category":"Media","tags":[],"variants":{"outline":"f833"}},"camera-cancel":{"name":"camera-cancel","category":"Media","tags":[],"variants":{"outline":"f834"}},"camera-check":{"name":"camera-check","category":"Media","tags":[],"variants":{"outline":"f835"}},"camera-code":{"name":"camera-code","category":"Media","tags":[],"variants":{"outline":"f836"}},"camera-cog":{"name":"camera-cog","category":"Media","tags":[],"variants":{"outline":"f837"}},"camera-dollar":{"name":"camera-dollar","category":"Media","tags":[],"variants":{"outline":"f838"}},"camera-down":{"name":"camera-down","category":"Media","tags":[],"variants":{"outline":"f839"}},"camera-exclamation":{"name":"camera-exclamation","category":"Media","tags":[],"variants":{"outline":"f83a"}},"camera-heart":{"name":"camera-heart","category":"Media","tags":[],"variants":{"outline":"f83b"}},"camera-minus":{"name":"camera-minus","category":"Media","tags":["video","photo","aperture"],"variants":{"outline":"ec3a"}},"camera-off":{"name":"camera-off","category":"Media","tags":["video","photo","aperture"],"variants":{"outline":"ecee"}},"camera-pause":{"name":"camera-pause","category":"Media","tags":[],"variants":{"outline":"f83c"}},"camera-pin":{"name":"camera-pin","category":"Media","tags":[],"variants":{"outline":"f83d"}},"camera-plus":{"name":"camera-plus","category":"Media","tags":["video","photo","aperture"],"variants":{"outline":"ec3b"}},"camera-question":{"name":"camera-question","category":"Media","tags":[],"variants":{"outline":"f83e"}},"camera-rotate":{"name":"camera-rotate","category":"Photography","tags":["photo","photography","picture","face","instagram","portrait","digital","smartphone","selfie"],"variants":{"outline":"ee22"}},"camera-search":{"name":"camera-search","category":"Media","tags":[],"variants":{"outline":"f83f"}},"camera-selfie":{"name":"camera-selfie","category":"Photography","tags":["photo","photography","picture","face","instagram","portrait","digital","smartphone"],"variants":{"outline":"ee23"}},"camera-share":{"name":"camera-share","category":"Media","tags":[],"variants":{"outline":"f840"}},"camera-star":{"name":"camera-star","category":"Media","tags":[],"variants":{"outline":"f841"}},"camera-up":{"name":"camera-up","category":"Media","tags":[],"variants":{"outline":"f842"}},"camera-x":{"name":"camera-x","category":"Media","tags":[],"variants":{"outline":"f843"}},"camera":{"name":"camera","category":"Media","tags":["video","photo","aperture"],"variants":{"outline":"ea54","filled":"fa37"}},"camper":{"name":"camper","category":"Vehicles","tags":[],"variants":{"outline":"fa25"}},"campfire":{"name":"campfire","category":"Map","tags":["camping","bonfire","wood","camp","burn","flame"],"variants":{"outline":"f5a7","filled":"fb28"}},"cancel":{"name":"cancel","category":"Shapes","tags":["cancel","no"],"variants":{"outline":"ff11"}},"candle":{"name":"candle","category":"","tags":["light","birthday","decoration","halloween","fire","christmas"],"variants":{"outline":"efc6","filled":"fc23"}},"candy-off":{"name":"candy-off","category":"Food","tags":["sweet","food","sugar","cane","halloween"],"variants":{"outline":"f0c5"}},"candy":{"name":"candy","category":"Food","tags":["sweet","food","sugar","cane","halloween"],"variants":{"outline":"ef0d"}},"cane":{"name":"cane","category":"Health","tags":["candy","christmas","sweet","food","decoration"],"variants":{"outline":"f50f"}},"cannabis":{"name":"cannabis","category":"Nature","tags":["marijuana","weed","drug","cbd","medical"],"variants":{"outline":"f4c1"}},"cap-projecting":{"name":"cap-projecting","category":"Design","tags":[],"variants":{"outline":"ff22"}},"cap-rounded":{"name":"cap-rounded","category":"Design","tags":[],"variants":{"outline":"ff21"}},"cap-straight":{"name":"cap-straight","category":"Design","tags":[],"variants":{"outline":"ff20"}},"capsule-horizontal":{"name":"capsule-horizontal","category":"Shapes","tags":[],"variants":{"outline":"fae2","filled":"fc25"}},"capsule":{"name":"capsule","category":"Shapes","tags":[],"variants":{"outline":"fae3","filled":"fc24"}},"capture-off":{"name":"capture-off","category":"Media","tags":["photo","photographer","sharpen"],"variants":{"outline":"f0c6"}},"capture":{"name":"capture","category":"Media","tags":["photo","photographer","sharpen"],"variants":{"outline":"ec3c","filled":"fb29"}},"car-4wd":{"name":"car-4wd","category":"","tags":[],"variants":{"outline":"fdb8"}},"car-crane":{"name":"car-crane","category":"Vehicles","tags":["transport","truck","machine","lifter"],"variants":{"outline":"ef25"}},"car-crash":{"name":"car-crash","category":"Vehicles","tags":["accident","collision","damage","insurance"],"variants":{"outline":"efa4"}},"car-fan-1":{"name":"car-fan-1","category":"","tags":[],"variants":{"outline":"fdb7"}},"car-fan-2":{"name":"car-fan-2","category":"","tags":[],"variants":{"outline":"fdb6"}},"car-fan-3":{"name":"car-fan-3","category":"","tags":[],"variants":{"outline":"fdb5"}},"car-fan-auto":{"name":"car-fan-auto","category":"","tags":[],"variants":{"outline":"fdb4"}},"car-fan":{"name":"car-fan","category":"","tags":[],"variants":{"outline":"fdb3"}},"car-garage":{"name":"car-garage","category":"","tags":["auto-shop","vehicle-repair","automobile-maintenance","parking-garage","car-storage","automotive","garage-service","car-park","vehicle-maintenance","car-repair"],"variants":{"outline":"fc77"}},"car-off":{"name":"car-off","category":"Vehicles","tags":["vehicle","drive","driver","engine","motor","journey","trip"],"variants":{"outline":"f0c7"}},"car-suv":{"name":"car-suv","category":"Vehicles","tags":["sport-utility","crossover","automobile","suv","off-road","four-wheel-drive","vehicle","transportation","auto","truck"],"variants":{"outline":"fc8b"}},"car-turbine":{"name":"car-turbine","category":"Vehicles","tags":["detail","service","mechanic","part","power"],"variants":{"outline":"f4fd"}},"car":{"name":"car","category":"Vehicles","tags":["vehicle","drive","driver","engine","motor","journey","trip"],"variants":{"outline":"ebbb"}},"carambola":{"name":"carambola","category":"Food","tags":["fruit","starfruit","carambola","tropical","exotic","five","five-pointed","star","healthy","vitamin","nutrition","diet"],"variants":{"outline":"feb9"}},"caravan":{"name":"caravan","category":"Vehicles","tags":["journey","trip","holidays","camping","trailer"],"variants":{"outline":"ec7c"}},"cardboards-off":{"name":"cardboards-off","category":"Devices","tags":["vr","virtual reality","watch","viewer","technology"],"variants":{"outline":"f0c8"}},"cardboards":{"name":"cardboards","category":"Devices","tags":["vr","virtual reality","watch","viewer","technology"],"variants":{"outline":"ed74"}},"cards":{"name":"cards","category":"Design","tags":["game","poker","credit","peyment","casino"],"variants":{"outline":"f510","filled":"fc26"}},"caret-down":{"name":"caret-down","category":"Arrows","tags":["next","bottom","dropdown","show","more"],"variants":{"outline":"eb5d","filled":"fb2a"}},"caret-left-right":{"name":"caret-left-right","category":"","tags":["arrow-horizontal","double-arrow","side-arrow","left-right","horizontal-pointer","directional","horizontal-caret","bidirectional","opposite","horizontal-arrow"],"variants":{"outline":"fc43","filled":"fd02"}},"caret-left":{"name":"caret-left","category":"Arrows","tags":["back","previous"],"variants":{"outline":"eb5e","filled":"fb2b"}},"caret-right":{"name":"caret-right","category":"Arrows","tags":["next","play","more"],"variants":{"outline":"eb5f","filled":"fb2c"}},"caret-up-down":{"name":"caret-up-down","category":"","tags":[],"variants":{"outline":"fc44","filled":"fd03"}},"caret-up":{"name":"caret-up","category":"Arrows","tags":["dropdown","less","up"],"variants":{"outline":"eb60","filled":"fb2d"}},"carousel-horizontal":{"name":"carousel-horizontal","category":"Design","tags":["app","mobile","display","preview"],"variants":{"outline":"f659","filled":"fa92"}},"carousel-vertical":{"name":"carousel-vertical","category":"Design","tags":["app","mobile","display","preview"],"variants":{"outline":"f65a","filled":"fa93"}},"carrot-off":{"name":"carrot-off","category":"Food","tags":["food","healthy","rabbit","vegetable"],"variants":{"outline":"f3d0"}},"carrot":{"name":"carrot","category":"Food","tags":["food","healthy","rabbit","vegetable"],"variants":{"outline":"f21c"}},"cash-banknote-off":{"name":"cash-banknote-off","category":"E-commerce","tags":["money","pay","bank","dollar","pound","yen","business"],"variants":{"outline":"ee24"}},"cash-banknote":{"name":"cash-banknote","category":"E-commerce","tags":["money","pay","bank","dollar","pound","yen","business"],"variants":{"outline":"ee25","filled":"fe80"}},"cash-off":{"name":"cash-off","category":"E-commerce","tags":["currency","payment","money","pay"],"variants":{"outline":"f105"}},"cash-register":{"name":"cash-register","category":"E-commerce","tags":["payment","money","pay","cashier","register","purchase","checkout","transaction"],"variants":{"outline":"fee6"}},"cash":{"name":"cash","category":"E-commerce","tags":["currency","payment","money","pay"],"variants":{"outline":"ea55"}},"cast-off":{"name":"cast-off","category":"Media","tags":["broadcast","stream","mirroring","apple","airplay","chromecast"],"variants":{"outline":"f0c9"}},"cast":{"name":"cast","category":"Media","tags":["broadcast","stream","mirroring","apple","airplay","chromecast"],"variants":{"outline":"ea56"}},"cat":{"name":"cat","category":"Animals","tags":["animal","pet","kitty","cute"],"variants":{"outline":"f65b"}},"category-2":{"name":"category-2","category":"Shapes","tags":["folder","menu","tag","game"],"variants":{"outline":"f1f5"}},"category-minus":{"name":"category-minus","category":"","tags":[],"variants":{"outline":"fd20"}},"category-plus":{"name":"category-plus","category":"","tags":[],"variants":{"outline":"fd21"}},"category":{"name":"category","category":"Shapes","tags":["folder","menu","tag","game"],"variants":{"outline":"f1f6","filled":"fb2e"}},"ce-off":{"name":"ce-off","category":"Symbols","tags":["sign","marking","administration","administrative","conformity","health","safety","environment","protection","standards","product","europe","eea","economic","area","manufacture"],"variants":{"outline":"f0ca"}},"ce":{"name":"ce","category":"Symbols","tags":["sign","marking","administration","administrative","conformity","health","safety","environment","protection","standards","product","europe","eea","economic","area","manufacture"],"variants":{"outline":"ed75"}},"cell-signal-1":{"name":"cell-signal-1","category":"Devices","tags":["mobile","phone","connetcion","wireless","network"],"variants":{"outline":"f083"}},"cell-signal-2":{"name":"cell-signal-2","category":"Devices","tags":["mobile","phone","connetcion","wireless","network"],"variants":{"outline":"f084"}},"cell-signal-3":{"name":"cell-signal-3","category":"Devices","tags":["mobile","phone","connetcion","wireless","network"],"variants":{"outline":"f085"}},"cell-signal-4":{"name":"cell-signal-4","category":"Devices","tags":["mobile","phone","connetcion","wireless","network"],"variants":{"outline":"f086"}},"cell-signal-5":{"name":"cell-signal-5","category":"Devices","tags":["mobile","phone","connetcion","wireless","network"],"variants":{"outline":"f087"}},"cell-signal-off":{"name":"cell-signal-off","category":"Devices","tags":["mobile","phone","connetcion","wireless","network"],"variants":{"outline":"f088"}},"cell":{"name":"cell","category":"","tags":["biology","molecule","chemistry","human","laboratory"],"variants":{"outline":"f05f"}},"certificate-2-off":{"name":"certificate-2-off","category":"Document","tags":["award","license","document","achievement","course","complete"],"variants":{"outline":"f0cb"}},"certificate-2":{"name":"certificate-2","category":"Document","tags":["award","license","document","achievement","course","complete"],"variants":{"outline":"f073"}},"certificate-off":{"name":"certificate-off","category":"Document","tags":["document","official","attest","signature","birth","death","gift","authenticity","seal","course","complete","qualification"],"variants":{"outline":"f0cc"}},"certificate":{"name":"certificate","category":"Document","tags":["document","official","attest","signature","birth","death","gift","authenticity","seal","course","complete","qualification"],"variants":{"outline":"ed76"}},"chair-director":{"name":"chair-director","category":"","tags":["film","seat","furniture","interior"],"variants":{"outline":"f2d5"}},"chalkboard-off":{"name":"chalkboard-off","category":"Document","tags":["school","classroom","education","learn"],"variants":{"outline":"f3d1"}},"chalkboard":{"name":"chalkboard","category":"Document","tags":["school","classroom","education","learn"],"variants":{"outline":"f34d"}},"charging-pile":{"name":"charging-pile","category":"Vehicles","tags":["electric","electricity","hybrid","tesla","station","electronic","point"],"variants":{"outline":"ee26"}},"chart-arcs-3":{"name":"chart-arcs-3","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"ee27"}},"chart-arcs":{"name":"chart-arcs","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"ee28"}},"chart-area-line":{"name":"chart-area-line","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"ea57","filled":"f66c"}},"chart-area":{"name":"chart-area","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"ea58","filled":"f66b"}},"chart-arrows-vertical":{"name":"chart-arrows-vertical","category":"Charts","tags":["statistics","data","value","variable","scale","statistical","level","increase","decrease"],"variants":{"outline":"ee29"}},"chart-arrows":{"name":"chart-arrows","category":"Charts","tags":["statistics","data","value","variable","scale","statistical","level","increase","decrease"],"variants":{"outline":"ee2a"}},"chart-bar-off":{"name":"chart-bar-off","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"f3d2"}},"chart-bar-popular":{"name":"chart-bar-popular","category":"","tags":[],"variants":{"outline":"fef7"}},"chart-bar":{"name":"chart-bar","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"ea59"}},"chart-bubble":{"name":"chart-bubble","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"ec75","filled":"f66d"}},"chart-candle":{"name":"chart-candle","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"ea5a","filled":"f66e"}},"chart-circles":{"name":"chart-circles","category":"Charts","tags":["statistics","analysis","analyse","graph"],"variants":{"outline":"ee2b"}},"chart-cohort":{"name":"chart-cohort","category":"","tags":[],"variants":{"outline":"fef6"}},"chart-donut-2":{"name":"chart-donut-2","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"ee2c"}},"chart-donut-3":{"name":"chart-donut-3","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"ee2d"}},"chart-donut-4":{"name":"chart-donut-4","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"ee2e"}},"chart-donut":{"name":"chart-donut","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"ea5b","filled":"f66f"}},"chart-dots-2":{"name":"chart-dots-2","category":"Charts","tags":["graph","diagram","analyticks","statistics","data","value","variable","scale","statistical"],"variants":{"outline":"f097"}},"chart-dots-3":{"name":"chart-dots-3","category":"Charts","tags":["graph","diagram","analyticks","statistics","data","value","variable","scale","statistical"],"variants":{"outline":"f098"}},"chart-dots":{"name":"chart-dots","category":"Charts","tags":["statistics","data","value","variable","scale","statistical"],"variants":{"outline":"ee2f","filled":"fd04"}},"chart-funnel":{"name":"chart-funnel","category":"","tags":[],"variants":{"outline":"fef5"}},"chart-grid-dots":{"name":"chart-grid-dots","category":"Charts","tags":["graph","diagram","analytics","statistics","data"],"variants":{"outline":"f4c2","filled":"fd05"}},"chart-histogram":{"name":"chart-histogram","category":"Charts","tags":["graph","diagram","curves","analytics"],"variants":{"outline":"f65c"}},"chart-infographic":{"name":"chart-infographic","category":"Charts","tags":["statistics","data","value","variable","scale","statistical","bar","information","report"],"variants":{"outline":"ee30"}},"chart-line":{"name":"chart-line","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"ea5c"}},"chart-pie-2":{"name":"chart-pie-2","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"ee31"}},"chart-pie-3":{"name":"chart-pie-3","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"ee32"}},"chart-pie-4":{"name":"chart-pie-4","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"ee33"}},"chart-pie-off":{"name":"chart-pie-off","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"f3d3"}},"chart-pie":{"name":"chart-pie","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"ea5d","filled":"f670"}},"chart-ppf":{"name":"chart-ppf","category":"Charts","tags":["graph","diagram","curves"],"variants":{"outline":"f618"}},"chart-radar":{"name":"chart-radar","category":"Charts","tags":["statistics","data","value","two","dimensions","variable","report","points"],"variants":{"outline":"ed77"}},"chart-sankey":{"name":"chart-sankey","category":"Charts","tags":["graph","diagram","curves","analytics"],"variants":{"outline":"f619"}},"chart-scatter-3d":{"name":"chart-scatter-3d","category":"","tags":[],"variants":{"outline":"fd92"}},"chart-scatter":{"name":"chart-scatter","category":"","tags":[],"variants":{"outline":"fd93"}},"chart-treemap":{"name":"chart-treemap","category":"Charts","tags":["diagram","analytics","buisness","data"],"variants":{"outline":"f381"}},"check":{"name":"check","category":"System","tags":["tick","yes","confirm"],"variants":{"outline":"ea5e"}},"checkbox":{"name":"checkbox","category":"System","tags":["survey","confirm","tick","yes","to-do"],"variants":{"outline":"eba6"}},"checklist":{"name":"checklist","category":"","tags":["task","delivery","clipboard","document","plan"],"variants":{"outline":"f074"}},"checks":{"name":"checks","category":"System","tags":["tick","yes","confirm"],"variants":{"outline":"ebaa"}},"checkup-list":{"name":"checkup-list","category":"Health","tags":["car","hospital","health","report"],"variants":{"outline":"ef5a"}},"cheese":{"name":"cheese","category":"Food","tags":["food","mouse","cooking","pizza","sandwiches","product","edam","gouda"],"variants":{"outline":"ef26"}},"chef-hat-off":{"name":"chef-hat-off","category":"Food","tags":["cooking","kitchen","restaurant","food","job"],"variants":{"outline":"f3d4"}},"chef-hat":{"name":"chef-hat","category":"Food","tags":["cooking","kitchen","restaurant","food","job"],"variants":{"outline":"f21d"}},"cherry":{"name":"cherry","category":"Nature","tags":["fruit","food","sweet","healthy"],"variants":{"outline":"f511","filled":"f728"}},"chess-bishop":{"name":"chess-bishop","category":"Sport","tags":["game","figure","strategy","pawn"],"variants":{"outline":"f56b","filled":"f729"}},"chess-king":{"name":"chess-king","category":"Sport","tags":["game","figure","strategy","pawn"],"variants":{"outline":"f56c","filled":"f72b"}},"chess-knight":{"name":"chess-knight","category":"Sport","tags":["game","figure","strategy","pawn"],"variants":{"outline":"f56d","filled":"f72c"}},"chess-queen":{"name":"chess-queen","category":"Sport","tags":["game","figure","strategy","pawn"],"variants":{"outline":"f56e","filled":"f72d"}},"chess-rook":{"name":"chess-rook","category":"Sport","tags":["game","figure","strategy","pawn"],"variants":{"outline":"f56f","filled":"f72e"}},"chess":{"name":"chess","category":"Sport","tags":["game","strategy","pawn","figure"],"variants":{"outline":"f382","filled":"f72a"}},"chevron-compact-down":{"name":"chevron-compact-down","category":"Arrows","tags":[],"variants":{"outline":"faf0"}},"chevron-compact-left":{"name":"chevron-compact-left","category":"Arrows","tags":[],"variants":{"outline":"faf1"}},"chevron-compact-right":{"name":"chevron-compact-right","category":"Arrows","tags":[],"variants":{"outline":"faf2"}},"chevron-compact-up":{"name":"chevron-compact-up","category":"Arrows","tags":[],"variants":{"outline":"faf3"}},"chevron-down-left":{"name":"chevron-down-left","category":"Arrows","tags":["move","aside","bottom"],"variants":{"outline":"ed09"}},"chevron-down-right":{"name":"chevron-down-right","category":"Arrows","tags":["move","aside","bottom"],"variants":{"outline":"ed0a"}},"chevron-down":{"name":"chevron-down","category":"Arrows","tags":["move","next","swipe","bottom"],"variants":{"outline":"ea5f"}},"chevron-left-pipe":{"name":"chevron-left-pipe","category":"Arrows","tags":[],"variants":{"outline":"fae4"}},"chevron-left":{"name":"chevron-left","category":"Arrows","tags":["move","previous","back"],"variants":{"outline":"ea60"}},"chevron-right-pipe":{"name":"chevron-right-pipe","category":"Arrows","tags":[],"variants":{"outline":"fae5"}},"chevron-right":{"name":"chevron-right","category":"Arrows","tags":["move","checklist","next"],"variants":{"outline":"ea61"}},"chevron-up-left":{"name":"chevron-up-left","category":"Arrows","tags":["move","aside","top"],"variants":{"outline":"ed0b"}},"chevron-up-right":{"name":"chevron-up-right","category":"Arrows","tags":["move","aside","top"],"variants":{"outline":"ed0c"}},"chevron-up":{"name":"chevron-up","category":"Arrows","tags":["move","top"],"variants":{"outline":"ea62"}},"chevrons-down-left":{"name":"chevrons-down-left","category":"Arrows","tags":["move","aside","bottom"],"variants":{"outline":"ed0d"}},"chevrons-down-right":{"name":"chevrons-down-right","category":"Arrows","tags":["move","aside","bottom"],"variants":{"outline":"ed0e"}},"chevrons-down":{"name":"chevrons-down","category":"Arrows","tags":["move","bottom"],"variants":{"outline":"ea63"}},"chevrons-left":{"name":"chevrons-left","category":"Arrows","tags":["move","back","roll"],"variants":{"outline":"ea64"}},"chevrons-right":{"name":"chevrons-right","category":"Arrows","tags":["move","next","checklist"],"variants":{"outline":"ea65"}},"chevrons-up-left":{"name":"chevrons-up-left","category":"Arrows","tags":["move","aside","top"],"variants":{"outline":"ed0f"}},"chevrons-up-right":{"name":"chevrons-up-right","category":"Arrows","tags":["move","aside","top"],"variants":{"outline":"ed10"}},"chevrons-up":{"name":"chevrons-up","category":"Arrows","tags":["move","top"],"variants":{"outline":"ea66"}},"chisel":{"name":"chisel","category":"","tags":["tool","equipment","work","wood"],"variants":{"outline":"f383"}},"christmas-ball":{"name":"christmas-ball","category":"","tags":["holiday-ball","festive","ornament","decoration","christmas","bauble","celebration","seasonal","holiday","decorative"],"variants":{"outline":"fd31"}},"christmas-tree-off":{"name":"christmas-tree-off","category":"Nature","tags":["holidays","pine","decorate","decoration","gift","present","carol","evergreen","spruce","fir","winter"],"variants":{"outline":"f3d5"}},"christmas-tree":{"name":"christmas-tree","category":"Nature","tags":["holidays","pine","decorate","decoration","gift","present","carol","evergreen","spruce","fir","winter"],"variants":{"outline":"ed78"}},"circle-arrow-down-left":{"name":"circle-arrow-down-left","category":"Arrows","tags":["shape","direction","west","bottom","south"],"variants":{"outline":"f6f6","filled":"f6f5"}},"circle-arrow-down-right":{"name":"circle-arrow-down-right","category":"Arrows","tags":["shape","direction","bottom","south","east"],"variants":{"outline":"f6f8","filled":"f6f7"}},"circle-arrow-down":{"name":"circle-arrow-down","category":"Arrows","tags":["shape","direction","bottom","south"],"variants":{"outline":"f6f9","filled":"f6f4"}},"circle-arrow-left":{"name":"circle-arrow-left","category":"Arrows","tags":["shape","direction","west"],"variants":{"outline":"f6fb","filled":"f6fa"}},"circle-arrow-right":{"name":"circle-arrow-right","category":"Arrows","tags":["shape","direction","east"],"variants":{"outline":"f6fd","filled":"f6fc"}},"circle-arrow-up-left":{"name":"circle-arrow-up-left","category":"Arrows","tags":["shape","direction","north","top","west"],"variants":{"outline":"f700","filled":"f6ff"}},"circle-arrow-up-right":{"name":"circle-arrow-up-right","category":"Arrows","tags":["shape","direction","north","top","east"],"variants":{"outline":"f702","filled":"f701"}},"circle-arrow-up":{"name":"circle-arrow-up","category":"Arrows","tags":["shape","direction","north","top"],"variants":{"outline":"f703","filled":"f6fe"}},"circle-caret-down":{"name":"circle-caret-down","category":"Arrows","tags":["direction","shape","south","bottom"],"variants":{"outline":"f4a9"}},"circle-caret-left":{"name":"circle-caret-left","category":"Arrows","tags":["direction","shape","west"],"variants":{"outline":"f4aa"}},"circle-caret-right":{"name":"circle-caret-right","category":"Arrows","tags":["direction","shape","east"],"variants":{"outline":"f4ab"}},"circle-caret-up":{"name":"circle-caret-up","category":"Arrows","tags":["direction","shape","north","top"],"variants":{"outline":"f4ac"}},"circle-check":{"name":"circle-check","category":"Shapes","tags":["accept","yes","tick","done"],"variants":{"outline":"ea67","filled":"f704"}},"circle-chevron-down":{"name":"circle-chevron-down","category":"Arrows","tags":["shape","south","bottom","direction"],"variants":{"outline":"f622"}},"circle-chevron-left":{"name":"circle-chevron-left","category":"Arrows","tags":["shape","direction","west"],"variants":{"outline":"f623"}},"circle-chevron-right":{"name":"circle-chevron-right","category":"Arrows","tags":["shape","direction","east"],"variants":{"outline":"f624"}},"circle-chevron-up":{"name":"circle-chevron-up","category":"Arrows","tags":["shape","direction","north","top"],"variants":{"outline":"f625"}},"circle-chevrons-down":{"name":"circle-chevrons-down","category":"Arrows","tags":["shape","south","bottom","direction"],"variants":{"outline":"f642"}},"circle-chevrons-left":{"name":"circle-chevrons-left","category":"Arrows","tags":["shape","direction","west"],"variants":{"outline":"f643"}},"circle-chevrons-right":{"name":"circle-chevrons-right","category":"Arrows","tags":["shape","direction","east"],"variants":{"outline":"f644"}},"circle-chevrons-up":{"name":"circle-chevrons-up","category":"Arrows","tags":["shape","direction","north","top"],"variants":{"outline":"f645"}},"circle-dashed-check":{"name":"circle-dashed-check","category":"Shapes","tags":["check","success","done","complete","tick","correct","confirm","approved","verified","valid","yes","circle","dashed"],"variants":{"outline":"feb8"}},"circle-dashed-letter-a":{"name":"circle-dashed-letter-a","category":"Letters","tags":[],"variants":{"outline":"ff9a"}},"circle-dashed-letter-b":{"name":"circle-dashed-letter-b","category":"Letters","tags":[],"variants":{"outline":"ff99"}},"circle-dashed-letter-c":{"name":"circle-dashed-letter-c","category":"Letters","tags":[],"variants":{"outline":"ff98"}},"circle-dashed-letter-d":{"name":"circle-dashed-letter-d","category":"Letters","tags":[],"variants":{"outline":"ff97"}},"circle-dashed-letter-e":{"name":"circle-dashed-letter-e","category":"Letters","tags":[],"variants":{"outline":"ff96"}},"circle-dashed-letter-f":{"name":"circle-dashed-letter-f","category":"Letters","tags":[],"variants":{"outline":"ff95"}},"circle-dashed-letter-g":{"name":"circle-dashed-letter-g","category":"Letters","tags":[],"variants":{"outline":"ff94"}},"circle-dashed-letter-h":{"name":"circle-dashed-letter-h","category":"Letters","tags":[],"variants":{"outline":"ff93"}},"circle-dashed-letter-i":{"name":"circle-dashed-letter-i","category":"Letters","tags":[],"variants":{"outline":"ff92"}},"circle-dashed-letter-j":{"name":"circle-dashed-letter-j","category":"Letters","tags":[],"variants":{"outline":"ff91"}},"circle-dashed-letter-k":{"name":"circle-dashed-letter-k","category":"Letters","tags":[],"variants":{"outline":"ff90"}},"circle-dashed-letter-l":{"name":"circle-dashed-letter-l","category":"Letters","tags":[],"variants":{"outline":"ff8f"}},"circle-dashed-letter-letter-v":{"name":"circle-dashed-letter-letter-v","category":"Letters","tags":[],"variants":{"outline":"ff8e"}},"circle-dashed-letter-m":{"name":"circle-dashed-letter-m","category":"Letters","tags":[],"variants":{"outline":"ff8d"}},"circle-dashed-letter-n":{"name":"circle-dashed-letter-n","category":"Letters","tags":[],"variants":{"outline":"ff8c"}},"circle-dashed-letter-o":{"name":"circle-dashed-letter-o","category":"Letters","tags":[],"variants":{"outline":"ff8b"}},"circle-dashed-letter-p":{"name":"circle-dashed-letter-p","category":"Letters","tags":[],"variants":{"outline":"ff8a"}},"circle-dashed-letter-q":{"name":"circle-dashed-letter-q","category":"Letters","tags":[],"variants":{"outline":"ff89"}},"circle-dashed-letter-r":{"name":"circle-dashed-letter-r","category":"Letters","tags":[],"variants":{"outline":"ff88"}},"circle-dashed-letter-s":{"name":"circle-dashed-letter-s","category":"Letters","tags":[],"variants":{"outline":"ff87"}},"circle-dashed-letter-t":{"name":"circle-dashed-letter-t","category":"Letters","tags":[],"variants":{"outline":"ff86"}},"circle-dashed-letter-u":{"name":"circle-dashed-letter-u","category":"Letters","tags":[],"variants":{"outline":"ff85"}},"circle-dashed-letter-v":{"name":"circle-dashed-letter-v","category":"Letters","tags":[],"variants":{"outline":"ff84"}},"circle-dashed-letter-w":{"name":"circle-dashed-letter-w","category":"Letters","tags":[],"variants":{"outline":"ff83"}},"circle-dashed-letter-x":{"name":"circle-dashed-letter-x","category":"Letters","tags":[],"variants":{"outline":"ff82"}},"circle-dashed-letter-y":{"name":"circle-dashed-letter-y","category":"Letters","tags":[],"variants":{"outline":"ff81"}},"circle-dashed-letter-z":{"name":"circle-dashed-letter-z","category":"Letters","tags":[],"variants":{"outline":"ff80"}},"circle-dashed-minus":{"name":"circle-dashed-minus","category":"Shapes","tags":[],"variants":{"outline":"feb7"}},"circle-dashed-number-0":{"name":"circle-dashed-number-0","category":"Numbers","tags":[],"variants":{"outline":"fc6b"}},"circle-dashed-number-1":{"name":"circle-dashed-number-1","category":"Numbers","tags":[],"variants":{"outline":"fc6c"}},"circle-dashed-number-2":{"name":"circle-dashed-number-2","category":"Numbers","tags":[],"variants":{"outline":"fc6d"}},"circle-dashed-number-3":{"name":"circle-dashed-number-3","category":"Numbers","tags":[],"variants":{"outline":"fc6e"}},"circle-dashed-number-4":{"name":"circle-dashed-number-4","category":"Numbers","tags":[],"variants":{"outline":"fc6f"}},"circle-dashed-number-5":{"name":"circle-dashed-number-5","category":"Numbers","tags":[],"variants":{"outline":"fc70"}},"circle-dashed-number-6":{"name":"circle-dashed-number-6","category":"Numbers","tags":[],"variants":{"outline":"fc71"}},"circle-dashed-number-7":{"name":"circle-dashed-number-7","category":"Numbers","tags":[],"variants":{"outline":"fc72"}},"circle-dashed-number-8":{"name":"circle-dashed-number-8","category":"Numbers","tags":[],"variants":{"outline":"fc73"}},"circle-dashed-number-9":{"name":"circle-dashed-number-9","category":"Numbers","tags":[],"variants":{"outline":"fc74"}},"circle-dashed-percentage":{"name":"circle-dashed-percentage","category":"","tags":[],"variants":{"outline":"fd7a"}},"circle-dashed-plus":{"name":"circle-dashed-plus","category":"Shapes","tags":[],"variants":{"outline":"feb6"}},"circle-dashed-x":{"name":"circle-dashed-x","category":"Shapes","tags":[],"variants":{"outline":"fc75"}},"circle-dashed":{"name":"circle-dashed","category":"Shapes","tags":["shape","line","check"],"variants":{"outline":"ed27"}},"circle-dot":{"name":"circle-dot","category":"Shapes","tags":["crosshair","shape","geometry"],"variants":{"outline":"efb1","filled":"f705"}},"circle-dotted-letter-a":{"name":"circle-dotted-letter-a","category":"Letters","tags":[],"variants":{"outline":"ff7f"}},"circle-dotted-letter-b":{"name":"circle-dotted-letter-b","category":"Letters","tags":[],"variants":{"outline":"ff7e"}},"circle-dotted-letter-c":{"name":"circle-dotted-letter-c","category":"Letters","tags":[],"variants":{"outline":"ff7d"}},"circle-dotted-letter-d":{"name":"circle-dotted-letter-d","category":"Letters","tags":[],"variants":{"outline":"ff7c"}},"circle-dotted-letter-e":{"name":"circle-dotted-letter-e","category":"Letters","tags":[],"variants":{"outline":"ff7b"}},"circle-dotted-letter-f":{"name":"circle-dotted-letter-f","category":"Letters","tags":[],"variants":{"outline":"ff7a"}},"circle-dotted-letter-g":{"name":"circle-dotted-letter-g","category":"Letters","tags":[],"variants":{"outline":"ff79"}},"circle-dotted-letter-h":{"name":"circle-dotted-letter-h","category":"Letters","tags":[],"variants":{"outline":"ff78"}},"circle-dotted-letter-i":{"name":"circle-dotted-letter-i","category":"Letters","tags":[],"variants":{"outline":"ff77"}},"circle-dotted-letter-j":{"name":"circle-dotted-letter-j","category":"Letters","tags":[],"variants":{"outline":"ff76"}},"circle-dotted-letter-k":{"name":"circle-dotted-letter-k","category":"Letters","tags":[],"variants":{"outline":"ff75"}},"circle-dotted-letter-l":{"name":"circle-dotted-letter-l","category":"Letters","tags":[],"variants":{"outline":"ff74"}},"circle-dotted-letter-m":{"name":"circle-dotted-letter-m","category":"Letters","tags":[],"variants":{"outline":"ff73"}},"circle-dotted-letter-n":{"name":"circle-dotted-letter-n","category":"Letters","tags":[],"variants":{"outline":"ff72"}},"circle-dotted-letter-o":{"name":"circle-dotted-letter-o","category":"Letters","tags":[],"variants":{"outline":"ff71"}},"circle-dotted-letter-p":{"name":"circle-dotted-letter-p","category":"Letters","tags":[],"variants":{"outline":"ff70"}},"circle-dotted-letter-q":{"name":"circle-dotted-letter-q","category":"Letters","tags":[],"variants":{"outline":"ff6f"}},"circle-dotted-letter-r":{"name":"circle-dotted-letter-r","category":"Letters","tags":[],"variants":{"outline":"ff6e"}},"circle-dotted-letter-s":{"name":"circle-dotted-letter-s","category":"Letters","tags":[],"variants":{"outline":"ff6d"}},"circle-dotted-letter-t":{"name":"circle-dotted-letter-t","category":"Letters","tags":[],"variants":{"outline":"ff6c"}},"circle-dotted-letter-u":{"name":"circle-dotted-letter-u","category":"Letters","tags":[],"variants":{"outline":"ff6b"}},"circle-dotted-letter-v":{"name":"circle-dotted-letter-v","category":"Letters","tags":[],"variants":{"outline":"ff6a"}},"circle-dotted-letter-w":{"name":"circle-dotted-letter-w","category":"Letters","tags":[],"variants":{"outline":"ff69"}},"circle-dotted-letter-x":{"name":"circle-dotted-letter-x","category":"Letters","tags":[],"variants":{"outline":"ff68"}},"circle-dotted-letter-y":{"name":"circle-dotted-letter-y","category":"Letters","tags":[],"variants":{"outline":"ff67"}},"circle-dotted-letter-z":{"name":"circle-dotted-letter-z","category":"Letters","tags":[],"variants":{"outline":"ff66"}},"circle-dotted":{"name":"circle-dotted","category":"Shapes","tags":["shape","point","check"],"variants":{"outline":"ed28"}},"circle-half-2":{"name":"circle-half-2","category":"Shapes","tags":["shape","split","slash"],"variants":{"outline":"eff3"}},"circle-half-vertical":{"name":"circle-half-vertical","category":"Shapes","tags":["shape","split","slash"],"variants":{"outline":"ee3e"}},"circle-half":{"name":"circle-half","category":"Shapes","tags":["shape","split","slash"],"variants":{"outline":"ee3f"}},"circle-key":{"name":"circle-key","category":"","tags":["shape","lock","door","acsses"],"variants":{"outline":"f633","filled":"f706"}},"circle-letter-a":{"name":"circle-letter-a","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f441","filled":"fe7f"}},"circle-letter-b":{"name":"circle-letter-b","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f442","filled":"fe7e"}},"circle-letter-c":{"name":"circle-letter-c","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f443","filled":"fe7d"}},"circle-letter-d":{"name":"circle-letter-d","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f444","filled":"fe7c"}},"circle-letter-e":{"name":"circle-letter-e","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f445","filled":"fe7b"}},"circle-letter-f":{"name":"circle-letter-f","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f446","filled":"fe7a"}},"circle-letter-g":{"name":"circle-letter-g","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f447","filled":"fe79"}},"circle-letter-h":{"name":"circle-letter-h","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f448","filled":"fe78"}},"circle-letter-i":{"name":"circle-letter-i","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f449","filled":"fe77"}},"circle-letter-j":{"name":"circle-letter-j","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f44a","filled":"fe76"}},"circle-letter-k":{"name":"circle-letter-k","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f44b","filled":"fe75"}},"circle-letter-l":{"name":"circle-letter-l","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f44c","filled":"fe74"}},"circle-letter-m":{"name":"circle-letter-m","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f44d","filled":"fe73"}},"circle-letter-n":{"name":"circle-letter-n","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f44e","filled":"fe72"}},"circle-letter-o":{"name":"circle-letter-o","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f44f","filled":"fe71"}},"circle-letter-p":{"name":"circle-letter-p","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f450","filled":"fe70"}},"circle-letter-q":{"name":"circle-letter-q","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f451","filled":"fe6f"}},"circle-letter-r":{"name":"circle-letter-r","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f452","filled":"fe6e"}},"circle-letter-s":{"name":"circle-letter-s","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f453","filled":"fe6d"}},"circle-letter-t":{"name":"circle-letter-t","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f454","filled":"fe6c"}},"circle-letter-u":{"name":"circle-letter-u","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f455","filled":"fe6b"}},"circle-letter-v":{"name":"circle-letter-v","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f4ad","filled":"fe6a"}},"circle-letter-w":{"name":"circle-letter-w","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f456","filled":"fe69"}},"circle-letter-x":{"name":"circle-letter-x","category":"Letters","tags":["cancel","no"],"variants":{"outline":"f4ae","filled":"fe68"}},"circle-letter-y":{"name":"circle-letter-y","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f457","filled":"fe67"}},"circle-letter-z":{"name":"circle-letter-z","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f458","filled":"fe66"}},"circle-minus-2":{"name":"circle-minus-2","category":"Shapes","tags":[],"variants":{"outline":"fc8c"}},"circle-minus":{"name":"circle-minus","category":"Shapes","tags":["remove","delete"],"variants":{"outline":"ea68"}},"circle-number-0":{"name":"circle-number-0","category":"Numbers","tags":["zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"ee34","filled":"f72f"}},"circle-number-1":{"name":"circle-number-1","category":"Numbers","tags":["one","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"ee35","filled":"f730"}},"circle-number-2":{"name":"circle-number-2","category":"Numbers","tags":["two","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"ee36","filled":"f731"}},"circle-number-3":{"name":"circle-number-3","category":"Numbers","tags":["three","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"ee37","filled":"f732"}},"circle-number-4":{"name":"circle-number-4","category":"Numbers","tags":["four","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"ee38","filled":"f733"}},"circle-number-5":{"name":"circle-number-5","category":"Numbers","tags":["five","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"ee39","filled":"f734"}},"circle-number-6":{"name":"circle-number-6","category":"Numbers","tags":["six","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"ee3a","filled":"f735"}},"circle-number-7":{"name":"circle-number-7","category":"Numbers","tags":["seven","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"ee3b","filled":"f736"}},"circle-number-8":{"name":"circle-number-8","category":"Numbers","tags":["eight","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"ee3c","filled":"f737"}},"circle-number-9":{"name":"circle-number-9","category":"Numbers","tags":["nine","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"ee3d","filled":"f738"}},"circle-off":{"name":"circle-off","category":"Shapes","tags":["off","zero"],"variants":{"outline":"ee40"}},"circle-percentage":{"name":"circle-percentage","category":"","tags":[],"variants":{"outline":"fd7b","filled":"fed5"}},"circle-plus-2":{"name":"circle-plus-2","category":"Shapes","tags":[],"variants":{"outline":"fc8d"}},"circle-plus":{"name":"circle-plus","category":"Shapes","tags":["add","create","new"],"variants":{"outline":"ea69","filled":"fef9"}},"circle-rectangle-off":{"name":"circle-rectangle-off","category":"Shapes","tags":["shape","geometric","geometry","figure"],"variants":{"outline":"f0cd"}},"circle-rectangle":{"name":"circle-rectangle","category":"Shapes","tags":["shape","geometric","geometry","figure"],"variants":{"outline":"f010","filled":"ff63"}},"circle-square":{"name":"circle-square","category":"Shapes","tags":["shape","spot","math"],"variants":{"outline":"ece4"}},"circle-triangle":{"name":"circle-triangle","category":"","tags":["arrow","down","shape","geometry"],"variants":{"outline":"f011"}},"circle-x":{"name":"circle-x","category":"Shapes","tags":["cancel","no"],"variants":{"outline":"ea6a","filled":"f739"}},"circle":{"name":"circle","category":"Shapes","tags":["off","zero"],"variants":{"outline":"ea6b","filled":"f671"}},"circles-relation":{"name":"circles-relation","category":"","tags":["connection","link","shape","hyperlink"],"variants":{"outline":"f4c3"}},"circles":{"name":"circles","category":"Shapes","tags":["shape","marbles","balls","juggle","spots"],"variants":{"outline":"ece5","filled":"f672"}},"circuit-ammeter":{"name":"circuit-ammeter","category":"Electrical","tags":["diagram","electric","electricity"],"variants":{"outline":"f271"}},"circuit-battery":{"name":"circuit-battery","category":"Electrical","tags":["diagram","electric","electricity","power"],"variants":{"outline":"f272"}},"circuit-bulb":{"name":"circuit-bulb","category":"Electrical","tags":["lamp","light","electric","electrical"],"variants":{"outline":"f273"}},"circuit-capacitor-polarized":{"name":"circuit-capacitor-polarized","category":"Electrical","tags":["diagram","electric","electrity"],"variants":{"outline":"f274"}},"circuit-capacitor":{"name":"circuit-capacitor","category":"Electrical","tags":["diagram","electric","electrity"],"variants":{"outline":"f275"}},"circuit-cell-plus":{"name":"circuit-cell-plus","category":"Electrical","tags":["electirc","diagram","electrity","battery","power"],"variants":{"outline":"f276"}},"circuit-cell":{"name":"circuit-cell","category":"Electrical","tags":["electirc","diagram","electrity","battery","power"],"variants":{"outline":"f277"}},"circuit-changeover":{"name":"circuit-changeover","category":"Electrical","tags":["electirc","diagram","electrity","change"],"variants":{"outline":"f278"}},"circuit-diode-zener":{"name":"circuit-diode-zener","category":"Electrical","tags":["electirc","electrity","diagram","digital"],"variants":{"outline":"f279"}},"circuit-diode":{"name":"circuit-diode","category":"Electrical","tags":["diagram","electic","electronic","led"],"variants":{"outline":"f27a"}},"circuit-ground-digital":{"name":"circuit-ground-digital","category":"Electrical","tags":["electirc","electrity","diagram"],"variants":{"outline":"f27b"}},"circuit-ground":{"name":"circuit-ground","category":"Electrical","tags":["electirc","electrity","diagram"],"variants":{"outline":"f27c"}},"circuit-inductor":{"name":"circuit-inductor","category":"Electrical","tags":["electirc","electrity","diagram","coil"],"variants":{"outline":"f27d"}},"circuit-motor":{"name":"circuit-motor","category":"Electrical","tags":["circuity","diagram","electric","electricy"],"variants":{"outline":"f27e"}},"circuit-pushbutton":{"name":"circuit-pushbutton","category":"Electrical","tags":["diagram","electric","electricy","open"],"variants":{"outline":"f27f"}},"circuit-resistor":{"name":"circuit-resistor","category":"Electrical","tags":["diagram","electric","electricy","nema"],"variants":{"outline":"f280"}},"circuit-switch-closed":{"name":"circuit-switch-closed","category":"Electrical","tags":["diagram","electric","electricy","locked"],"variants":{"outline":"f281"}},"circuit-switch-open":{"name":"circuit-switch-open","category":"Electrical","tags":["diagram","electric","electricy","opened"],"variants":{"outline":"f282"}},"circuit-voltmeter":{"name":"circuit-voltmeter","category":"Electrical","tags":["diagram","electric","electricy","component"],"variants":{"outline":"f283"}},"clear-all":{"name":"clear-all","category":"","tags":["app","clear","all","emails","phone"],"variants":{"outline":"ee41"}},"clear-formatting":{"name":"clear-formatting","category":"Text","tags":["text","return","default"],"variants":{"outline":"ebe5"}},"click":{"name":"click","category":"","tags":["select","cursor"],"variants":{"outline":"ebbc"}},"cliff-jumping":{"name":"cliff-jumping","category":"Sport","tags":["rock","fall","movement","motion","trampoline","height"],"variants":{"outline":"fefc"}},"clipboard-check":{"name":"clipboard-check","category":"Document","tags":["copy","yes"],"variants":{"outline":"ea6c"}},"clipboard-copy":{"name":"clipboard-copy","category":"Document","tags":["duplicate","paste","document","task"],"variants":{"outline":"f299"}},"clipboard-data":{"name":"clipboard-data","category":"Document","tags":["document","report","file","list","analytics"],"variants":{"outline":"f563"}},"clipboard-heart":{"name":"clipboard-heart","category":"Document","tags":["medical","health","healthcare","medicine","hospital"],"variants":{"outline":"f34e"}},"clipboard-list":{"name":"clipboard-list","category":"Document","tags":["copy","items"],"variants":{"outline":"ea6d"}},"clipboard-off":{"name":"clipboard-off","category":"Document","tags":["copy","clipboard","paste","document","file","paper","note","text","page","sheet","blank"],"variants":{"outline":"f0ce"}},"clipboard-plus":{"name":"clipboard-plus","category":"Document","tags":["document","file","add","new"],"variants":{"outline":"efb2"}},"clipboard-smile":{"name":"clipboard-smile","category":"","tags":[],"variants":{"outline":"fd9a"}},"clipboard-text":{"name":"clipboard-text","category":"Document","tags":["document","file","report","page","note"],"variants":{"outline":"f089"}},"clipboard-typography":{"name":"clipboard-typography","category":"Document","tags":["document","list","raport","paper"],"variants":{"outline":"f34f"}},"clipboard-x":{"name":"clipboard-x","category":"Document","tags":["copy","no"],"variants":{"outline":"ea6e"}},"clipboard":{"name":"clipboard","category":"Document","tags":["copy","clipboard","paste","document","file","paper","note","text","page","sheet","blank"],"variants":{"outline":"ea6f"}},"clock-12":{"name":"clock-12","category":"System","tags":["time","hour","watch","timepiece","twelve-hour","am/pm","noon","midday","daytime","clock-face"],"variants":{"outline":"fc56"}},"clock-2":{"name":"clock-2","category":"System","tags":["time","watch","timer","alarm","date","hour","schedule"],"variants":{"outline":"f099"}},"clock-24":{"name":"clock-24","category":"System","tags":["time","hour","watch","timepiece","twenty-four-hour","24-hour","military","clock-face","round-clock","day-night"],"variants":{"outline":"fc57"}},"clock-bitcoin":{"name":"clock-bitcoin","category":"","tags":[],"variants":{"outline":"ff3f"}},"clock-bolt":{"name":"clock-bolt","category":"System","tags":[],"variants":{"outline":"f844"}},"clock-cancel":{"name":"clock-cancel","category":"System","tags":["time","delete","remove","close","alarm"],"variants":{"outline":"f546"}},"clock-check":{"name":"clock-check","category":"System","tags":[],"variants":{"outline":"f7c1"}},"clock-code":{"name":"clock-code","category":"System","tags":[],"variants":{"outline":"f845"}},"clock-cog":{"name":"clock-cog","category":"System","tags":[],"variants":{"outline":"f7c2"}},"clock-dollar":{"name":"clock-dollar","category":"System","tags":[],"variants":{"outline":"f846"}},"clock-down":{"name":"clock-down","category":"System","tags":[],"variants":{"outline":"f7c3"}},"clock-edit":{"name":"clock-edit","category":"System","tags":["time","edit","create","alarm"],"variants":{"outline":"f547"}},"clock-exclamation":{"name":"clock-exclamation","category":"System","tags":[],"variants":{"outline":"f847"}},"clock-heart":{"name":"clock-heart","category":"System","tags":[],"variants":{"outline":"f7c4"}},"clock-hour-1":{"name":"clock-hour-1","category":"System","tags":["time","watch","timer","alarm","minutes","seconds"],"variants":{"outline":"f313","filled":"fe65"}},"clock-hour-10":{"name":"clock-hour-10","category":"System","tags":["time","watch","timer","alarm","minutes","seconds"],"variants":{"outline":"f314","filled":"fe64"}},"clock-hour-11":{"name":"clock-hour-11","category":"System","tags":["time","watch","timer","alarm","minutes","seconds"],"variants":{"outline":"f315","filled":"fe63"}},"clock-hour-12":{"name":"clock-hour-12","category":"System","tags":["time","watch","timer","alarm","minutes","seconds"],"variants":{"outline":"f316","filled":"fe62"}},"clock-hour-2":{"name":"clock-hour-2","category":"System","tags":["time","watch","timer","alarm","minutes","seconds"],"variants":{"outline":"f317","filled":"fe61"}},"clock-hour-3":{"name":"clock-hour-3","category":"System","tags":["time","watch","timer","alarm","minutes","seconds"],"variants":{"outline":"f318","filled":"fe60"}},"clock-hour-4":{"name":"clock-hour-4","category":"System","tags":["time","watch","timer","alarm","minutes","seconds"],"variants":{"outline":"f319","filled":"fe5f"}},"clock-hour-5":{"name":"clock-hour-5","category":"System","tags":["time","watch","timer","alarm","minutes","seconds"],"variants":{"outline":"f31a","filled":"fe5e"}},"clock-hour-6":{"name":"clock-hour-6","category":"System","tags":["time","watch","timer","alarm","minutes","seconds"],"variants":{"outline":"f31b","filled":"fe5d"}},"clock-hour-7":{"name":"clock-hour-7","category":"System","tags":["time","watch","timer","alarm","minutes","seconds"],"variants":{"outline":"f31c","filled":"fe5c"}},"clock-hour-8":{"name":"clock-hour-8","category":"System","tags":["time","watch","timer","alarm","minutes","seconds"],"variants":{"outline":"f31d","filled":"fe5b"}},"clock-hour-9":{"name":"clock-hour-9","category":"System","tags":["time","watch","timer","alarm","minutes","seconds"],"variants":{"outline":"f31e","filled":"fe5a"}},"clock-minus":{"name":"clock-minus","category":"System","tags":[],"variants":{"outline":"f848"}},"clock-off":{"name":"clock-off","category":"System","tags":["time","watch","alarm"],"variants":{"outline":"f0cf"}},"clock-pause":{"name":"clock-pause","category":"System","tags":["time","stop","pause","wait","rest","off"],"variants":{"outline":"f548"}},"clock-pin":{"name":"clock-pin","category":"System","tags":[],"variants":{"outline":"f849"}},"clock-play":{"name":"clock-play","category":"System","tags":["time","hour","work","alarm","on"],"variants":{"outline":"f549"}},"clock-plus":{"name":"clock-plus","category":"System","tags":[],"variants":{"outline":"f7c5"}},"clock-question":{"name":"clock-question","category":"System","tags":[],"variants":{"outline":"f7c6"}},"clock-record":{"name":"clock-record","category":"System","tags":["time","watch","alarm","recording"],"variants":{"outline":"f54a"}},"clock-search":{"name":"clock-search","category":"System","tags":[],"variants":{"outline":"f7c7"}},"clock-share":{"name":"clock-share","category":"System","tags":[],"variants":{"outline":"f84a"}},"clock-shield":{"name":"clock-shield","category":"System","tags":[],"variants":{"outline":"f7c8"}},"clock-star":{"name":"clock-star","category":"System","tags":[],"variants":{"outline":"f7c9"}},"clock-stop":{"name":"clock-stop","category":"System","tags":["time","watch","alarm","pause","off"],"variants":{"outline":"f54b"}},"clock-up":{"name":"clock-up","category":"System","tags":[],"variants":{"outline":"f7ca"}},"clock-x":{"name":"clock-x","category":"System","tags":[],"variants":{"outline":"f7cb"}},"clock":{"name":"clock","category":"System","tags":["time","watch","alarm"],"variants":{"outline":"ea70","filled":"f73a"}},"clothes-rack-off":{"name":"clothes-rack-off","category":"","tags":["hanger","furniture","fashion","clothing","stand"],"variants":{"outline":"f3d6"}},"clothes-rack":{"name":"clothes-rack","category":"","tags":["hanger","furniture","fashion","clothing","stand"],"variants":{"outline":"f285"}},"cloud-bitcoin":{"name":"cloud-bitcoin","category":"","tags":[],"variants":{"outline":"ff3e"}},"cloud-bolt":{"name":"cloud-bolt","category":"Weather","tags":[],"variants":{"outline":"f84b"}},"cloud-cancel":{"name":"cloud-cancel","category":"Weather","tags":[],"variants":{"outline":"f84c"}},"cloud-check":{"name":"cloud-check","category":"Weather","tags":[],"variants":{"outline":"f84d"}},"cloud-code":{"name":"cloud-code","category":"Weather","tags":[],"variants":{"outline":"f84e"}},"cloud-cog":{"name":"cloud-cog","category":"Weather","tags":[],"variants":{"outline":"f84f"}},"cloud-computing":{"name":"cloud-computing","category":"Computers","tags":["server","network","data","storage","share","internet"],"variants":{"outline":"f1d0"}},"cloud-data-connection":{"name":"cloud-data-connection","category":"Computers","tags":["media","network","storage","access"],"variants":{"outline":"f1d1"}},"cloud-dollar":{"name":"cloud-dollar","category":"Weather","tags":[],"variants":{"outline":"f850"}},"cloud-down":{"name":"cloud-down","category":"Weather","tags":[],"variants":{"outline":"f851"}},"cloud-download":{"name":"cloud-download","category":"System","tags":["files"],"variants":{"outline":"ea71"}},"cloud-exclamation":{"name":"cloud-exclamation","category":"Weather","tags":[],"variants":{"outline":"f852"}},"cloud-fog":{"name":"cloud-fog","category":"Weather","tags":["weather","online"],"variants":{"outline":"ecd9"}},"cloud-heart":{"name":"cloud-heart","category":"Weather","tags":[],"variants":{"outline":"f853"}},"cloud-lock-open":{"name":"cloud-lock-open","category":"System","tags":["unlock","password","private","pass"],"variants":{"outline":"efda"}},"cloud-lock":{"name":"cloud-lock","category":"System","tags":["security","secure","locked","password"],"variants":{"outline":"efdb"}},"cloud-minus":{"name":"cloud-minus","category":"Weather","tags":[],"variants":{"outline":"f854"}},"cloud-network":{"name":"cloud-network","category":"","tags":[],"variants":{"outline":"fc78"}},"cloud-off":{"name":"cloud-off","category":"Weather","tags":["weather","online"],"variants":{"outline":"ed3e"}},"cloud-pause":{"name":"cloud-pause","category":"Weather","tags":[],"variants":{"outline":"f855"}},"cloud-pin":{"name":"cloud-pin","category":"Weather","tags":[],"variants":{"outline":"f856"}},"cloud-plus":{"name":"cloud-plus","category":"Weather","tags":[],"variants":{"outline":"f857"}},"cloud-question":{"name":"cloud-question","category":"Weather","tags":[],"variants":{"outline":"f858"}},"cloud-rain":{"name":"cloud-rain","category":"Weather","tags":["weather","dry"],"variants":{"outline":"ea72"}},"cloud-search":{"name":"cloud-search","category":"Weather","tags":[],"variants":{"outline":"f859"}},"cloud-share":{"name":"cloud-share","category":"Weather","tags":[],"variants":{"outline":"f85a"}},"cloud-snow":{"name":"cloud-snow","category":"Weather","tags":["weather","blizzard"],"variants":{"outline":"ea73"}},"cloud-star":{"name":"cloud-star","category":"Weather","tags":[],"variants":{"outline":"f85b"}},"cloud-storm":{"name":"cloud-storm","category":"Weather","tags":["weather","lightning"],"variants":{"outline":"ea74"}},"cloud-up":{"name":"cloud-up","category":"Weather","tags":[],"variants":{"outline":"f85c"}},"cloud-upload":{"name":"cloud-upload","category":"System","tags":["files"],"variants":{"outline":"ea75"}},"cloud-x":{"name":"cloud-x","category":"Weather","tags":[],"variants":{"outline":"f85d"}},"cloud":{"name":"cloud","category":"Weather","tags":["weather","online"],"variants":{"outline":"ea76","filled":"f673"}},"clover-2":{"name":"clover-2","category":"Nature","tags":["luck","leaf","patrick","irleand","irish"],"variants":{"outline":"f21e"}},"clover":{"name":"clover","category":"Nature","tags":["luck","leaf","patrick","irleand","irish"],"variants":{"outline":"f1ea"}},"clubs":{"name":"clubs","category":"Shapes","tags":["card","game","casino","gambling","poker"],"variants":{"outline":"eff4","filled":"f674"}},"code-asterisk":{"name":"code-asterisk","category":"Text","tags":["coding","programming","html"],"variants":{"outline":"f312"}},"code-circle-2":{"name":"code-circle-2","category":"Text","tags":["coding","programming","development","shape","technology"],"variants":{"outline":"f4fe","filled":"fed4"}},"code-circle":{"name":"code-circle","category":"Text","tags":["coding","programming","development","shape","technology"],"variants":{"outline":"f4ff","filled":"fed3"}},"code-dots":{"name":"code-dots","category":"Text","tags":["program","script","programmer"],"variants":{"outline":"f61a"}},"code-minus":{"name":"code-minus","category":"Text","tags":["remove","delete","insert","braces"],"variants":{"outline":"ee42"}},"code-off":{"name":"code-off","category":"Text","tags":["brackets","source","programming","command"],"variants":{"outline":"f0d0"}},"code-plus":{"name":"code-plus","category":"Text","tags":["add","insert","braces"],"variants":{"outline":"ee43"}},"code":{"name":"code","category":"Text","tags":["brackets","source","programming","command"],"variants":{"outline":"ea77"}},"coffee-off":{"name":"coffee-off","category":"Food","tags":["espresso","hot","cup","latte","cafe","drink"],"variants":{"outline":"f106"}},"coffee":{"name":"coffee","category":"Food","tags":["espresso","hot","cup","latte","cafe","drink"],"variants":{"outline":"ef0e"}},"coffin":{"name":"coffin","category":"","tags":["halloween","death","scary","horror","cementry"],"variants":{"outline":"f579"}},"coin-bitcoin":{"name":"coin-bitcoin","category":"E-commerce","tags":["money","earn","salary","change"],"variants":{"outline":"f2be","filled":"fd06"}},"coin-euro":{"name":"coin-euro","category":"E-commerce","tags":["money","earn","salary","change"],"variants":{"outline":"f2bf","filled":"fd07"}},"coin-monero":{"name":"coin-monero","category":"E-commerce","tags":["money","earn","salary","change"],"variants":{"outline":"f4a0","filled":"fd09"}},"coin-off":{"name":"coin-off","category":"E-commerce","tags":["money","earn","salary","change","dollar"],"variants":{"outline":"f0d1"}},"coin-pound":{"name":"coin-pound","category":"E-commerce","tags":["money","earn","salary","change"],"variants":{"outline":"f2c0","filled":"fd0a"}},"coin-rupee":{"name":"coin-rupee","category":"E-commerce","tags":["money","earn","salary","change"],"variants":{"outline":"f2c1","filled":"fd0b"}},"coin-taka":{"name":"coin-taka","category":"","tags":[],"variants":{"outline":"fd0d","filled":"fd0c"}},"coin-yen":{"name":"coin-yen","category":"E-commerce","tags":["money","earn","salary","change"],"variants":{"outline":"f2c2","filled":"fd0e"}},"coin-yuan":{"name":"coin-yuan","category":"E-commerce","tags":["money","earn","salary","change"],"variants":{"outline":"f2c3","filled":"fd0f"}},"coin":{"name":"coin","category":"E-commerce","tags":["money","earn","salary","change","dollar"],"variants":{"outline":"eb82","filled":"fd08"}},"coins":{"name":"coins","category":"E-commerce","tags":["money","cash","finance","currency","dollar"],"variants":{"outline":"f65d"}},"color-filter":{"name":"color-filter","category":"Design","tags":["hue","brightness","effects","sotring","tools"],"variants":{"outline":"f5a8"}},"color-picker-off":{"name":"color-picker-off","category":"Design","tags":["timbre","saturation","paint","image","brush","choice","selection","sample"],"variants":{"outline":"f0d2"}},"color-picker":{"name":"color-picker","category":"Design","tags":["timbre","saturation","paint","image","brush","choice","selection","sample"],"variants":{"outline":"ebe6"}},"color-swatch-off":{"name":"color-swatch-off","category":"Design","tags":["sample","choice","selection"],"variants":{"outline":"f0d3"}},"color-swatch":{"name":"color-swatch","category":"Design","tags":["sample","choice","selection"],"variants":{"outline":"eb61"}},"column-insert-left":{"name":"column-insert-left","category":"Database","tags":["database","table","cells","arrow"],"variants":{"outline":"ee44"}},"column-insert-right":{"name":"column-insert-right","category":"Database","tags":["database","table","cells","arrow"],"variants":{"outline":"ee45"}},"column-remove":{"name":"column-remove","category":"Database","tags":[],"variants":{"outline":"faf4"}},"columns-1":{"name":"columns-1","category":"Text","tags":["layout","grid","design","arranegment"],"variants":{"outline":"f6d4"}},"columns-2":{"name":"columns-2","category":"Text","tags":["layout","grid","design","arranegment"],"variants":{"outline":"f6d5"}},"columns-3":{"name":"columns-3","category":"Text","tags":["layout","grid","design","arranegment"],"variants":{"outline":"f6d6"}},"columns-off":{"name":"columns-off","category":"Text","tags":["text","gap","table"],"variants":{"outline":"f0d4"}},"columns":{"name":"columns","category":"Text","tags":["text","gap","table"],"variants":{"outline":"eb83"}},"comet":{"name":"comet","category":"Weather","tags":["space","universe","star","orb","glow","night"],"variants":{"outline":"ec76"}},"command-off":{"name":"command-off","category":"Symbols","tags":["apple","key","keyboard","cmd"],"variants":{"outline":"f3d7"}},"command":{"name":"command","category":"Symbols","tags":["apple","key","keyboard","cmd"],"variants":{"outline":"ea78"}},"compass-off":{"name":"compass-off","category":"Map","tags":["navigation","safari","travel","direction","discover"],"variants":{"outline":"f0d5"}},"compass":{"name":"compass","category":"Map","tags":["navigation","safari","travel","direction","discover"],"variants":{"outline":"ea79","filled":"fd10"}},"components-off":{"name":"components-off","category":"Design","tags":["hardware","technology","electronic","computer","design","ux","figma"],"variants":{"outline":"f0d6"}},"components":{"name":"components","category":"Design","tags":["hardware","technology","electronic","computer","design","ux","figma"],"variants":{"outline":"efa5"}},"cone-2":{"name":"cone-2","category":"Shapes","tags":["geometry","math","object","shape"],"variants":{"outline":"efdc","filled":"fe59"}},"cone-off":{"name":"cone-off","category":"Shapes","tags":["geometry","math","object","shape"],"variants":{"outline":"f3d8"}},"cone-plus":{"name":"cone-plus","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fa94"}},"cone":{"name":"cone","category":"Shapes","tags":["geometry","math","object","shape"],"variants":{"outline":"efdd","filled":"fe58"}},"confetti-off":{"name":"confetti-off","category":"","tags":["party","celebrate","streamers","paper","parade","wedding","celebration"],"variants":{"outline":"f3d9"}},"confetti":{"name":"confetti","category":"","tags":["party","celebrate","streamers","paper","parade","wedding","celebration"],"variants":{"outline":"ee46"}},"confucius":{"name":"confucius","category":"Symbols","tags":["culture","religion","philosophy","tradition"],"variants":{"outline":"f58a"}},"container-off":{"name":"container-off","category":"Design","tags":["element","html","block","store","inside"],"variants":{"outline":"f107"}},"container":{"name":"container","category":"Design","tags":["element","html","block","store","inside"],"variants":{"outline":"ee47"}},"contract":{"name":"contract","category":"","tags":[],"variants":{"outline":"fefb"}},"contrast-2-off":{"name":"contrast-2-off","category":"Photography","tags":["edit","paint","photo"],"variants":{"outline":"f3da"}},"contrast-2":{"name":"contrast-2","category":"Photography","tags":["edit","paint","photo"],"variants":{"outline":"efc7","filled":"fe57"}},"contrast-off":{"name":"contrast-off","category":"Photography","tags":["edit","paint","photo"],"variants":{"outline":"f3db"}},"contrast":{"name":"contrast","category":"Photography","tags":["edit","paint","photo"],"variants":{"outline":"ec4e","filled":"fe56"}},"cooker":{"name":"cooker","category":"Food","tags":["kitchen","cook","oven","chef"],"variants":{"outline":"f57a"}},"cookie-man":{"name":"cookie-man","category":"","tags":[],"variants":{"outline":"fdb2","filled":"fe55"}},"cookie-off":{"name":"cookie-off","category":"Food","tags":["food","sweet","cooking","snack","internet","privacy"],"variants":{"outline":"f0d7"}},"cookie":{"name":"cookie","category":"","tags":[],"variants":{"outline":"fdb1","filled":"fe54"}},"copy-check":{"name":"copy-check","category":"","tags":[],"variants":{"outline":"fdb0","filled":"fe53"}},"copy-minus":{"name":"copy-minus","category":"","tags":[],"variants":{"outline":"fdaf","filled":"fe52"}},"copy-off":{"name":"copy-off","category":"Text","tags":["clipboard","clone","duplicate"],"variants":{"outline":"f0d8"}},"copy-plus":{"name":"copy-plus","category":"","tags":[],"variants":{"outline":"fdae","filled":"fe51"}},"copy-x":{"name":"copy-x","category":"","tags":[],"variants":{"outline":"fdad","filled":"fe50"}},"copy":{"name":"copy","category":"Text","tags":["clipboard","clone","duplicate"],"variants":{"outline":"ea7a"}},"copyleft-off":{"name":"copyleft-off","category":"Symbols","tags":["licence","license"],"variants":{"outline":"f0d9"}},"copyleft":{"name":"copyleft","category":"Symbols","tags":["licence","license"],"variants":{"outline":"ec3d","filled":"f73b"}},"copyright-off":{"name":"copyright-off","category":"Symbols","tags":["licence","license"],"variants":{"outline":"f0da"}},"copyright":{"name":"copyright","category":"Symbols","tags":["licence","license"],"variants":{"outline":"ea7b","filled":"f73c"}},"corner-down-left-double":{"name":"corner-down-left-double","category":"Arrows","tags":["arrow","previous","back","return","below","point"],"variants":{"outline":"ee48"}},"corner-down-left":{"name":"corner-down-left","category":"Arrows","tags":["move","arrow"],"variants":{"outline":"ea7c"}},"corner-down-right-double":{"name":"corner-down-right-double","category":"Arrows","tags":["arrow","next","below","forward","point"],"variants":{"outline":"ee49"}},"corner-down-right":{"name":"corner-down-right","category":"Arrows","tags":["move","arrow"],"variants":{"outline":"ea7d"}},"corner-left-down-double":{"name":"corner-left-down-double","category":"Arrows","tags":["arrow","point","below","bottom"],"variants":{"outline":"ee4a"}},"corner-left-down":{"name":"corner-left-down","category":"Arrows","tags":["move","arrow"],"variants":{"outline":"ea7e"}},"corner-left-up-double":{"name":"corner-left-up-double","category":"Arrows","tags":["arrow","point","above","top"],"variants":{"outline":"ee4b"}},"corner-left-up":{"name":"corner-left-up","category":"Arrows","tags":["move","arrow"],"variants":{"outline":"ea7f"}},"corner-right-down-double":{"name":"corner-right-down-double","category":"Arrows","tags":["arrow","point","below","bottom"],"variants":{"outline":"ee4c"}},"corner-right-down":{"name":"corner-right-down","category":"Arrows","tags":["move","arrow"],"variants":{"outline":"ea80"}},"corner-right-up-double":{"name":"corner-right-up-double","category":"Arrows","tags":["arrow","point","above","top"],"variants":{"outline":"ee4d"}},"corner-right-up":{"name":"corner-right-up","category":"Arrows","tags":["move","arrow"],"variants":{"outline":"ea81"}},"corner-up-left-double":{"name":"corner-up-left-double","category":"Arrows","tags":["arrow","point","side","previous","back","return"],"variants":{"outline":"ee4e"}},"corner-up-left":{"name":"corner-up-left","category":"Arrows","tags":["move","arrow"],"variants":{"outline":"ea82"}},"corner-up-right-double":{"name":"corner-up-right-double","category":"Arrows","tags":["arrow","next","above","forward","point"],"variants":{"outline":"ee4f"}},"corner-up-right":{"name":"corner-up-right","category":"Arrows","tags":["move","arrow"],"variants":{"outline":"ea83"}},"cpu-2":{"name":"cpu-2","category":"Devices","tags":["processor","computer","chip","hardware","technology","electronic"],"variants":{"outline":"f075"}},"cpu-off":{"name":"cpu-off","category":"Devices","tags":["processor","computer","chip","hardware","technology","electronic"],"variants":{"outline":"f108"}},"cpu":{"name":"cpu","category":"Devices","tags":["processor","computer","chip","hardware","technology","electronic"],"variants":{"outline":"ef8e"}},"crane-off":{"name":"crane-off","category":"Vehicles","tags":["construction","building","machine","lifting"],"variants":{"outline":"f109"}},"crane":{"name":"crane","category":"Vehicles","tags":["construction","building","machine","lifting"],"variants":{"outline":"ef27"}},"creative-commons-by":{"name":"creative-commons-by","category":"System","tags":["licence","license"],"variants":{"outline":"f21f"}},"creative-commons-nc":{"name":"creative-commons-nc","category":"System","tags":["licence","license"],"variants":{"outline":"f220"}},"creative-commons-nd":{"name":"creative-commons-nd","category":"System","tags":["licence","license"],"variants":{"outline":"f221"}},"creative-commons-off":{"name":"creative-commons-off","category":"System","tags":["licence","license"],"variants":{"outline":"f10a"}},"creative-commons-sa":{"name":"creative-commons-sa","category":"System","tags":["licence","license"],"variants":{"outline":"f222"}},"creative-commons-zero":{"name":"creative-commons-zero","category":"System","tags":["licence","license"],"variants":{"outline":"f223"}},"creative-commons":{"name":"creative-commons","category":"System","tags":["licence","license"],"variants":{"outline":"efb3"}},"credit-card-off":{"name":"credit-card-off","category":"E-commerce","tags":["money","purchase","payment","cc"],"variants":{"outline":"ed11"}},"credit-card-pay":{"name":"credit-card-pay","category":"","tags":["payment-card","credit-pay","card-payment","transaction","credit-transaction","purchase","buy","payment","credit","card"],"variants":{"outline":"fd32"}},"credit-card-refund":{"name":"credit-card-refund","category":"","tags":["refund-card","credit-refund","card-refund","transaction","credit-transaction","return","money-back","credit","refund","card"],"variants":{"outline":"fd33"}},"credit-card":{"name":"credit-card","category":"E-commerce","tags":["money","purchase","payment","cc"],"variants":{"outline":"ea84","filled":"fd11"}},"cricket":{"name":"cricket","category":"Sport","tags":["ball","game","sport"],"variants":{"outline":"f09a"}},"crop-1-1":{"name":"crop-1-1","category":"Design","tags":["square-crop","aspect-ratio-1-1","equal-proportion","image-square","crop-square","box-crop","square-frame","uniform-crop","balanced-crop","equal-crop"],"variants":{"outline":"fd50","filled":"fe4f"}},"crop-16-9":{"name":"crop-16-9","category":"Design","tags":["wide-crop","aspect-ratio-16-9","landscape-crop","wide-screen","video-crop","16-by-9","wide-format","cinematic-crop","panorama","landscape-aspect"],"variants":{"outline":"fd51","filled":"fe4e"}},"crop-3-2":{"name":"crop-3-2","category":"Design","tags":["portrait-crop","aspect-ratio-3-2","vertical-crop","portrait-mode","tall-crop","3-by-2","portrait-format","vertical-aspect","vertical-frame","portrait"],"variants":{"outline":"fd52","filled":"fe4d"}},"crop-5-4":{"name":"crop-5-4","category":"Design","tags":["custom-crop","aspect-ratio-5-4","fixed-crop","image-format","5-by-4","customized-crop","fixed-aspect","dimensional-crop","specific-crop","custom-aspect"],"variants":{"outline":"fd53","filled":"fe4c"}},"crop-7-5":{"name":"crop-7-5","category":"Design","tags":["custom-crop","aspect-ratio-7-5","fixed-crop","image-format","7-by-5","customized-crop","fixed-aspect","dimensional-crop","specific-crop","custom-aspect"],"variants":{"outline":"fd54","filled":"fe4b"}},"crop-landscape":{"name":"crop-landscape","category":"Design","tags":["landscape-crop","aspect-ratio-landscape","wide-crop","landscape-mode","horizontal-crop","landscape-format","wide-aspect","horizontal-frame","landscape"],"variants":{"outline":"fd55","filled":"fe4a"}},"crop-portrait":{"name":"crop-portrait","category":"Design","tags":["portrait-crop","aspect-ratio-portrait","vertical-crop","portrait-mode","tall-crop","portrait-format","vertical-aspect","vertical-frame","portrait"],"variants":{"outline":"fd56","filled":"fe49"}},"crop":{"name":"crop","category":"Design","tags":["photo","image"],"variants":{"outline":"ea85"}},"cross-off":{"name":"cross-off","category":"Symbols","tags":["prayer","church","catholic","jezus","religion"],"variants":{"outline":"f10b"}},"cross":{"name":"cross","category":"Symbols","tags":["prayer","church","catholic","jezus","religion"],"variants":{"outline":"ef8f","filled":"f675"}},"crosshair":{"name":"crosshair","category":"","tags":["reticle","tag","tracer","measurement","target"],"variants":{"outline":"ec3e"}},"crown-off":{"name":"crown-off","category":"","tags":["symbol","queen","king","prince","princess","dynasty","royalty"],"variants":{"outline":"ee50"}},"crown":{"name":"crown","category":"","tags":["symbol","queen","king","prince","princess","dynasty","royalty"],"variants":{"outline":"ed12"}},"crutches-off":{"name":"crutches-off","category":"Health","tags":["hospital","medical","disability","health","leg"],"variants":{"outline":"f10c"}},"crutches":{"name":"crutches","category":"Health","tags":["hospital","medical","disability","health","leg"],"variants":{"outline":"ef5b"}},"crystal-ball":{"name":"crystal-ball","category":"","tags":["magic","fortune","christmas","witch","future"],"variants":{"outline":"f57b"}},"csv":{"name":"csv","category":"Extensions","tags":["file","document","format","type","folder"],"variants":{"outline":"f791"}},"cube-3d-sphere-off":{"name":"cube-3d-sphere-off","category":"","tags":["printing","vector","shape"],"variants":{"outline":"f3b5"}},"cube-3d-sphere":{"name":"cube-3d-sphere","category":"","tags":["printing","vector","shape"],"variants":{"outline":"ecd7"}},"cube-off":{"name":"cube-off","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fa95"}},"cube-plus":{"name":"cube-plus","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fa96"}},"cube-send":{"name":"cube-send","category":"","tags":["box","delivery","package","shipping"],"variants":{"outline":"f61b"}},"cube-unfolded":{"name":"cube-unfolded","category":"","tags":["folding","filed","box","unwrapped"],"variants":{"outline":"f61c"}},"cube":{"name":"cube","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fa97"}},"cup-off":{"name":"cup-off","category":"Food","tags":["coffee","drink","water","food"],"variants":{"outline":"f10d"}},"cup":{"name":"cup","category":"Food","tags":["coffee","drink","water","food"],"variants":{"outline":"ef28"}},"curling":{"name":"curling","category":"Sport","tags":["game","sport","olympic","winter","snow"],"variants":{"outline":"efc8"}},"curly-loop":{"name":"curly-loop","category":"","tags":["voicemail","power","infinity"],"variants":{"outline":"ecda"}},"currency-afghani":{"name":"currency-afghani","category":"Currencies","tags":["money","coin","cash","commerce","afghanistan"],"variants":{"outline":"f65e"}},"currency-bahraini":{"name":"currency-bahraini","category":"Currencies","tags":["bahraini","bhd","commerce","dinar","money","banknote","pay"],"variants":{"outline":"ee51"}},"currency-baht":{"name":"currency-baht","category":"Currencies","tags":["thb","thai","baht","money","banknote","pay"],"variants":{"outline":"f08a"}},"currency-bitcoin":{"name":"currency-bitcoin","category":"Currencies","tags":["crypto","bitcoin","lightning network","mining","digital","blockchain","p2p","peer","money","banknote","pay"],"variants":{"outline":"ebab"}},"currency-cent":{"name":"currency-cent","category":"Currencies","tags":["cent","coin","money","centavo","penny","banknote","pay"],"variants":{"outline":"ee53"}},"currency-dinar":{"name":"currency-dinar","category":"Currencies","tags":["kwd","dinar","kuwait","money","banknote","pay"],"variants":{"outline":"ee54"}},"currency-dirham":{"name":"currency-dirham","category":"Currencies","tags":["trade","aed","uae","dirham","money","banknote","pay"],"variants":{"outline":"ee55"}},"currency-dogecoin":{"name":"currency-dogecoin","category":"Currencies","tags":["crypto","bitcoin","lightning network","mining","digital","blockchain","p2p","peer","money","banknote","pay"],"variants":{"outline":"ef4b"}},"currency-dollar-australian":{"name":"currency-dollar-australian","category":"Currencies","tags":["dollar","aud","australian","money","banknote","pay"],"variants":{"outline":"ee56"}},"currency-dollar-brunei":{"name":"currency-dollar-brunei","category":"Currencies","tags":["exchange","buisness","commerce"],"variants":{"outline":"f36c"}},"currency-dollar-canadian":{"name":"currency-dollar-canadian","category":"Currencies","tags":["trade","dollar","cad","canadian","money","banknote","pay"],"variants":{"outline":"ee57"}},"currency-dollar-guyanese":{"name":"currency-dollar-guyanese","category":"Currencies","tags":["exchange","buisness","commerce"],"variants":{"outline":"f36d"}},"currency-dollar-off":{"name":"currency-dollar-off","category":"Currencies","tags":["american","us","dollar","usd","sign","bucks","usa","money","banknote","pay"],"variants":{"outline":"f3dc"}},"currency-dollar-singapore":{"name":"currency-dollar-singapore","category":"Currencies","tags":["singapore","dollar","exchange","sgd","money","banknote","pay"],"variants":{"outline":"ee58"}},"currency-dollar-zimbabwean":{"name":"currency-dollar-zimbabwean","category":"Currencies","tags":["exchange","buisness","commerce"],"variants":{"outline":"f36e"}},"currency-dollar":{"name":"currency-dollar","category":"Currencies","tags":["american","us","dollar","usd","sign","bucks","usa","money","banknote","pay"],"variants":{"outline":"eb84"}},"currency-dong":{"name":"currency-dong","category":"Currencies","tags":["vietnam","exchange","finance","money","cash"],"variants":{"outline":"f36f"}},"currency-dram":{"name":"currency-dram","category":"Currencies","tags":["exchange","finance","money","cash","armenia"],"variants":{"outline":"f370"}},"currency-ethereum":{"name":"currency-ethereum","category":"Currencies","tags":["ethereum","digital","crypto","ether","blockchain","money","banknote","pay"],"variants":{"outline":"ee59"}},"currency-euro-off":{"name":"currency-euro-off","category":"Currencies","tags":["euro","eur","trade","finance","europe","eu","money","banknote","pay"],"variants":{"outline":"f3dd"}},"currency-euro":{"name":"currency-euro","category":"Currencies","tags":["euro","eur","trade","finance","europe","eu","money","banknote","pay"],"variants":{"outline":"eb85"}},"currency-florin":{"name":"currency-florin","category":"Currencies","tags":[],"variants":{"outline":"faf5"}},"currency-forint":{"name":"currency-forint","category":"Currencies","tags":["huf","hungarian","business","forint","money","banknote","pay"],"variants":{"outline":"ee5a"}},"currency-frank":{"name":"currency-frank","category":"Currencies","tags":["chf","business","swiss","franc","money","banknote","pay"],"variants":{"outline":"ee5b"}},"currency-guarani":{"name":"currency-guarani","category":"Currencies","tags":["exchange","finance","money","cash","paraguay"],"variants":{"outline":"f371"}},"currency-hryvnia":{"name":"currency-hryvnia","category":"Currencies","tags":["exchange","finance","money","cash","ukraine"],"variants":{"outline":"f372"}},"currency-iranian-rial":{"name":"currency-iranian-rial","category":"Currencies","tags":[],"variants":{"outline":"fa58"}},"currency-kip":{"name":"currency-kip","category":"Currencies","tags":["exchange","finance","money","cash","laos"],"variants":{"outline":"f373"}},"currency-krone-czech":{"name":"currency-krone-czech","category":"Currencies","tags":["czech","czk","koruna","money","banknote","pay"],"variants":{"outline":"ee5c"}},"currency-krone-danish":{"name":"currency-krone-danish","category":"Currencies","tags":["krone","dkk","danish","finance","money","banknote","pay"],"variants":{"outline":"ee5d"}},"currency-krone-swedish":{"name":"currency-krone-swedish","category":"Currencies","tags":["krone","kronor","krona","swedish","icelandic","norwegian","estonian","money","banknote","pay"],"variants":{"outline":"ee5e"}},"currency-lari":{"name":"currency-lari","category":"Currencies","tags":["exchange","finance","money","cash","georgia"],"variants":{"outline":"f374"}},"currency-leu":{"name":"currency-leu","category":"Currencies","tags":["leu","loti","lempira","lek","lilangani","money","banknote","pay"],"variants":{"outline":"ee5f"}},"currency-lira":{"name":"currency-lira","category":"Currencies","tags":["lira","trade","turkish","try","money","banknote","pay"],"variants":{"outline":"ee60"}},"currency-litecoin":{"name":"currency-litecoin","category":"Currencies","tags":["litecoin","crypto","segwit","lightning network","blockchain","p2p","peer","transaction","money","banknote","pay"],"variants":{"outline":"ee61"}},"currency-lyd":{"name":"currency-lyd","category":"Currencies","tags":["exchange","finance","money","cash","libya"],"variants":{"outline":"f375"}},"currency-manat":{"name":"currency-manat","category":"Currencies","tags":["exchange","finance","money","cash","azerbaijan"],"variants":{"outline":"f376"}},"currency-monero":{"name":"currency-monero","category":"Currencies","tags":["exchange","finance","money","cash","cryptocurrency"],"variants":{"outline":"f377"}},"currency-naira":{"name":"currency-naira","category":"Currencies","tags":["naira","ngn","nigerian","trade","money","banknote","pay"],"variants":{"outline":"ee62"}},"currency-nano":{"name":"currency-nano","category":"Currencies","tags":["money","nano","crypto","blockchain","pay","p2p","digital"],"variants":{"outline":"f7a6"}},"currency-off":{"name":"currency-off","category":"Currencies","tags":["target","goal","focus","marketing"],"variants":{"outline":"f3de"}},"currency-paanga":{"name":"currency-paanga","category":"Currencies","tags":["exchange","finance","money","cash","tonga"],"variants":{"outline":"f378"}},"currency-peso":{"name":"currency-peso","category":"Currencies","tags":["money","coin","cash","commerce","mexico"],"variants":{"outline":"f65f"}},"currency-pound-off":{"name":"currency-pound-off","category":"Currencies","tags":["gbp","pound","sterling","british","britain","uk","money","banknote","pay"],"variants":{"outline":"f3df"}},"currency-pound":{"name":"currency-pound","category":"Currencies","tags":["gbp","pound","sterling","british","britain","uk","money","banknote","pay"],"variants":{"outline":"ebac"}},"currency-quetzal":{"name":"currency-quetzal","category":"Currencies","tags":["exchange","finance","money","cash","guatemala"],"variants":{"outline":"f379"}},"currency-real":{"name":"currency-real","category":"Currencies","tags":["brl","brazilian","real","finance","money","banknote","pay"],"variants":{"outline":"ee63"}},"currency-renminbi":{"name":"currency-renminbi","category":"Currencies","tags":["renminbi","cny","chinese","yuan","money","banknote","pay"],"variants":{"outline":"ee64"}},"currency-ripple":{"name":"currency-ripple","category":"Currencies","tags":["ripple","xrp","digital","crypto","money","banknote","pay"],"variants":{"outline":"ee65"}},"currency-riyal":{"name":"currency-riyal","category":"Currencies","tags":["riyal","sar","saudi","money","banknote","pay"],"variants":{"outline":"ee66"}},"currency-rubel":{"name":"currency-rubel","category":"Currencies","tags":["rub","russian","ruble","money","banknote","pay"],"variants":{"outline":"ee67"}},"currency-rufiyaa":{"name":"currency-rufiyaa","category":"Currencies","tags":["exchange","finance","money","cash","maldives"],"variants":{"outline":"f37a"}},"currency-rupee-nepalese":{"name":"currency-rupee-nepalese","category":"Currencies","tags":["exchange","finance","money","cash","nepal"],"variants":{"outline":"f37b"}},"currency-rupee":{"name":"currency-rupee","category":"Currencies","tags":["inr","indian","rupee","exchange","money","banknote","pay"],"variants":{"outline":"ebad"}},"currency-shekel":{"name":"currency-shekel","category":"Currencies","tags":["curency","ils","israeli","shekel","money","banknote","pay"],"variants":{"outline":"ee68"}},"currency-solana":{"name":"currency-solana","category":"Currencies","tags":["crypto","bitcoin","mining","digital","cryptocurrency"],"variants":{"outline":"f4a1"}},"currency-som":{"name":"currency-som","category":"Currencies","tags":["exchange","finance","money","cash","kyrgyzstan"],"variants":{"outline":"f37c"}},"currency-taka":{"name":"currency-taka","category":"Currencies","tags":["trade","bangladesh","bdt","taka","money","banknote","pay"],"variants":{"outline":"ee69"}},"currency-tenge":{"name":"currency-tenge","category":"Currencies","tags":["exchange","finance","money","cash","kazakhstan"],"variants":{"outline":"f37d"}},"currency-tugrik":{"name":"currency-tugrik","category":"Currencies","tags":["tgrg","mnt","tugrik","mongolian","money","banknote","pay"],"variants":{"outline":"ee6a"}},"currency-won":{"name":"currency-won","category":"Currencies","tags":["korean","kpw","north","won","money","banknote","pay"],"variants":{"outline":"ee6b"}},"currency-xrp":{"name":"currency-xrp","category":"","tags":["xrp","cryptocurrency","digital-currency","blockchain","ripple","crypto","virtual-currency","xrp-coin","financial","digital-money"],"variants":{"outline":"fd34"}},"currency-yen-off":{"name":"currency-yen-off","category":"Currencies","tags":["japanese","yen","jpy","chinese","money","banknote","pay"],"variants":{"outline":"f3e0"}},"currency-yen":{"name":"currency-yen","category":"Currencies","tags":["japanese","yen","jpy","chinese","money","banknote","pay"],"variants":{"outline":"ebae"}},"currency-yuan":{"name":"currency-yuan","category":"Currencies","tags":["exchange","finance","money","cash","china"],"variants":{"outline":"f29a"}},"currency-zloty":{"name":"currency-zloty","category":"Currencies","tags":["poland","pln","zloty","polish","money","banknote","pay"],"variants":{"outline":"ee6c"}},"currency":{"name":"currency","category":"Currencies","tags":["target","goal","focus","marketing"],"variants":{"outline":"efa6"}},"current-location-off":{"name":"current-location-off","category":"Map","tags":["localization","maps","navigation","pin","target"],"variants":{"outline":"f10e"}},"current-location":{"name":"current-location","category":"Map","tags":["localization","maps","navigation","pin","target"],"variants":{"outline":"ecef"}},"cursor-off":{"name":"cursor-off","category":"","tags":["editor","indicate","position","input","mouse","type"],"variants":{"outline":"f10f"}},"cursor-text":{"name":"cursor-text","category":"Text","tags":["editor","indicate","position","input","mouse","type"],"variants":{"outline":"ee6d"}},"cut":{"name":"cut","category":"Design","tags":["scissors","divide","hairdresser","sharp"],"variants":{"outline":"ea86"}},"cylinder-off":{"name":"cylinder-off","category":"Shapes","tags":["geometry","gas","tube","object","piston"],"variants":{"outline":"fa98"}},"cylinder-plus":{"name":"cylinder-plus","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fa99"}},"cylinder":{"name":"cylinder","category":"Shapes","tags":["geometry","gas","tube","object","piston"],"variants":{"outline":"f54c"}},"dashboard-off":{"name":"dashboard-off","category":"System","tags":["home","car"],"variants":{"outline":"f3e1"}},"dashboard":{"name":"dashboard","category":"System","tags":["home","car"],"variants":{"outline":"ea87"}},"database-cog":{"name":"database-cog","category":"Database","tags":[],"variants":{"outline":"fa10"}},"database-dollar":{"name":"database-dollar","category":"Database","tags":[],"variants":{"outline":"fa11"}},"database-edit":{"name":"database-edit","category":"Database","tags":[],"variants":{"outline":"fa12"}},"database-exclamation":{"name":"database-exclamation","category":"Database","tags":[],"variants":{"outline":"fa13"}},"database-export":{"name":"database-export","category":"Database","tags":["data","backup","file","storage","system"],"variants":{"outline":"ee6e"}},"database-heart":{"name":"database-heart","category":"Database","tags":[],"variants":{"outline":"fa14"}},"database-import":{"name":"database-import","category":"Database","tags":["data","file","storage","backup","system"],"variants":{"outline":"ee6f"}},"database-leak":{"name":"database-leak","category":"Database","tags":[],"variants":{"outline":"fa15"}},"database-minus":{"name":"database-minus","category":"Database","tags":[],"variants":{"outline":"fa16"}},"database-off":{"name":"database-off","category":"Database","tags":["storage","data","memory"],"variants":{"outline":"ee70"}},"database-plus":{"name":"database-plus","category":"Database","tags":[],"variants":{"outline":"fa17"}},"database-search":{"name":"database-search","category":"Database","tags":[],"variants":{"outline":"fa18"}},"database-share":{"name":"database-share","category":"Database","tags":[],"variants":{"outline":"fa19"}},"database-smile":{"name":"database-smile","category":"","tags":[],"variants":{"outline":"fd9b"}},"database-star":{"name":"database-star","category":"Database","tags":[],"variants":{"outline":"fa1a"}},"database-x":{"name":"database-x","category":"Database","tags":[],"variants":{"outline":"fa1b"}},"database":{"name":"database","category":"Database","tags":["storage","data","memory"],"variants":{"outline":"ea88"}},"decimal":{"name":"decimal","category":"Math","tags":["point","fraction","numeric","number","mathematics","decimal-point","decimal-system","fractional","math","dot"],"variants":{"outline":"fa26"}},"deer":{"name":"deer","category":"Animals","tags":["animal","christmas","santa","forest"],"variants":{"outline":"f4c5"}},"delta":{"name":"delta","category":"Letters","tags":["letter","alphabet","greek","math"],"variants":{"outline":"f53c"}},"dental-broken":{"name":"dental-broken","category":"","tags":["tooth","dentist","medical","care","caries"],"variants":{"outline":"f286"}},"dental-off":{"name":"dental-off","category":"Health","tags":["tooth","toothbrush","mouth","hygiene"],"variants":{"outline":"f110"}},"dental":{"name":"dental","category":"Health","tags":["tooth","toothbrush","mouth","hygiene"],"variants":{"outline":"f025"}},"deselect":{"name":"deselect","category":"","tags":["unselect","clear-selection","deselection","unpick","uncheck","deactivate","unmark","remove-selection","untag","unchoose"],"variants":{"outline":"f9f3"}},"desk":{"name":"desk","category":"","tags":["workspace","workstation","table","office-desk","workplace","furniture","desk-setup","desktop","office-furniture","working"],"variants":{"outline":"fd35"}},"details-off":{"name":"details-off","category":"","tags":["geometric","half","shape","highlight","triangle"],"variants":{"outline":"f3e2"}},"details":{"name":"details","category":"","tags":["geometric","half","shape","highlight","triangle"],"variants":{"outline":"ee71"}},"device-airpods-case":{"name":"device-airpods-case","category":"Devices","tags":["music","audio","apple","iphone","wireless","sound"],"variants":{"outline":"f646"}},"device-airpods":{"name":"device-airpods","category":"Devices","tags":["music","iphone","apple","wireless","headphones","sound","earbuds"],"variants":{"outline":"f5a9"}},"device-airtag":{"name":"device-airtag","category":"Devices","tags":[],"variants":{"outline":"fae6"}},"device-analytics":{"name":"device-analytics","category":"Devices","tags":["analyze","analyse","data","traffic","user"],"variants":{"outline":"ee72"}},"device-audio-tape":{"name":"device-audio-tape","category":"Devices","tags":["record","music","radio","cassette","recording","play"],"variants":{"outline":"ee73"}},"device-camera-phone":{"name":"device-camera-phone","category":"Devices","tags":["smartphone","technology","photo","gadget","photography"],"variants":{"outline":"f233"}},"device-cctv-off":{"name":"device-cctv-off","category":"Devices","tags":["closed","circuit","television","video","surveillance","signal","monitor","record"],"variants":{"outline":"f3e3"}},"device-cctv":{"name":"device-cctv","category":"Devices","tags":["closed","circuit","television","video","surveillance","signal","monitor","record"],"variants":{"outline":"ee74"}},"device-computer-camera-off":{"name":"device-computer-camera-off","category":"Devices","tags":["video","meeting","record","recording","webcam"],"variants":{"outline":"ee75"}},"device-computer-camera":{"name":"device-computer-camera","category":"Devices","tags":["video","meeting","record","recording","webcam"],"variants":{"outline":"ee76"}},"device-desktop-analytics":{"name":"device-desktop-analytics","category":"Devices","tags":["monitor","computer","imac","stats","charts"],"variants":{"outline":"ee77"}},"device-desktop-bolt":{"name":"device-desktop-bolt","category":"Devices","tags":[],"variants":{"outline":"f85e"}},"device-desktop-cancel":{"name":"device-desktop-cancel","category":"Devices","tags":[],"variants":{"outline":"f85f"}},"device-desktop-check":{"name":"device-desktop-check","category":"Devices","tags":[],"variants":{"outline":"f860"}},"device-desktop-code":{"name":"device-desktop-code","category":"Devices","tags":[],"variants":{"outline":"f861"}},"device-desktop-cog":{"name":"device-desktop-cog","category":"Devices","tags":[],"variants":{"outline":"f862"}},"device-desktop-dollar":{"name":"device-desktop-dollar","category":"Devices","tags":[],"variants":{"outline":"f863"}},"device-desktop-down":{"name":"device-desktop-down","category":"Devices","tags":[],"variants":{"outline":"f864"}},"device-desktop-exclamation":{"name":"device-desktop-exclamation","category":"Devices","tags":[],"variants":{"outline":"f865"}},"device-desktop-heart":{"name":"device-desktop-heart","category":"Devices","tags":[],"variants":{"outline":"f866"}},"device-desktop-minus":{"name":"device-desktop-minus","category":"Devices","tags":[],"variants":{"outline":"f867"}},"device-desktop-off":{"name":"device-desktop-off","category":"Devices","tags":["monitor","computer","imac"],"variants":{"outline":"ee78"}},"device-desktop-pause":{"name":"device-desktop-pause","category":"Devices","tags":[],"variants":{"outline":"f868"}},"device-desktop-pin":{"name":"device-desktop-pin","category":"Devices","tags":[],"variants":{"outline":"f869"}},"device-desktop-plus":{"name":"device-desktop-plus","category":"Devices","tags":[],"variants":{"outline":"f86a"}},"device-desktop-question":{"name":"device-desktop-question","category":"Devices","tags":[],"variants":{"outline":"f86b"}},"device-desktop-search":{"name":"device-desktop-search","category":"Devices","tags":[],"variants":{"outline":"f86c"}},"device-desktop-share":{"name":"device-desktop-share","category":"Devices","tags":[],"variants":{"outline":"f86d"}},"device-desktop-star":{"name":"device-desktop-star","category":"Devices","tags":[],"variants":{"outline":"f86e"}},"device-desktop-up":{"name":"device-desktop-up","category":"Devices","tags":[],"variants":{"outline":"f86f"}},"device-desktop-x":{"name":"device-desktop-x","category":"Devices","tags":[],"variants":{"outline":"f870"}},"device-desktop":{"name":"device-desktop","category":"Devices","tags":["monitor","computer","imac"],"variants":{"outline":"ea89"}},"device-floppy":{"name":"device-floppy","category":"Devices","tags":["save","file","disk"],"variants":{"outline":"eb62"}},"device-gamepad-2":{"name":"device-gamepad-2","category":"Devices","tags":["game","play","entertainment","console","joystick","joypad","controller"],"variants":{"outline":"f1d2"}},"device-gamepad-3":{"name":"device-gamepad-3","category":"Devices","tags":[],"variants":{"outline":"fc58"}},"device-gamepad":{"name":"device-gamepad","category":"Devices","tags":["game","play","entertainment","console","joystick","joypad","controller"],"variants":{"outline":"eb63"}},"device-heart-monitor":{"name":"device-heart-monitor","category":"Devices","tags":["hospital","rate","healthcare","health"],"variants":{"outline":"f060","filled":"fa38"}},"device-imac-bolt":{"name":"device-imac-bolt","category":"Devices","tags":[],"variants":{"outline":"f871"}},"device-imac-cancel":{"name":"device-imac-cancel","category":"Devices","tags":[],"variants":{"outline":"f872"}},"device-imac-check":{"name":"device-imac-check","category":"Devices","tags":[],"variants":{"outline":"f873"}},"device-imac-code":{"name":"device-imac-code","category":"Devices","tags":[],"variants":{"outline":"f874"}},"device-imac-cog":{"name":"device-imac-cog","category":"Devices","tags":[],"variants":{"outline":"f875"}},"device-imac-dollar":{"name":"device-imac-dollar","category":"Devices","tags":[],"variants":{"outline":"f876"}},"device-imac-down":{"name":"device-imac-down","category":"Devices","tags":[],"variants":{"outline":"f877"}},"device-imac-exclamation":{"name":"device-imac-exclamation","category":"Devices","tags":[],"variants":{"outline":"f878"}},"device-imac-heart":{"name":"device-imac-heart","category":"Devices","tags":[],"variants":{"outline":"f879"}},"device-imac-minus":{"name":"device-imac-minus","category":"Devices","tags":[],"variants":{"outline":"f87a"}},"device-imac-off":{"name":"device-imac-off","category":"Devices","tags":["computer","monitor","apple","desktop","pc"],"variants":{"outline":"f87b"}},"device-imac-pause":{"name":"device-imac-pause","category":"Devices","tags":[],"variants":{"outline":"f87c"}},"device-imac-pin":{"name":"device-imac-pin","category":"Devices","tags":[],"variants":{"outline":"f87d"}},"device-imac-plus":{"name":"device-imac-plus","category":"Devices","tags":[],"variants":{"outline":"f87e"}},"device-imac-question":{"name":"device-imac-question","category":"Devices","tags":[],"variants":{"outline":"f87f"}},"device-imac-search":{"name":"device-imac-search","category":"Devices","tags":[],"variants":{"outline":"f880"}},"device-imac-share":{"name":"device-imac-share","category":"Devices","tags":[],"variants":{"outline":"f881"}},"device-imac-star":{"name":"device-imac-star","category":"Devices","tags":[],"variants":{"outline":"f882"}},"device-imac-up":{"name":"device-imac-up","category":"Devices","tags":[],"variants":{"outline":"f883"}},"device-imac-x":{"name":"device-imac-x","category":"Devices","tags":[],"variants":{"outline":"f884"}},"device-imac":{"name":"device-imac","category":"Devices","tags":["computer","monitor","apple","desktop","pc"],"variants":{"outline":"f7a7"}},"device-ipad-bolt":{"name":"device-ipad-bolt","category":"Devices","tags":[],"variants":{"outline":"f885"}},"device-ipad-cancel":{"name":"device-ipad-cancel","category":"Devices","tags":[],"variants":{"outline":"f886"}},"device-ipad-check":{"name":"device-ipad-check","category":"Devices","tags":[],"variants":{"outline":"f887"}},"device-ipad-code":{"name":"device-ipad-code","category":"Devices","tags":[],"variants":{"outline":"f888"}},"device-ipad-cog":{"name":"device-ipad-cog","category":"Devices","tags":[],"variants":{"outline":"f889"}},"device-ipad-dollar":{"name":"device-ipad-dollar","category":"Devices","tags":[],"variants":{"outline":"f88a"}},"device-ipad-down":{"name":"device-ipad-down","category":"Devices","tags":[],"variants":{"outline":"f88b"}},"device-ipad-exclamation":{"name":"device-ipad-exclamation","category":"Devices","tags":[],"variants":{"outline":"f88c"}},"device-ipad-heart":{"name":"device-ipad-heart","category":"Devices","tags":[],"variants":{"outline":"f88d"}},"device-ipad-horizontal-bolt":{"name":"device-ipad-horizontal-bolt","category":"Devices","tags":[],"variants":{"outline":"f88e"}},"device-ipad-horizontal-cancel":{"name":"device-ipad-horizontal-cancel","category":"Devices","tags":[],"variants":{"outline":"f88f"}},"device-ipad-horizontal-check":{"name":"device-ipad-horizontal-check","category":"Devices","tags":[],"variants":{"outline":"f890"}},"device-ipad-horizontal-code":{"name":"device-ipad-horizontal-code","category":"Devices","tags":[],"variants":{"outline":"f891"}},"device-ipad-horizontal-cog":{"name":"device-ipad-horizontal-cog","category":"Devices","tags":[],"variants":{"outline":"f892"}},"device-ipad-horizontal-dollar":{"name":"device-ipad-horizontal-dollar","category":"Devices","tags":[],"variants":{"outline":"f893"}},"device-ipad-horizontal-down":{"name":"device-ipad-horizontal-down","category":"Devices","tags":[],"variants":{"outline":"f894"}},"device-ipad-horizontal-exclamation":{"name":"device-ipad-horizontal-exclamation","category":"Devices","tags":[],"variants":{"outline":"f895"}},"device-ipad-horizontal-heart":{"name":"device-ipad-horizontal-heart","category":"Devices","tags":[],"variants":{"outline":"f896"}},"device-ipad-horizontal-minus":{"name":"device-ipad-horizontal-minus","category":"Devices","tags":[],"variants":{"outline":"f897"}},"device-ipad-horizontal-off":{"name":"device-ipad-horizontal-off","category":"Devices","tags":["tablet","apple","mobile","technology","ios"],"variants":{"outline":"f898"}},"device-ipad-horizontal-pause":{"name":"device-ipad-horizontal-pause","category":"Devices","tags":[],"variants":{"outline":"f899"}},"device-ipad-horizontal-pin":{"name":"device-ipad-horizontal-pin","category":"Devices","tags":[],"variants":{"outline":"f89a"}},"device-ipad-horizontal-plus":{"name":"device-ipad-horizontal-plus","category":"Devices","tags":[],"variants":{"outline":"f89b"}},"device-ipad-horizontal-question":{"name":"device-ipad-horizontal-question","category":"Devices","tags":[],"variants":{"outline":"f89c"}},"device-ipad-horizontal-search":{"name":"device-ipad-horizontal-search","category":"Devices","tags":[],"variants":{"outline":"f89d"}},"device-ipad-horizontal-share":{"name":"device-ipad-horizontal-share","category":"Devices","tags":[],"variants":{"outline":"f89e"}},"device-ipad-horizontal-star":{"name":"device-ipad-horizontal-star","category":"Devices","tags":[],"variants":{"outline":"f89f"}},"device-ipad-horizontal-up":{"name":"device-ipad-horizontal-up","category":"Devices","tags":[],"variants":{"outline":"f8a0"}},"device-ipad-horizontal-x":{"name":"device-ipad-horizontal-x","category":"Devices","tags":[],"variants":{"outline":"f8a1"}},"device-ipad-horizontal":{"name":"device-ipad-horizontal","category":"Devices","tags":["tablet","apple","mobile","technology","ios"],"variants":{"outline":"f647"}},"device-ipad-minus":{"name":"device-ipad-minus","category":"Devices","tags":[],"variants":{"outline":"f8a2"}},"device-ipad-off":{"name":"device-ipad-off","category":"Devices","tags":["tablet","apple","mobile","technology","ios"],"variants":{"outline":"f8a3"}},"device-ipad-pause":{"name":"device-ipad-pause","category":"Devices","tags":[],"variants":{"outline":"f8a4"}},"device-ipad-pin":{"name":"device-ipad-pin","category":"Devices","tags":[],"variants":{"outline":"f8a5"}},"device-ipad-plus":{"name":"device-ipad-plus","category":"Devices","tags":[],"variants":{"outline":"f8a6"}},"device-ipad-question":{"name":"device-ipad-question","category":"Devices","tags":[],"variants":{"outline":"f8a7"}},"device-ipad-search":{"name":"device-ipad-search","category":"Devices","tags":[],"variants":{"outline":"f8a8"}},"device-ipad-share":{"name":"device-ipad-share","category":"Devices","tags":[],"variants":{"outline":"f8a9"}},"device-ipad-star":{"name":"device-ipad-star","category":"Devices","tags":[],"variants":{"outline":"f8aa"}},"device-ipad-up":{"name":"device-ipad-up","category":"Devices","tags":[],"variants":{"outline":"f8ab"}},"device-ipad-x":{"name":"device-ipad-x","category":"Devices","tags":[],"variants":{"outline":"f8ac"}},"device-ipad":{"name":"device-ipad","category":"Devices","tags":["tablet","apple","mobile","technology","ios"],"variants":{"outline":"f648"}},"device-landline-phone":{"name":"device-landline-phone","category":"Devices","tags":["telephone","call","comunication","digital"],"variants":{"outline":"f649"}},"device-laptop-off":{"name":"device-laptop-off","category":"Devices","tags":["workstation","mac","notebook","portable","screen","computer"],"variants":{"outline":"f061"}},"device-laptop":{"name":"device-laptop","category":"Devices","tags":["workstation","mac","notebook","portable","screen","computer"],"variants":{"outline":"eb64"}},"device-mobile-bolt":{"name":"device-mobile-bolt","category":"Devices","tags":[],"variants":{"outline":"f8ad"}},"device-mobile-cancel":{"name":"device-mobile-cancel","category":"Devices","tags":[],"variants":{"outline":"f8ae"}},"device-mobile-charging":{"name":"device-mobile-charging","category":"Devices","tags":["battery","charge","wireless","cable"],"variants":{"outline":"f224"}},"device-mobile-check":{"name":"device-mobile-check","category":"Devices","tags":[],"variants":{"outline":"f8af"}},"device-mobile-code":{"name":"device-mobile-code","category":"Devices","tags":[],"variants":{"outline":"f8b0"}},"device-mobile-cog":{"name":"device-mobile-cog","category":"Devices","tags":[],"variants":{"outline":"f8b1"}},"device-mobile-dollar":{"name":"device-mobile-dollar","category":"Devices","tags":[],"variants":{"outline":"f8b2"}},"device-mobile-down":{"name":"device-mobile-down","category":"Devices","tags":[],"variants":{"outline":"f8b3"}},"device-mobile-exclamation":{"name":"device-mobile-exclamation","category":"Devices","tags":[],"variants":{"outline":"f8b4"}},"device-mobile-heart":{"name":"device-mobile-heart","category":"Devices","tags":[],"variants":{"outline":"f8b5"}},"device-mobile-message":{"name":"device-mobile-message","category":"Devices","tags":["iphone","phone","smartphone","cellphone","sms","texting","chat","text"],"variants":{"outline":"ee79"}},"device-mobile-minus":{"name":"device-mobile-minus","category":"Devices","tags":[],"variants":{"outline":"f8b6"}},"device-mobile-off":{"name":"device-mobile-off","category":"Devices","tags":["iphone","phone","smartphone","cellphone"],"variants":{"outline":"f062"}},"device-mobile-pause":{"name":"device-mobile-pause","category":"Devices","tags":[],"variants":{"outline":"f8b7"}},"device-mobile-pin":{"name":"device-mobile-pin","category":"Devices","tags":[],"variants":{"outline":"f8b8"}},"device-mobile-plus":{"name":"device-mobile-plus","category":"Devices","tags":[],"variants":{"outline":"f8b9"}},"device-mobile-question":{"name":"device-mobile-question","category":"Devices","tags":[],"variants":{"outline":"f8ba"}},"device-mobile-rotated":{"name":"device-mobile-rotated","category":"Devices","tags":["iphone","phone","smartphone","cellphone"],"variants":{"outline":"ecdb"}},"device-mobile-search":{"name":"device-mobile-search","category":"Devices","tags":[],"variants":{"outline":"f8bb"}},"device-mobile-share":{"name":"device-mobile-share","category":"Devices","tags":[],"variants":{"outline":"f8bc"}},"device-mobile-star":{"name":"device-mobile-star","category":"Devices","tags":[],"variants":{"outline":"f8bd"}},"device-mobile-up":{"name":"device-mobile-up","category":"Devices","tags":[],"variants":{"outline":"f8be"}},"device-mobile-vibration":{"name":"device-mobile-vibration","category":"Devices","tags":["iphone","phone","smartphone","cellphone"],"variants":{"outline":"eb86"}},"device-mobile-x":{"name":"device-mobile-x","category":"Devices","tags":[],"variants":{"outline":"f8bf"}},"device-mobile":{"name":"device-mobile","category":"Devices","tags":["iphone","phone","smartphone","cellphone"],"variants":{"outline":"ea8a","filled":"fa39"}},"device-nintendo-off":{"name":"device-nintendo-off","category":"Devices","tags":["gamepad","technology","game","console","controller"],"variants":{"outline":"f111"}},"device-nintendo":{"name":"device-nintendo","category":"Devices","tags":["gamepad","technology","game","console","controller"],"variants":{"outline":"f026"}},"device-projector":{"name":"device-projector","category":"","tags":[],"variants":{"outline":"fc11"}},"device-remote":{"name":"device-remote","category":"Devices","tags":["control","tv","home","television"],"variants":{"outline":"f792"}},"device-sd-card":{"name":"device-sd-card","category":"Devices","tags":["memory","storage","technology","data"],"variants":{"outline":"f384"}},"device-sim-1":{"name":"device-sim-1","category":"Devices","tags":["card","phone","mobile","smartphone"],"variants":{"outline":"f4af"}},"device-sim-2":{"name":"device-sim-2","category":"Devices","tags":["card","phone","mobile","smartphone"],"variants":{"outline":"f4b0"}},"device-sim-3":{"name":"device-sim-3","category":"Devices","tags":["card","phone","mobile","smartphone"],"variants":{"outline":"f4b1"}},"device-sim":{"name":"device-sim","category":"Devices","tags":["card","phone","mobile","smartphone"],"variants":{"outline":"f4b2"}},"device-speaker-off":{"name":"device-speaker-off","category":"Devices","tags":["sound","music","loud","audio","media"],"variants":{"outline":"f112"}},"device-speaker":{"name":"device-speaker","category":"Devices","tags":["sound","music","loud","audio","media"],"variants":{"outline":"ea8b"}},"device-tablet-bolt":{"name":"device-tablet-bolt","category":"Devices","tags":[],"variants":{"outline":"f8c0"}},"device-tablet-cancel":{"name":"device-tablet-cancel","category":"Devices","tags":[],"variants":{"outline":"f8c1"}},"device-tablet-check":{"name":"device-tablet-check","category":"Devices","tags":[],"variants":{"outline":"f8c2"}},"device-tablet-code":{"name":"device-tablet-code","category":"Devices","tags":[],"variants":{"outline":"f8c3"}},"device-tablet-cog":{"name":"device-tablet-cog","category":"Devices","tags":[],"variants":{"outline":"f8c4"}},"device-tablet-dollar":{"name":"device-tablet-dollar","category":"Devices","tags":[],"variants":{"outline":"f8c5"}},"device-tablet-down":{"name":"device-tablet-down","category":"Devices","tags":[],"variants":{"outline":"f8c6"}},"device-tablet-exclamation":{"name":"device-tablet-exclamation","category":"Devices","tags":[],"variants":{"outline":"f8c7"}},"device-tablet-heart":{"name":"device-tablet-heart","category":"Devices","tags":[],"variants":{"outline":"f8c8"}},"device-tablet-minus":{"name":"device-tablet-minus","category":"Devices","tags":[],"variants":{"outline":"f8c9"}},"device-tablet-off":{"name":"device-tablet-off","category":"Devices","tags":["ipad","mobile","touchscreen","portable"],"variants":{"outline":"f063"}},"device-tablet-pause":{"name":"device-tablet-pause","category":"Devices","tags":[],"variants":{"outline":"f8ca"}},"device-tablet-pin":{"name":"device-tablet-pin","category":"Devices","tags":[],"variants":{"outline":"f8cb"}},"device-tablet-plus":{"name":"device-tablet-plus","category":"Devices","tags":[],"variants":{"outline":"f8cc"}},"device-tablet-question":{"name":"device-tablet-question","category":"Devices","tags":[],"variants":{"outline":"f8cd"}},"device-tablet-search":{"name":"device-tablet-search","category":"Devices","tags":[],"variants":{"outline":"f8ce"}},"device-tablet-share":{"name":"device-tablet-share","category":"Devices","tags":[],"variants":{"outline":"f8cf"}},"device-tablet-star":{"name":"device-tablet-star","category":"Devices","tags":[],"variants":{"outline":"f8d0"}},"device-tablet-up":{"name":"device-tablet-up","category":"Devices","tags":[],"variants":{"outline":"f8d1"}},"device-tablet-x":{"name":"device-tablet-x","category":"Devices","tags":[],"variants":{"outline":"f8d2"}},"device-tablet":{"name":"device-tablet","category":"Devices","tags":["ipad","mobile","touchscreen","portable"],"variants":{"outline":"ea8c","filled":"fa3a"}},"device-tv-off":{"name":"device-tv-off","category":"Devices","tags":["screen","display","movie","film","watch","audio","video","media"],"variants":{"outline":"f064"}},"device-tv-old":{"name":"device-tv-old","category":"Devices","tags":["film","watch","audio","video","media","retro","antenna"],"variants":{"outline":"f1d3"}},"device-tv":{"name":"device-tv","category":"Devices","tags":["screen","display","movie","film","watch","audio","video","media"],"variants":{"outline":"ea8d"}},"device-unknown":{"name":"device-unknown","category":"","tags":[],"variants":{"outline":"fef4"}},"device-usb":{"name":"device-usb","category":"Devices","tags":[],"variants":{"outline":"fc59"}},"device-vision-pro":{"name":"device-vision-pro","category":"Devices","tags":[],"variants":{"outline":"fae7"}},"device-watch-bolt":{"name":"device-watch-bolt","category":"Devices","tags":[],"variants":{"outline":"f8d3"}},"device-watch-cancel":{"name":"device-watch-cancel","category":"Devices","tags":[],"variants":{"outline":"f8d4"}},"device-watch-check":{"name":"device-watch-check","category":"Devices","tags":[],"variants":{"outline":"f8d5"}},"device-watch-code":{"name":"device-watch-code","category":"Devices","tags":[],"variants":{"outline":"f8d6"}},"device-watch-cog":{"name":"device-watch-cog","category":"Devices","tags":[],"variants":{"outline":"f8d7"}},"device-watch-dollar":{"name":"device-watch-dollar","category":"Devices","tags":[],"variants":{"outline":"f8d8"}},"device-watch-down":{"name":"device-watch-down","category":"Devices","tags":[],"variants":{"outline":"f8d9"}},"device-watch-exclamation":{"name":"device-watch-exclamation","category":"Devices","tags":[],"variants":{"outline":"f8da"}},"device-watch-heart":{"name":"device-watch-heart","category":"Devices","tags":[],"variants":{"outline":"f8db"}},"device-watch-minus":{"name":"device-watch-minus","category":"Devices","tags":[],"variants":{"outline":"f8dc"}},"device-watch-off":{"name":"device-watch-off","category":"Devices","tags":["arm","hour","date","minutes","sec.","timer"],"variants":{"outline":"f065"}},"device-watch-pause":{"name":"device-watch-pause","category":"Devices","tags":[],"variants":{"outline":"f8dd"}},"device-watch-pin":{"name":"device-watch-pin","category":"Devices","tags":[],"variants":{"outline":"f8de"}},"device-watch-plus":{"name":"device-watch-plus","category":"Devices","tags":[],"variants":{"outline":"f8df"}},"device-watch-question":{"name":"device-watch-question","category":"Devices","tags":[],"variants":{"outline":"f8e0"}},"device-watch-search":{"name":"device-watch-search","category":"Devices","tags":[],"variants":{"outline":"f8e1"}},"device-watch-share":{"name":"device-watch-share","category":"Devices","tags":[],"variants":{"outline":"f8e2"}},"device-watch-star":{"name":"device-watch-star","category":"Devices","tags":[],"variants":{"outline":"f8e3"}},"device-watch-stats-2":{"name":"device-watch-stats-2","category":"Devices","tags":["steps","pulse","hour","date"],"variants":{"outline":"ef7c"}},"device-watch-stats":{"name":"device-watch-stats","category":"Devices","tags":["steps","pulse","hour","date"],"variants":{"outline":"ef7d"}},"device-watch-up":{"name":"device-watch-up","category":"Devices","tags":[],"variants":{"outline":"f8e4"}},"device-watch-x":{"name":"device-watch-x","category":"Devices","tags":[],"variants":{"outline":"f8e5"}},"device-watch":{"name":"device-watch","category":"Devices","tags":["arm","hour","date","minutes","sec.","timer"],"variants":{"outline":"ebf9"}},"devices-2":{"name":"devices-2","category":"Devices","tags":["computer","monitor","keyboard"],"variants":{"outline":"ed29"}},"devices-bolt":{"name":"devices-bolt","category":"Devices","tags":[],"variants":{"outline":"f8e6"}},"devices-cancel":{"name":"devices-cancel","category":"Devices","tags":[],"variants":{"outline":"f8e7"}},"devices-check":{"name":"devices-check","category":"Devices","tags":[],"variants":{"outline":"f8e8"}},"devices-code":{"name":"devices-code","category":"Devices","tags":[],"variants":{"outline":"f8e9"}},"devices-cog":{"name":"devices-cog","category":"Devices","tags":[],"variants":{"outline":"f8ea"}},"devices-dollar":{"name":"devices-dollar","category":"Devices","tags":[],"variants":{"outline":"f8eb"}},"devices-down":{"name":"devices-down","category":"Devices","tags":[],"variants":{"outline":"f8ec"}},"devices-exclamation":{"name":"devices-exclamation","category":"Devices","tags":[],"variants":{"outline":"f8ed"}},"devices-heart":{"name":"devices-heart","category":"Devices","tags":[],"variants":{"outline":"f8ee"}},"devices-minus":{"name":"devices-minus","category":"Devices","tags":[],"variants":{"outline":"f8ef"}},"devices-off":{"name":"devices-off","category":"Devices","tags":["computer","laptop","notebook","tablet","phone","mobile","mac","iphone"],"variants":{"outline":"f3e4"}},"devices-pause":{"name":"devices-pause","category":"Devices","tags":[],"variants":{"outline":"f8f0"}},"devices-pc-off":{"name":"devices-pc-off","category":"Devices","tags":["computer","monitor","keyboard"],"variants":{"outline":"f113"}},"devices-pc":{"name":"devices-pc","category":"Devices","tags":["computer","monitor","keyboard"],"variants":{"outline":"ee7a"}},"devices-pin":{"name":"devices-pin","category":"Devices","tags":[],"variants":{"outline":"f8f1"}},"devices-plus":{"name":"devices-plus","category":"Devices","tags":[],"variants":{"outline":"f8f2"}},"devices-question":{"name":"devices-question","category":"Devices","tags":[],"variants":{"outline":"f8f3"}},"devices-search":{"name":"devices-search","category":"Devices","tags":[],"variants":{"outline":"f8f4"}},"devices-share":{"name":"devices-share","category":"Devices","tags":[],"variants":{"outline":"f8f5"}},"devices-star":{"name":"devices-star","category":"Devices","tags":[],"variants":{"outline":"f8f6"}},"devices-up":{"name":"devices-up","category":"Devices","tags":[],"variants":{"outline":"f8f7"}},"devices-x":{"name":"devices-x","category":"Devices","tags":[],"variants":{"outline":"f8f8"}},"devices":{"name":"devices","category":"Devices","tags":["computer","laptop","notebook","tablet","phone","mobile","mac","iphone"],"variants":{"outline":"eb87"}},"diabolo-off":{"name":"diabolo-off","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fa9a"}},"diabolo-plus":{"name":"diabolo-plus","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fa9b"}},"diabolo":{"name":"diabolo","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fa9c"}},"dialpad-off":{"name":"dialpad-off","category":"Devices","tags":["keypad","telephone","phone","call","number"],"variants":{"outline":"f114"}},"dialpad":{"name":"dialpad","category":"Devices","tags":["keypad","telephone","phone","call","number"],"variants":{"outline":"f067","filled":"fa3b"}},"diamond-off":{"name":"diamond-off","category":"","tags":["jewellery","crystal","mineral","jewelry","ring"],"variants":{"outline":"f115"}},"diamond":{"name":"diamond","category":"","tags":["jewellery","crystal","mineral","jewelry","ring"],"variants":{"outline":"eb65","filled":"f73d"}},"diamonds":{"name":"diamonds","category":"Shapes","tags":["gambling","game","casino","cards","poker"],"variants":{"outline":"eff5","filled":"f676"}},"dice-1":{"name":"dice-1","category":"Games","tags":["game","boardgame","roll","throw","cube","numbers","gambling"],"variants":{"outline":"f08b","filled":"f73e"}},"dice-2":{"name":"dice-2","category":"Games","tags":["game","boardgame","roll","throw","cube","numbers","gambling"],"variants":{"outline":"f08c","filled":"f73f"}},"dice-3":{"name":"dice-3","category":"Games","tags":["game","boardgame","roll","throw","cube","numbers","gambling"],"variants":{"outline":"f08d","filled":"f740"}},"dice-4":{"name":"dice-4","category":"Games","tags":["game","boardgame","roll","throw","cube","numbers","gambling"],"variants":{"outline":"f08e","filled":"f741"}},"dice-5":{"name":"dice-5","category":"Games","tags":["game","boardgame","roll","throw","cube","numbers","gambling"],"variants":{"outline":"f08f","filled":"f742"}},"dice-6":{"name":"dice-6","category":"Games","tags":["game","boardgame","roll","throw","cube","numbers","gambling"],"variants":{"outline":"f090","filled":"f743"}},"dice":{"name":"dice","category":"Games","tags":["game","boardgame","roll","throw","cube","numbers","gambling"],"variants":{"outline":"eb66","filled":"f744"}},"dimensions":{"name":"dimensions","category":"Design","tags":["width","height","size","breadth","depth"],"variants":{"outline":"ee7b"}},"direction-arrows":{"name":"direction-arrows","category":"","tags":["arrows","directional","navigate","wayfinding","pointing","route","orientation","arrow-sign","guidance","direction"],"variants":{"outline":"fd36"}},"direction-horizontal":{"name":"direction-horizontal","category":"","tags":["travel","navigation discover","plane"],"variants":{"outline":"ebfa"}},"direction-sign-off":{"name":"direction-sign-off","category":"","tags":["arrow","navigation","forward","right"],"variants":{"outline":"f3e5"}},"direction-sign":{"name":"direction-sign","category":"","tags":["arrow","navigation","forward","right"],"variants":{"outline":"f1f7","filled":"f745"}},"direction":{"name":"direction","category":"","tags":["travel","navigation discover"],"variants":{"outline":"ebfb"}},"directions-off":{"name":"directions-off","category":"Map","tags":["travel","navigation","discover"],"variants":{"outline":"f116"}},"directions":{"name":"directions","category":"Map","tags":["travel","navigation","discover"],"variants":{"outline":"ea8e"}},"disabled-2":{"name":"disabled-2","category":"Health","tags":["wheelchair","accessible","handicapped"],"variants":{"outline":"ebaf"}},"disabled-off":{"name":"disabled-off","category":"Health","tags":["wheelchair","handicapped"],"variants":{"outline":"f117"}},"disabled":{"name":"disabled","category":"Health","tags":["wheelchair","handicapped"],"variants":{"outline":"ea8f"}},"disc-golf":{"name":"disc-golf","category":"Sport","tags":["frisbee","throw","sport","activity"],"variants":{"outline":"f385"}},"disc-off":{"name":"disc-off","category":"Devices","tags":["cd","music","album"],"variants":{"outline":"f118"}},"disc":{"name":"disc","category":"Devices","tags":["cd","music","album"],"variants":{"outline":"ea90"}},"discount-off":{"name":"discount-off","category":"E-commerce","tags":["sale","reduction","price","cost","money","shopping","bargain"],"variants":{"outline":"f3e7"}},"discount":{"name":"discount","category":"E-commerce","tags":["sale","reduction","price","cost","money","shopping","bargain"],"variants":{"outline":"ebbd"}},"divide":{"name":"divide","category":"Math","tags":["separate","element","multiple","apart","separator","parts"],"variants":{"outline":"ed5c"}},"dna-2-off":{"name":"dna-2-off","category":"Health","tags":["genetics","biology","chain","genetic","code","virus","organism"],"variants":{"outline":"f119"}},"dna-2":{"name":"dna-2","category":"Health","tags":["genetics","biology","chain","genetic","code","virus","organism"],"variants":{"outline":"ef5c"}},"dna-off":{"name":"dna-off","category":"Health","tags":["genetics","biology","chain","genetic","code","virus","organism"],"variants":{"outline":"f11a"}},"dna":{"name":"dna","category":"Health","tags":["genetics","biology","chain","genetic","code","virus","organism"],"variants":{"outline":"ee7d"}},"dog-bowl":{"name":"dog-bowl","category":"Food","tags":["pet","food","animal","bone"],"variants":{"outline":"ef29"}},"dog":{"name":"dog","category":"Animals","tags":["pet","animal","cute","bone","home","puppy"],"variants":{"outline":"f660"}},"door-enter":{"name":"door-enter","category":"","tags":["entrance","open","in","entry"],"variants":{"outline":"ef4c"}},"door-exit":{"name":"door-exit","category":"","tags":["out","close","leave"],"variants":{"outline":"ef4d"}},"door-off":{"name":"door-off","category":"","tags":["entrance","home","house","room"],"variants":{"outline":"f11b"}},"door":{"name":"door","category":"","tags":["entrance","home","house","room"],"variants":{"outline":"ef4e"}},"dots-circle-horizontal":{"name":"dots-circle-horizontal","category":"System","tags":["more","options"],"variants":{"outline":"ea91"}},"dots-diagonal-2":{"name":"dots-diagonal-2","category":"System","tags":["hellip","more","ellipsis"],"variants":{"outline":"ea92"}},"dots-diagonal":{"name":"dots-diagonal","category":"System","tags":["hellip","more","ellipsis"],"variants":{"outline":"ea93"}},"dots-vertical":{"name":"dots-vertical","category":"System","tags":["hellip","more","ellipsis"],"variants":{"outline":"ea94"}},"dots":{"name":"dots","category":"System","tags":["hellip","more","ellipsis"],"variants":{"outline":"ea95"}},"download-off":{"name":"download-off","category":"Arrows","tags":["save","arrow"],"variants":{"outline":"f11c"}},"download":{"name":"download","category":"Arrows","tags":["save","arrow"],"variants":{"outline":"ea96"}},"drag-drop-2":{"name":"drag-drop-2","category":"Design","tags":["location","gesture","move"],"variants":{"outline":"eb88"}},"drag-drop":{"name":"drag-drop","category":"Design","tags":["location","gesture","move"],"variants":{"outline":"eb89"}},"drone-off":{"name":"drone-off","category":"Vehicles","tags":["device","fly","aircraft","surveillance","control","autonomous"],"variants":{"outline":"ee7e"}},"drone":{"name":"drone","category":"Vehicles","tags":["device","fly","aircraft","surveillance","control","autonomous"],"variants":{"outline":"ed79"}},"drop-circle":{"name":"drop-circle","category":"","tags":["water","rain","droplet","oil"],"variants":{"outline":"efde"}},"droplet-bolt":{"name":"droplet-bolt","category":"Design","tags":[],"variants":{"outline":"f8f9"}},"droplet-cancel":{"name":"droplet-cancel","category":"Design","tags":[],"variants":{"outline":"f8fa"}},"droplet-check":{"name":"droplet-check","category":"Design","tags":[],"variants":{"outline":"f8fb"}},"droplet-code":{"name":"droplet-code","category":"Design","tags":[],"variants":{"outline":"f8fc"}},"droplet-cog":{"name":"droplet-cog","category":"Design","tags":[],"variants":{"outline":"f8fd"}},"droplet-dollar":{"name":"droplet-dollar","category":"Design","tags":[],"variants":{"outline":"f8fe"}},"droplet-down":{"name":"droplet-down","category":"Design","tags":[],"variants":{"outline":"f8ff"}},"droplet-exclamation":{"name":"droplet-exclamation","category":"Design","tags":[],"variants":{"outline":"f900"}},"droplet-half-2":{"name":"droplet-half-2","category":"Design","tags":["water","rain","liquid","fill"],"variants":{"outline":"ee81","filled":"fb6c"}},"droplet-half":{"name":"droplet-half","category":"Design","tags":["water","rain","liquid","fill"],"variants":{"outline":"ee82","filled":"f6c5"}},"droplet-heart":{"name":"droplet-heart","category":"Design","tags":[],"variants":{"outline":"f901"}},"droplet-minus":{"name":"droplet-minus","category":"Design","tags":[],"variants":{"outline":"f902"}},"droplet-off":{"name":"droplet-off","category":"Design","tags":["water","rain","liquid"],"variants":{"outline":"ee83"}},"droplet-pause":{"name":"droplet-pause","category":"Design","tags":[],"variants":{"outline":"f903"}},"droplet-pin":{"name":"droplet-pin","category":"Design","tags":[],"variants":{"outline":"f904"}},"droplet-plus":{"name":"droplet-plus","category":"Design","tags":[],"variants":{"outline":"f905"}},"droplet-question":{"name":"droplet-question","category":"Design","tags":[],"variants":{"outline":"f906"}},"droplet-search":{"name":"droplet-search","category":"Design","tags":[],"variants":{"outline":"f907"}},"droplet-share":{"name":"droplet-share","category":"Design","tags":[],"variants":{"outline":"f908"}},"droplet-star":{"name":"droplet-star","category":"Design","tags":[],"variants":{"outline":"f909"}},"droplet-up":{"name":"droplet-up","category":"Design","tags":[],"variants":{"outline":"f90a"}},"droplet-x":{"name":"droplet-x","category":"Design","tags":[],"variants":{"outline":"f90b"}},"droplet":{"name":"droplet","category":"Design","tags":["water","rain","liquid"],"variants":{"outline":"ea97","filled":"ee80"}},"droplets":{"name":"droplets","category":"","tags":[],"variants":{"outline":"fc12"}},"dual-screen":{"name":"dual-screen","category":"Devices","tags":[],"variants":{"outline":"fa59"}},"dumpling":{"name":"dumpling","category":"Food","tags":["food","chinese","asian","meal","snack","dough","meat","vegetable","steamed","boiled","fried","cuisine","traditional","delicious","tasty"],"variants":{"outline":"feb5"}},"e-passport":{"name":"e-passport","category":"E-commerce","tags":["id","online","mobile","app","travel"],"variants":{"outline":"f4df"}},"ear-off":{"name":"ear-off","category":"Health","tags":["sound","listen","music","hear","loud","speakers"],"variants":{"outline":"ee84"}},"ear-scan":{"name":"ear-scan","category":"","tags":["ear","scan","audiology","hearing-test","ear-exam","medical","healthcare","ear-scan","diagnosis","hearing-health"],"variants":{"outline":"fd57"}},"ear":{"name":"ear","category":"Health","tags":["sound","listen","music","hear","loud","speakers"],"variants":{"outline":"ebce"}},"ease-in-control-point":{"name":"ease-in-control-point","category":"Design","tags":["animation","graph","curve","function"],"variants":{"outline":"f570"}},"ease-in-out-control-points":{"name":"ease-in-out-control-points","category":"Design","tags":["animation","graph","curve","function"],"variants":{"outline":"f571"}},"ease-in-out":{"name":"ease-in-out","category":"Design","tags":["animation","graph","curve","function"],"variants":{"outline":"f572"}},"ease-in":{"name":"ease-in","category":"Design","tags":["animation","graph","curve","function"],"variants":{"outline":"f573"}},"ease-out-control-point":{"name":"ease-out-control-point","category":"Design","tags":["animation","graph","curve","function"],"variants":{"outline":"f574"}},"ease-out":{"name":"ease-out","category":"Design","tags":["animation","graph","curve","function"],"variants":{"outline":"f575"}},"edit-circle-off":{"name":"edit-circle-off","category":"Design","tags":["pencil","change","update"],"variants":{"outline":"f11d"}},"edit-circle":{"name":"edit-circle","category":"Design","tags":["pencil","change","update"],"variants":{"outline":"ee85"}},"edit-off":{"name":"edit-off","category":"Design","tags":["pencil","change","update"],"variants":{"outline":"f11e"}},"edit":{"name":"edit","category":"Design","tags":["pencil","change","update"],"variants":{"outline":"ea98"}},"egg-cracked":{"name":"egg-cracked","category":"Food","tags":["breaking","broken","food","breakfast"],"variants":{"outline":"f2d6"}},"egg-fried":{"name":"egg-fried","category":"Food","tags":["food","breakfast","cooking","kitchen"],"variants":{"outline":"f386"}},"egg-off":{"name":"egg-off","category":"Food","tags":["food","easter","chicken"],"variants":{"outline":"f11f"}},"egg":{"name":"egg","category":"Food","tags":["food","easter","chicken"],"variants":{"outline":"eb8a","filled":"f678"}},"eggs":{"name":"eggs","category":"Food","tags":["food","chicken","easter"],"variants":{"outline":"f500"}},"elevator-off":{"name":"elevator-off","category":"","tags":["hotel","up","down","service","door","lift"],"variants":{"outline":"f3e8"}},"elevator":{"name":"elevator","category":"","tags":["hotel","up","down","service","door","lift"],"variants":{"outline":"efdf"}},"emergency-bed":{"name":"emergency-bed","category":"Health","tags":["hospital","medical","patient","medicine"],"variants":{"outline":"ef5d"}},"empathize-off":{"name":"empathize-off","category":"Health","tags":["pepole","understund","thinking","care"],"variants":{"outline":"f3e9"}},"empathize":{"name":"empathize","category":"Health","tags":["pepole","understund","thinking","care"],"variants":{"outline":"f29b"}},"emphasis":{"name":"emphasis","category":"Text","tags":["highlight","priority","stress"],"variants":{"outline":"ebcf"}},"engine-off":{"name":"engine-off","category":"Vehicles","tags":["car","motor","automotive","dashboard"],"variants":{"outline":"f120"}},"engine":{"name":"engine","category":"Vehicles","tags":["car","motor","automotive","dashboard"],"variants":{"outline":"ef7e"}},"equal-double":{"name":"equal-double","category":"Math","tags":["coding","programming","code","sign"],"variants":{"outline":"f4e1"}},"equal-not":{"name":"equal-not","category":"Math","tags":["maths","mathematics","equation","different","value"],"variants":{"outline":"ee86"}},"equal":{"name":"equal","category":"Math","tags":["maths","mathematics","equation","same","value"],"variants":{"outline":"ee87"}},"eraser-off":{"name":"eraser-off","category":"Text","tags":["delete","remove","eliminate","wipe-out"],"variants":{"outline":"f121"}},"eraser":{"name":"eraser","category":"Text","tags":["delete","remove","eliminate","wipe-out"],"variants":{"outline":"eb8b"}},"error-404-off":{"name":"error-404-off","category":"Computers","tags":["web","page","not","found","message"],"variants":{"outline":"f122"}},"error-404":{"name":"error-404","category":"Computers","tags":["web","page","not","found","message"],"variants":{"outline":"f027"}},"escalator-down":{"name":"escalator-down","category":"Map","tags":[],"variants":{"outline":"fb04"}},"escalator-up":{"name":"escalator-up","category":"Map","tags":[],"variants":{"outline":"fb05"}},"escalator":{"name":"escalator","category":"Map","tags":[],"variants":{"outline":"fb06"}},"exchange-off":{"name":"exchange-off","category":"","tags":["cantor","money","product","student"],"variants":{"outline":"f123"}},"exchange":{"name":"exchange","category":"","tags":["cantor","money","product","student"],"variants":{"outline":"ebe7"}},"exclamation-circle":{"name":"exclamation-circle","category":"","tags":["warning","error","shape","caution","alert"],"variants":{"outline":"f634","filled":"ff62"}},"exclamation-mark-off":{"name":"exclamation-mark-off","category":"","tags":["warning","caution","alert","danger","!"],"variants":{"outline":"f124"}},"exclamation-mark":{"name":"exclamation-mark","category":"","tags":["warning","caution","alert","danger","!"],"variants":{"outline":"efb4"}},"explicit-off":{"name":"explicit-off","category":"","tags":["adult","content","xxx","curse","words","porn"],"variants":{"outline":"f3ea"}},"explicit":{"name":"explicit","category":"","tags":["adult","content","xxx","curse","words","porn"],"variants":{"outline":"f256"}},"exposure-0":{"name":"exposure-0","category":"Photography","tags":["digit","math","number","evaluation"],"variants":{"outline":"f29c"}},"exposure-minus-1":{"name":"exposure-minus-1","category":"Photography","tags":["digit","math","number","evaluation"],"variants":{"outline":"f29d"}},"exposure-minus-2":{"name":"exposure-minus-2","category":"Photography","tags":["digit","math","number","evaluation"],"variants":{"outline":"f29e"}},"exposure-off":{"name":"exposure-off","category":"Photography","tags":["light","bright","dark","camera"],"variants":{"outline":"f3eb"}},"exposure-plus-1":{"name":"exposure-plus-1","category":"Photography","tags":["digit","math","number","evaluation"],"variants":{"outline":"f29f"}},"exposure-plus-2":{"name":"exposure-plus-2","category":"Photography","tags":["digit","math","number","evaluation"],"variants":{"outline":"f2a0"}},"exposure":{"name":"exposure","category":"Photography","tags":["light","bright","dark","camera"],"variants":{"outline":"eb8c"}},"external-link-off":{"name":"external-link-off","category":"System","tags":["connection","outbound","redirect"],"variants":{"outline":"f125"}},"external-link":{"name":"external-link","category":"System","tags":["connection","outbound","redirect"],"variants":{"outline":"ea99"}},"eye-bitcoin":{"name":"eye-bitcoin","category":"","tags":[],"variants":{"outline":"ff3d"}},"eye-bolt":{"name":"eye-bolt","category":"","tags":[],"variants":{"outline":"fb6d"}},"eye-cancel":{"name":"eye-cancel","category":"","tags":[],"variants":{"outline":"fb6e"}},"eye-check":{"name":"eye-check","category":"System","tags":["sight","visual","view","public","approve"],"variants":{"outline":"ee88"}},"eye-closed":{"name":"eye-closed","category":"System","tags":[],"variants":{"outline":"f7ec"}},"eye-code":{"name":"eye-code","category":"","tags":[],"variants":{"outline":"fb6f"}},"eye-cog":{"name":"eye-cog","category":"System","tags":[],"variants":{"outline":"f7ed"}},"eye-discount":{"name":"eye-discount","category":"","tags":[],"variants":{"outline":"fb70"}},"eye-dollar":{"name":"eye-dollar","category":"","tags":[],"variants":{"outline":"fb71"}},"eye-dotted":{"name":"eye-dotted","category":"","tags":[],"variants":{"outline":"fead"}},"eye-down":{"name":"eye-down","category":"","tags":[],"variants":{"outline":"fb72"}},"eye-edit":{"name":"eye-edit","category":"System","tags":[],"variants":{"outline":"f7ee"}},"eye-exclamation":{"name":"eye-exclamation","category":"System","tags":[],"variants":{"outline":"f7ef"}},"eye-heart":{"name":"eye-heart","category":"System","tags":[],"variants":{"outline":"f7f0"}},"eye-minus":{"name":"eye-minus","category":"","tags":[],"variants":{"outline":"fb73"}},"eye-off":{"name":"eye-off","category":"System","tags":["view","watch"],"variants":{"outline":"ecf0"}},"eye-pause":{"name":"eye-pause","category":"","tags":[],"variants":{"outline":"fb74"}},"eye-pin":{"name":"eye-pin","category":"","tags":[],"variants":{"outline":"fb75"}},"eye-plus":{"name":"eye-plus","category":"","tags":[],"variants":{"outline":"fb76"}},"eye-question":{"name":"eye-question","category":"","tags":[],"variants":{"outline":"fb77"}},"eye-search":{"name":"eye-search","category":"","tags":[],"variants":{"outline":"fb78"}},"eye-share":{"name":"eye-share","category":"","tags":[],"variants":{"outline":"fb79"}},"eye-star":{"name":"eye-star","category":"","tags":[],"variants":{"outline":"fb7a"}},"eye-table":{"name":"eye-table","category":"Health","tags":["vision","sight","text","ophthalmology","disease"],"variants":{"outline":"ef5e"}},"eye-up":{"name":"eye-up","category":"","tags":[],"variants":{"outline":"fb7b"}},"eye-x":{"name":"eye-x","category":"System","tags":[],"variants":{"outline":"f7f1"}},"eye":{"name":"eye","category":"System","tags":["view","watch"],"variants":{"outline":"ea9a","filled":"f679"}},"eyeglass-2":{"name":"eyeglass-2","category":"Health","tags":["sight","defect","see","vision","frames","lenses","visually","impaired","myopia","far-sighted"],"variants":{"outline":"ee89"}},"eyeglass-off":{"name":"eyeglass-off","category":"Health","tags":["sight","defect","see","vision","frames","lenses","visually","impaired","myopia","far-sighted"],"variants":{"outline":"f126"}},"eyeglass":{"name":"eyeglass","category":"Health","tags":["sight","defect","see","vision","frames","lenses","visually","impaired","myopia","far-sighted"],"variants":{"outline":"ee8a"}},"face-id-error":{"name":"face-id-error","category":"","tags":["scan","apple","iphone","ipad"],"variants":{"outline":"efa7"}},"face-id":{"name":"face-id","category":"","tags":["apple","iphone","ipad"],"variants":{"outline":"ea9b"}},"face-mask-off":{"name":"face-mask-off","category":"Health","tags":["coronavirus","virus","medical","hospital","doctor"],"variants":{"outline":"f127"}},"face-mask":{"name":"face-mask","category":"Health","tags":["coronavirus","virus","medical","hospital","doctor"],"variants":{"outline":"efb5"}},"fall":{"name":"fall","category":"Health","tags":["collapse","damage","cliff","height"],"variants":{"outline":"ecb9"}},"favicon":{"name":"favicon","category":"Design","tags":[],"variants":{"outline":"fd65"}},"feather-off":{"name":"feather-off","category":"Nature","tags":["bird","animal","nature"],"variants":{"outline":"f128"}},"feather":{"name":"feather","category":"Nature","tags":["bird","animal","nature"],"variants":{"outline":"ee8b"}},"fence-off":{"name":"fence-off","category":"Buildings","tags":["garden","home","house","farm","wood","barrier"],"variants":{"outline":"f129"}},"fence":{"name":"fence","category":"Buildings","tags":["garden","home","house","farm","wood","barrier"],"variants":{"outline":"ef2a"}},"fidget-spinner":{"name":"fidget-spinner","category":"","tags":["toy","spinning","gadget","kids","children","loader","loading"],"variants":{"outline":"f068"}},"file-3d":{"name":"file-3d","category":"Document","tags":["model","document"],"variants":{"outline":"f032"}},"file-alert":{"name":"file-alert","category":"Document","tags":["danger","risk","warning","check","caution","document","error"],"variants":{"outline":"ede6"}},"file-analytics":{"name":"file-analytics","category":"Document","tags":["data","statistics","report","chart","document","paper"],"variants":{"outline":"ede7"}},"file-arrow-left":{"name":"file-arrow-left","category":"Document","tags":["document","import","page","move"],"variants":{"outline":"f033"}},"file-arrow-right":{"name":"file-arrow-right","category":"Document","tags":["document","export","page","move"],"variants":{"outline":"f034"}},"file-barcode":{"name":"file-barcode","category":"Document","tags":["document","code","qr","ticket","scan"],"variants":{"outline":"f035"}},"file-broken":{"name":"file-broken","category":"Document","tags":["document","error","demaged","delete"],"variants":{"outline":"f501"}},"file-certificate":{"name":"file-certificate","category":"Document","tags":["certificate","license","diploma","document","format","data","paper"],"variants":{"outline":"ed4d"}},"file-chart":{"name":"file-chart","category":"Document","tags":["data","graph","analytics"],"variants":{"outline":"f036"}},"file-check":{"name":"file-check","category":"Document","tags":["list","document","accept","done","tick","checkmark"],"variants":{"outline":"ea9c"}},"file-code-2":{"name":"file-code-2","category":"Document","tags":["programming","document","developer","technology"],"variants":{"outline":"ede8"}},"file-code":{"name":"file-code","category":"Document","tags":["paper","new"],"variants":{"outline":"ebd0"}},"file-cv":{"name":"file-cv","category":"Document","tags":[],"variants":{"outline":"fa5a"}},"file-database":{"name":"file-database","category":"Document","tags":["data","storage","folder","format","server"],"variants":{"outline":"f037"}},"file-delta":{"name":"file-delta","category":"Document","tags":["data","document","extension","paper"],"variants":{"outline":"f53d"}},"file-description":{"name":"file-description","category":"Document","tags":["text","paper","report","details","job"],"variants":{"outline":"f028"}},"file-diff":{"name":"file-diff","category":"Document","tags":["add","create","new"],"variants":{"outline":"ecf1"}},"file-digit":{"name":"file-digit","category":"Document","tags":["boolean","binary","exe"],"variants":{"outline":"efa8"}},"file-dislike":{"name":"file-dislike","category":"Document","tags":["rejected","document"],"variants":{"outline":"ed2a"}},"file-dollar":{"name":"file-dollar","category":"Document","tags":["money","finance","invoice"],"variants":{"outline":"efe0"}},"file-dots":{"name":"file-dots","category":"Document","tags":["more","menu","info"],"variants":{"outline":"f038"}},"file-download":{"name":"file-download","category":"Document","tags":["save","transfer","input"],"variants":{"outline":"ea9d"}},"file-euro":{"name":"file-euro","category":"Document","tags":["money","finance","buisness"],"variants":{"outline":"efe1"}},"file-excel":{"name":"file-excel","category":"","tags":[],"variants":{"outline":"fef3"}},"file-export":{"name":"file-export","category":"Document","tags":["arrow","data","paper","document","format"],"variants":{"outline":"ede9"}},"file-function":{"name":"file-function","category":"Document","tags":["data","document","extension","paper"],"variants":{"outline":"f53e"}},"file-horizontal":{"name":"file-horizontal","category":"Document","tags":["paper","new"],"variants":{"outline":"ebb0"}},"file-import":{"name":"file-import","category":"Document","tags":["arrow","data","paper","document","format"],"variants":{"outline":"edea"}},"file-infinity":{"name":"file-infinity","category":"Document","tags":["document","eternity","sync","loop"],"variants":{"outline":"f502"}},"file-info":{"name":"file-info","category":"Document","tags":["info","information","informations","paper","file","document","page"],"variants":{"outline":"edec"}},"file-invoice":{"name":"file-invoice","category":"Document","tags":["accounting","bill","statement","settlement","finance"],"variants":{"outline":"eb67"}},"file-isr":{"name":"file-isr","category":"Document","tags":[],"variants":{"outline":"feac"}},"file-lambda":{"name":"file-lambda","category":"Document","tags":["data","document","extension","paper"],"variants":{"outline":"f53f"}},"file-like":{"name":"file-like","category":"Document","tags":["approved","document"],"variants":{"outline":"ed2b"}},"file-minus":{"name":"file-minus","category":"Document","tags":["remove","delete"],"variants":{"outline":"ea9e"}},"file-music":{"name":"file-music","category":"Document","tags":["mp3","wma","wav"],"variants":{"outline":"ea9f"}},"file-neutral":{"name":"file-neutral","category":"","tags":[],"variants":{"outline":"fd22"}},"file-off":{"name":"file-off","category":"Document","tags":["paper","new"],"variants":{"outline":"ecf2"}},"file-orientation":{"name":"file-orientation","category":"Document","tags":["document","arrow","change","modify","page"],"variants":{"outline":"f2a1"}},"file-pencil":{"name":"file-pencil","category":"Document","tags":["edit","write","editing","text"],"variants":{"outline":"f039"}},"file-percent":{"name":"file-percent","category":"Document","tags":["data","document","extension","paper"],"variants":{"outline":"f540"}},"file-phone":{"name":"file-phone","category":"Document","tags":["save","transfer","input"],"variants":{"outline":"ecdc"}},"file-plus":{"name":"file-plus","category":"Document","tags":["add","create","new"],"variants":{"outline":"eaa0"}},"file-power":{"name":"file-power","category":"Document","tags":["archive","energy","battery","ecology"],"variants":{"outline":"f03a"}},"file-report":{"name":"file-report","category":"Document","tags":["stats","data","paper","document","chart","format"],"variants":{"outline":"eded"}},"file-rss":{"name":"file-rss","category":"Document","tags":["extension","format","news"],"variants":{"outline":"f03b"}},"file-sad":{"name":"file-sad","category":"","tags":[],"variants":{"outline":"fd23"}},"file-scissors":{"name":"file-scissors","category":"Document","tags":["cut","cutting","tool","cutter","office"],"variants":{"outline":"f03c"}},"file-search":{"name":"file-search","category":"Document","tags":["search","data","paper","document","format"],"variants":{"outline":"ed5d"}},"file-settings":{"name":"file-settings","category":"Document","tags":["edit","options","configuration","control"],"variants":{"outline":"f029"}},"file-shredder":{"name":"file-shredder","category":"Document","tags":["shred","destroy","cut"],"variants":{"outline":"eaa1"}},"file-signal":{"name":"file-signal","category":"Document","tags":["wi-fi","connection","internet","online","connected"],"variants":{"outline":"f03d"}},"file-smile":{"name":"file-smile","category":"","tags":[],"variants":{"outline":"fd24"}},"file-spreadsheet":{"name":"file-spreadsheet","category":"Document","tags":["table","extension","excel","format"],"variants":{"outline":"f03e"}},"file-stack":{"name":"file-stack","category":"Document","tags":["document","duplicate","data","add"],"variants":{"outline":"f503"}},"file-star":{"name":"file-star","category":"Document","tags":["favourite","bookmark","like"],"variants":{"outline":"f03f"}},"file-symlink":{"name":"file-symlink","category":"Document","tags":["text","format","extension","document"],"variants":{"outline":"ed53"}},"file-text-ai":{"name":"file-text-ai","category":"Document","tags":[],"variants":{"outline":"fa27"}},"file-text":{"name":"file-text","category":"Document","tags":["data","pdf","txt"],"variants":{"outline":"eaa2"}},"file-time":{"name":"file-time","category":"Document","tags":["clock","planning","history","watch"],"variants":{"outline":"f040"}},"file-type-bmp":{"name":"file-type-bmp","category":"Document","tags":[],"variants":{"outline":"fb07"}},"file-type-css":{"name":"file-type-css","category":"Document","tags":[],"variants":{"outline":"fb08"}},"file-type-csv":{"name":"file-type-csv","category":"Document","tags":[],"variants":{"outline":"fb09"}},"file-type-doc":{"name":"file-type-doc","category":"Document","tags":[],"variants":{"outline":"fb0a"}},"file-type-docx":{"name":"file-type-docx","category":"Document","tags":[],"variants":{"outline":"fb0b"}},"file-type-html":{"name":"file-type-html","category":"Document","tags":[],"variants":{"outline":"fb0c"}},"file-type-jpg":{"name":"file-type-jpg","category":"Document","tags":[],"variants":{"outline":"fb0d"}},"file-type-js":{"name":"file-type-js","category":"Document","tags":[],"variants":{"outline":"fb0e"}},"file-type-jsx":{"name":"file-type-jsx","category":"Document","tags":[],"variants":{"outline":"fb0f"}},"file-type-pdf":{"name":"file-type-pdf","category":"Document","tags":[],"variants":{"outline":"fb10"}},"file-type-php":{"name":"file-type-php","category":"Document","tags":[],"variants":{"outline":"fb11"}},"file-type-png":{"name":"file-type-png","category":"Document","tags":[],"variants":{"outline":"fb12"}},"file-type-ppt":{"name":"file-type-ppt","category":"Document","tags":[],"variants":{"outline":"fb13"}},"file-type-rs":{"name":"file-type-rs","category":"Document","tags":[],"variants":{"outline":"fb14"}},"file-type-sql":{"name":"file-type-sql","category":"Document","tags":[],"variants":{"outline":"fb15"}},"file-type-svg":{"name":"file-type-svg","category":"Document","tags":[],"variants":{"outline":"fb16"}},"file-type-ts":{"name":"file-type-ts","category":"Document","tags":[],"variants":{"outline":"fb17"}},"file-type-tsx":{"name":"file-type-tsx","category":"Document","tags":[],"variants":{"outline":"fb18"}},"file-type-txt":{"name":"file-type-txt","category":"Document","tags":[],"variants":{"outline":"fb19"}},"file-type-vue":{"name":"file-type-vue","category":"Document","tags":[],"variants":{"outline":"fb1a"}},"file-type-xls":{"name":"file-type-xls","category":"Document","tags":[],"variants":{"outline":"fb1b"}},"file-type-xml":{"name":"file-type-xml","category":"Document","tags":[],"variants":{"outline":"fb1c"}},"file-type-zip":{"name":"file-type-zip","category":"Document","tags":[],"variants":{"outline":"fb1d"}},"file-typography":{"name":"file-typography","category":"Document","tags":["font","text","format","type","size"],"variants":{"outline":"f041"}},"file-unknown":{"name":"file-unknown","category":"Document","tags":["missing","unidentified","anonymous"],"variants":{"outline":"f042"}},"file-upload":{"name":"file-upload","category":"Document","tags":["save","transfer","input"],"variants":{"outline":"ec91"}},"file-vector":{"name":"file-vector","category":"Document","tags":["graphic","eps","format","svg"],"variants":{"outline":"f043"}},"file-word":{"name":"file-word","category":"","tags":[],"variants":{"outline":"fef2"}},"file-x":{"name":"file-x","category":"Document","tags":["remove","delete","erase"],"variants":{"outline":"eaa3","filled":"f748"}},"file-zip":{"name":"file-zip","category":"Document","tags":["forms","documents","stack","letter","archive","rar","zipped","extention","bundle","format"],"variants":{"outline":"ed4e"}},"file":{"name":"file","category":"Document","tags":["paper","new"],"variants":{"outline":"eaa4","filled":"f747"}},"files-off":{"name":"files-off","category":"Document","tags":["forms","documents","stack","letter"],"variants":{"outline":"edee"}},"files":{"name":"files","category":"Document","tags":["forms","documents","stack","letter"],"variants":{"outline":"edef"}},"filter-bolt":{"name":"filter-bolt","category":"","tags":[],"variants":{"outline":"fb7c"}},"filter-cancel":{"name":"filter-cancel","category":"","tags":[],"variants":{"outline":"fb7d"}},"filter-check":{"name":"filter-check","category":"","tags":[],"variants":{"outline":"fb7e"}},"filter-code":{"name":"filter-code","category":"","tags":[],"variants":{"outline":"fb7f"}},"filter-cog":{"name":"filter-cog","category":"System","tags":[],"variants":{"outline":"f9fe"}},"filter-discount":{"name":"filter-discount","category":"","tags":[],"variants":{"outline":"fb80"}},"filter-dollar":{"name":"filter-dollar","category":"System","tags":[],"variants":{"outline":"f9ff"}},"filter-down":{"name":"filter-down","category":"","tags":[],"variants":{"outline":"fb81"}},"filter-edit":{"name":"filter-edit","category":"System","tags":[],"variants":{"outline":"fa00"}},"filter-exclamation":{"name":"filter-exclamation","category":"","tags":[],"variants":{"outline":"fb82"}},"filter-heart":{"name":"filter-heart","category":"","tags":[],"variants":{"outline":"fb83"}},"filter-minus":{"name":"filter-minus","category":"System","tags":[],"variants":{"outline":"fa01"}},"filter-off":{"name":"filter-off","category":"System","tags":["funnel","hopper","filtration"],"variants":{"outline":"ed2c"}},"filter-pause":{"name":"filter-pause","category":"","tags":[],"variants":{"outline":"fb84"}},"filter-pin":{"name":"filter-pin","category":"","tags":[],"variants":{"outline":"fb85"}},"filter-plus":{"name":"filter-plus","category":"System","tags":[],"variants":{"outline":"fa02"}},"filter-question":{"name":"filter-question","category":"","tags":[],"variants":{"outline":"fb86"}},"filter-search":{"name":"filter-search","category":"","tags":[],"variants":{"outline":"fb87"}},"filter-share":{"name":"filter-share","category":"","tags":[],"variants":{"outline":"fb88"}},"filter-star":{"name":"filter-star","category":"System","tags":[],"variants":{"outline":"fa03"}},"filter-up":{"name":"filter-up","category":"","tags":[],"variants":{"outline":"fb89"}},"filter-x":{"name":"filter-x","category":"System","tags":[],"variants":{"outline":"fa04"}},"filter":{"name":"filter","category":"System","tags":["funnel","hopper","filtration"],"variants":{"outline":"eaa5","filled":"fc27"}},"filters":{"name":"filters","category":"","tags":["design","editing","effects"],"variants":{"outline":"f793"}},"fingerprint-off":{"name":"fingerprint-off","category":"System","tags":["indentify","mark","surface","security","access"],"variants":{"outline":"f12a"}},"fingerprint-scan":{"name":"fingerprint-scan","category":"","tags":[],"variants":{"outline":"fcb5"}},"fingerprint":{"name":"fingerprint","category":"System","tags":["indentify","mark","surface","security","access"],"variants":{"outline":"ebd1"}},"fire-extinguisher":{"name":"fire-extinguisher","category":"","tags":[],"variants":{"outline":"faf6"}},"fire-hydrant-off":{"name":"fire-hydrant-off","category":"Map","tags":["water","emergency","fireman","safety","urban"],"variants":{"outline":"f3ec"}},"fire-hydrant":{"name":"fire-hydrant","category":"Map","tags":["water","emergency","fireman","safety","urban"],"variants":{"outline":"f3a9"}},"firetruck":{"name":"firetruck","category":"Vehicles","tags":["help","rescuer","vehicle","fireman","extinguishing"],"variants":{"outline":"ebe8"}},"first-aid-kit-off":{"name":"first-aid-kit-off","category":"Health","tags":["medical","healthcare","hospital","health"],"variants":{"outline":"f3ed"}},"first-aid-kit":{"name":"first-aid-kit","category":"Health","tags":["medical","healthcare","hospital","health"],"variants":{"outline":"ef5f"}},"fish-bone":{"name":"fish-bone","category":"Animals","tags":["food","skeleton","cat","sea"],"variants":{"outline":"f287"}},"fish-christianity":{"name":"fish-christianity","category":"Symbols","tags":["religion","jesus","faith","christian"],"variants":{"outline":"f58b"}},"fish-hook-off":{"name":"fish-hook-off","category":"","tags":["fishing","bait","hanging","catch","water"],"variants":{"outline":"f3ee"}},"fish-hook":{"name":"fish-hook","category":"","tags":["fishing","bait","hanging","catch","water"],"variants":{"outline":"f1f9"}},"fish-off":{"name":"fish-off","category":"Animals","tags":["food","sea","animal","fishing","ocean","sushi"],"variants":{"outline":"f12b"}},"fish":{"name":"fish","category":"Animals","tags":["food","sea","animal","fishing","ocean","sushi"],"variants":{"outline":"ef2b"}},"flag-2-off":{"name":"flag-2-off","category":"Map","tags":["banner","pin","report","map","warning","alert"],"variants":{"outline":"f12c"}},"flag-2":{"name":"flag-2","category":"Map","tags":["banner","pin","report","map","warning","alert"],"variants":{"outline":"ee8c","filled":"f707"}},"flag-3":{"name":"flag-3","category":"Map","tags":["banner","pin","report","map","warning","alert"],"variants":{"outline":"ee8d","filled":"f708"}},"flag-bitcoin":{"name":"flag-bitcoin","category":"","tags":[],"variants":{"outline":"ff3c"}},"flag-bolt":{"name":"flag-bolt","category":"","tags":[],"variants":{"outline":"fb8a"}},"flag-cancel":{"name":"flag-cancel","category":"","tags":[],"variants":{"outline":"fb8b"}},"flag-check":{"name":"flag-check","category":"","tags":[],"variants":{"outline":"fb8c"}},"flag-code":{"name":"flag-code","category":"","tags":[],"variants":{"outline":"fb8d"}},"flag-cog":{"name":"flag-cog","category":"","tags":[],"variants":{"outline":"fb8e"}},"flag-discount":{"name":"flag-discount","category":"","tags":[],"variants":{"outline":"fb8f"}},"flag-dollar":{"name":"flag-dollar","category":"","tags":[],"variants":{"outline":"fb90"}},"flag-down":{"name":"flag-down","category":"","tags":[],"variants":{"outline":"fb91"}},"flag-exclamation":{"name":"flag-exclamation","category":"","tags":[],"variants":{"outline":"fb92"}},"flag-heart":{"name":"flag-heart","category":"","tags":[],"variants":{"outline":"fb93"}},"flag-minus":{"name":"flag-minus","category":"","tags":[],"variants":{"outline":"fb94"}},"flag-off":{"name":"flag-off","category":"Map","tags":["banner","pin","report","map","warning","alert"],"variants":{"outline":"f12d"}},"flag-pause":{"name":"flag-pause","category":"","tags":[],"variants":{"outline":"fb95"}},"flag-pin":{"name":"flag-pin","category":"","tags":[],"variants":{"outline":"fb96"}},"flag-plus":{"name":"flag-plus","category":"","tags":[],"variants":{"outline":"fb97"}},"flag-question":{"name":"flag-question","category":"","tags":[],"variants":{"outline":"fb98"}},"flag-search":{"name":"flag-search","category":"","tags":[],"variants":{"outline":"fb99"}},"flag-share":{"name":"flag-share","category":"","tags":[],"variants":{"outline":"fb9a"}},"flag-star":{"name":"flag-star","category":"","tags":[],"variants":{"outline":"fb9b"}},"flag-up":{"name":"flag-up","category":"","tags":[],"variants":{"outline":"fb9c"}},"flag-x":{"name":"flag-x","category":"","tags":[],"variants":{"outline":"fb9d"}},"flag":{"name":"flag","category":"Map","tags":["banner","pin","report","map","warning","alert"],"variants":{"outline":"eaa6","filled":"f67a"}},"flame-off":{"name":"flame-off","category":"","tags":["fire","fireplace","light","burn","bonfire","smoke","barbecue"],"variants":{"outline":"f12e"}},"flame":{"name":"flame","category":"","tags":["fire","fireplace","light","burn","bonfire","smoke","barbecue"],"variants":{"outline":"ec2c"}},"flare":{"name":"flare","category":"Weather","tags":["shine","flare","heat","sunlight","hot","sun"],"variants":{"outline":"ee8e"}},"flask-2-off":{"name":"flask-2-off","category":"Health","tags":["liquid","container","glass","chemistry","test","laboratory","experimental","beta"],"variants":{"outline":"f12f"}},"flask-2":{"name":"flask-2","category":"Health","tags":["liquid","container","glass","chemistry","test","laboratory","experimental","beta"],"variants":{"outline":"ef60","filled":"fd12"}},"flask-off":{"name":"flask-off","category":"Health","tags":["liquid","container","glass","chemistry"],"variants":{"outline":"f130"}},"flask":{"name":"flask","category":"Health","tags":["liquid","container","glass","chemistry","test","laboratory","experimental","beta"],"variants":{"outline":"ebd2","filled":"fd13"}},"flip-flops":{"name":"flip-flops","category":"","tags":["summer","sand","sandals","beach","shoes"],"variants":{"outline":"f564"}},"flip-horizontal":{"name":"flip-horizontal","category":"Design","tags":["mirror","rotate"],"variants":{"outline":"eaa7"}},"flip-vertical":{"name":"flip-vertical","category":"Design","tags":["mirror","rotate"],"variants":{"outline":"eaa8"}},"float-center":{"name":"float-center","category":"Text","tags":["position"],"variants":{"outline":"ebb1"}},"float-left":{"name":"float-left","category":"Text","tags":["position"],"variants":{"outline":"ebb2"}},"float-none":{"name":"float-none","category":"Text","tags":["position"],"variants":{"outline":"ed13"}},"float-right":{"name":"float-right","category":"Text","tags":["position"],"variants":{"outline":"ebb3"}},"flower-off":{"name":"flower-off","category":"Nature","tags":["plant","garden","rose","lotus"],"variants":{"outline":"f131"}},"flower":{"name":"flower","category":"Nature","tags":["plant","garden","rose","lotus"],"variants":{"outline":"eff6"}},"focus-2":{"name":"focus-2","category":"Photography","tags":["spotlight","attention","center","aim","target"],"variants":{"outline":"ebd3"}},"focus-auto":{"name":"focus-auto","category":"Photography","tags":[],"variants":{"outline":"fa62"}},"focus-centered":{"name":"focus-centered","category":"","tags":["filter","photo","photography","camera","image"],"variants":{"outline":"f02a"}},"focus":{"name":"focus","category":"Photography","tags":["target","bullseye","aim"],"variants":{"outline":"eb8d"}},"fold-down":{"name":"fold-down","category":"Arrows","tags":["arrow","move","toggle"],"variants":{"outline":"ed54"}},"fold-up":{"name":"fold-up","category":"Arrows","tags":["arrow","move","toggle"],"variants":{"outline":"ed55"}},"fold":{"name":"fold","category":"Arrows","tags":["arrow","move","merge"],"variants":{"outline":"ed56"}},"folder-bolt":{"name":"folder-bolt","category":"Document","tags":[],"variants":{"outline":"f90c"}},"folder-cancel":{"name":"folder-cancel","category":"Document","tags":[],"variants":{"outline":"f90d"}},"folder-check":{"name":"folder-check","category":"Document","tags":[],"variants":{"outline":"f90e"}},"folder-code":{"name":"folder-code","category":"Document","tags":[],"variants":{"outline":"f90f"}},"folder-cog":{"name":"folder-cog","category":"Document","tags":[],"variants":{"outline":"f910"}},"folder-dollar":{"name":"folder-dollar","category":"Document","tags":[],"variants":{"outline":"f911"}},"folder-down":{"name":"folder-down","category":"Document","tags":[],"variants":{"outline":"f912"}},"folder-exclamation":{"name":"folder-exclamation","category":"Document","tags":[],"variants":{"outline":"f913"}},"folder-heart":{"name":"folder-heart","category":"Document","tags":[],"variants":{"outline":"f914"}},"folder-minus":{"name":"folder-minus","category":"Document","tags":["directory","dir"],"variants":{"outline":"eaaa"}},"folder-off":{"name":"folder-off","category":"Document","tags":["cancel","no","directory","dir"],"variants":{"outline":"ed14"}},"folder-open":{"name":"folder-open","category":"","tags":[],"variants":{"outline":"faf7"}},"folder-pause":{"name":"folder-pause","category":"Document","tags":[],"variants":{"outline":"f915"}},"folder-pin":{"name":"folder-pin","category":"Document","tags":[],"variants":{"outline":"f916"}},"folder-plus":{"name":"folder-plus","category":"Document","tags":["add","create","new","directory","dir"],"variants":{"outline":"eaab"}},"folder-question":{"name":"folder-question","category":"Document","tags":[],"variants":{"outline":"f917"}},"folder-root":{"name":"folder-root","category":"","tags":[],"variants":{"outline":"fd43"}},"folder-search":{"name":"folder-search","category":"Document","tags":[],"variants":{"outline":"f918"}},"folder-share":{"name":"folder-share","category":"Document","tags":[],"variants":{"outline":"f919"}},"folder-star":{"name":"folder-star","category":"Document","tags":[],"variants":{"outline":"f91a"}},"folder-symlink":{"name":"folder-symlink","category":"","tags":[],"variants":{"outline":"f91b"}},"folder-up":{"name":"folder-up","category":"Document","tags":[],"variants":{"outline":"f91c"}},"folder-x":{"name":"folder-x","category":"Document","tags":["directory","dir"],"variants":{"outline":"eaac"}},"folder":{"name":"folder","category":"Document","tags":["cancel","no","directory","dir"],"variants":{"outline":"eaad","filled":"f749"}},"folders-off":{"name":"folders-off","category":"Document","tags":["directory","dir","clone","copy"],"variants":{"outline":"f133"}},"folders":{"name":"folders","category":"Document","tags":["directory","dir","clone","copy"],"variants":{"outline":"eaae"}},"forbid-2":{"name":"forbid-2","category":"","tags":[],"variants":{"outline":"ebd4","filled":"fc28"}},"forbid":{"name":"forbid","category":"","tags":[],"variants":{"outline":"ebd5","filled":"fc29"}},"forklift":{"name":"forklift","category":"Vehicles","tags":["store","warehouse","inventory","exporting"],"variants":{"outline":"ebe9"}},"forms":{"name":"forms","category":"Text","tags":["formbuilder","input","url","textarea"],"variants":{"outline":"ee8f"}},"fountain-off":{"name":"fountain-off","category":"Map","tags":["park","decoration","water","spring","public"],"variants":{"outline":"f134"}},"fountain":{"name":"fountain","category":"Map","tags":["park","decoration","water","spring","public"],"variants":{"outline":"f09b","filled":"fc2a"}},"frame-off":{"name":"frame-off","category":"Design","tags":["borderless","outlineless","no-border","unframed","unbordered","bare","naked","borderless-frame","no-outline","remove-frame","crop"],"variants":{"outline":"f135"}},"frame":{"name":"frame","category":"Design","tags":["border","outline","enclosure","surround","edge","boundary","perimeter","framework","structure","container","crop"],"variants":{"outline":"eaaf"}},"free-rights":{"name":"free-rights","category":"","tags":["justice","inviolability","freedom"],"variants":{"outline":"efb6"}},"freeze-column":{"name":"freeze-column","category":"Design","tags":[],"variants":{"outline":"fa63"}},"freeze-row-column":{"name":"freeze-row-column","category":"Design","tags":[],"variants":{"outline":"fa64"}},"freeze-row":{"name":"freeze-row","category":"Design","tags":[],"variants":{"outline":"fa65"}},"fridge-off":{"name":"fridge-off","category":"Devices","tags":["kitchen","cooler","control","freezer","food"],"variants":{"outline":"f3ef"}},"fridge":{"name":"fridge","category":"Devices","tags":["kitchen","cooler","control","freezer","food"],"variants":{"outline":"f1fa"}},"friends-off":{"name":"friends-off","category":"","tags":["people","boy","girl","man","woman"],"variants":{"outline":"f136"}},"friends":{"name":"friends","category":"","tags":["people","boy","girl","man","woman"],"variants":{"outline":"eab0"}},"frustum-off":{"name":"frustum-off","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fa9d"}},"frustum-plus":{"name":"frustum-plus","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fa9e"}},"frustum":{"name":"frustum","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fa9f"}},"function-off":{"name":"function-off","category":"Math","tags":["math","linear","statyscics","graph"],"variants":{"outline":"f3f0"}},"function":{"name":"function","category":"Math","tags":["math","linear","statyscics","graph"],"variants":{"outline":"f225","filled":"fc2b"}},"galaxy":{"name":"galaxy","category":"","tags":[],"variants":{"outline":"fcb6"}},"garden-cart-off":{"name":"garden-cart-off","category":"Vehicles","tags":["gardening","conctruction","wheel","wheelbarrow"],"variants":{"outline":"f3f1"}},"garden-cart":{"name":"garden-cart","category":"Vehicles","tags":["gardening","conctruction","wheel","wheelbarrow"],"variants":{"outline":"f23e"}},"gas-station-off":{"name":"gas-station-off","category":"Map","tags":["fuel","oil","cars","vehicles","shop","distributor"],"variants":{"outline":"f137"}},"gas-station":{"name":"gas-station","category":"Vehicles","tags":["fuel","oil","cars","vehicles","shop","distributor"],"variants":{"outline":"ec7d"}},"gauge-off":{"name":"gauge-off","category":"System","tags":["car","dashboard"],"variants":{"outline":"f138"}},"gauge":{"name":"gauge","category":"System","tags":["car","dashboard"],"variants":{"outline":"eab1","filled":"fc2c"}},"gavel":{"name":"gavel","category":"","tags":["justice","law","hammer","legal","auction"],"variants":{"outline":"ef90"}},"gender-agender":{"name":"gender-agender","category":"Gender","tags":["identity","genderless"],"variants":{"outline":"f0e1"}},"gender-androgyne":{"name":"gender-androgyne","category":"Gender","tags":["identity","intersex","feminine","genderqueer"],"variants":{"outline":"f0e2"}},"gender-bigender":{"name":"gender-bigender","category":"Gender","tags":["identity","female","bi","sexual"],"variants":{"outline":"f0e3"}},"gender-demiboy":{"name":"gender-demiboy","category":"Gender","tags":["identity","demimale","demi"],"variants":{"outline":"f0e4"}},"gender-demigirl":{"name":"gender-demigirl","category":"Gender","tags":["identity","demiwoman","demifemale"],"variants":{"outline":"f0e5"}},"gender-epicene":{"name":"gender-epicene","category":"Gender","tags":["identity","genderqueer","transgender"],"variants":{"outline":"f0e6"}},"gender-female":{"name":"gender-female","category":"Gender","tags":["identity","woman","girl"],"variants":{"outline":"f0e7"}},"gender-femme":{"name":"gender-femme","category":"Gender","tags":["identity","lesbian"],"variants":{"outline":"f0e8"}},"gender-genderfluid":{"name":"gender-genderfluid","category":"Gender","tags":["identity","indefinite"],"variants":{"outline":"f0e9"}},"gender-genderless":{"name":"gender-genderless","category":"Gender","tags":["identity","unisex"],"variants":{"outline":"f0ea"}},"gender-genderqueer":{"name":"gender-genderqueer","category":"Gender","tags":["identity","non binary"],"variants":{"outline":"f0eb"}},"gender-hermaphrodite":{"name":"gender-hermaphrodite","category":"Gender","tags":["identify","intersexuality","hybrid"],"variants":{"outline":"f0ec"}},"gender-intergender":{"name":"gender-intergender","category":"Gender","tags":["identity","transgender","intersex"],"variants":{"outline":"f0ed"}},"gender-male":{"name":"gender-male","category":"Gender","tags":["identity","man","boy","person"],"variants":{"outline":"f0ee"}},"gender-neutrois":{"name":"gender-neutrois","category":"Gender","tags":["identity","none","transgender"],"variants":{"outline":"f0ef"}},"gender-third":{"name":"gender-third","category":"Gender","tags":["identity","none","female"],"variants":{"outline":"f0f0"}},"gender-transgender":{"name":"gender-transgender","category":"Gender","tags":["identity","ladyboy","lgbt","gay","homosexual"],"variants":{"outline":"f0f1"}},"gender-trasvesti":{"name":"gender-trasvesti","category":"Gender","tags":["identity","birth","male","female","heterosexual","homosexual"],"variants":{"outline":"f0f2"}},"geometry":{"name":"geometry","category":"Map","tags":["build","architecture","create","compass"],"variants":{"outline":"ee90"}},"ghost-2":{"name":"ghost-2","category":"","tags":["spirit","transparent","fairytale","horror","movie","shadow","haunt"],"variants":{"outline":"f57c","filled":"f74a"}},"ghost-3":{"name":"ghost-3","category":"","tags":[],"variants":{"outline":"fc13"}},"ghost-off":{"name":"ghost-off","category":"","tags":["spirit","transparent","fairytale","horror","movie","shadow","haunt"],"variants":{"outline":"f3f2"}},"ghost":{"name":"ghost","category":"","tags":["spirit","transparent","fairytale","horror","movie","shadow","haunt"],"variants":{"outline":"eb8e","filled":"f74b"}},"gif":{"name":"gif","category":"Extensions","tags":["file","format","animation","image","extension","filetype"],"variants":{"outline":"f257"}},"gift-card":{"name":"gift-card","category":"","tags":["coupon","present","voucher","shopping","birthday"],"variants":{"outline":"f3aa","filled":"fc2d"}},"gift-off":{"name":"gift-off","category":"","tags":["present","birthday","celebration","wish","bonus","souvenire","surprise"],"variants":{"outline":"f3f3"}},"gift":{"name":"gift","category":"","tags":["present","birthday","celebration","wish","bonus","souvenire","surprise"],"variants":{"outline":"eb68","filled":"fd14"}},"git-branch-deleted":{"name":"git-branch-deleted","category":"Version control","tags":["code","version control","command"],"variants":{"outline":"f57d"}},"git-branch":{"name":"git-branch","category":"Version control","tags":["code","version control","command"],"variants":{"outline":"eab2"}},"git-cherry-pick":{"name":"git-cherry-pick","category":"Version control","tags":["code","version control","command"],"variants":{"outline":"f57e"}},"git-commit":{"name":"git-commit","category":"Version control","tags":["code","version control","command"],"variants":{"outline":"eab3"}},"git-compare":{"name":"git-compare","category":"Version control","tags":["code","version control","command"],"variants":{"outline":"eab4"}},"git-fork":{"name":"git-fork","category":"Version control","tags":["code","version control","command"],"variants":{"outline":"eb8f"}},"git-merge":{"name":"git-merge","category":"Version control","tags":["code","version control","command"],"variants":{"outline":"eab5"}},"git-pull-request-closed":{"name":"git-pull-request-closed","category":"Version control","tags":["code","version control","command"],"variants":{"outline":"ef7f"}},"git-pull-request-draft":{"name":"git-pull-request-draft","category":"Version control","tags":["code","version control","command"],"variants":{"outline":"efb7"}},"git-pull-request":{"name":"git-pull-request","category":"Version control","tags":["code","version control","command"],"variants":{"outline":"eab6"}},"gizmo":{"name":"gizmo","category":"","tags":["system","network","tech","connection"],"variants":{"outline":"f02b"}},"glass-champagne":{"name":"glass-champagne","category":"","tags":[],"variants":{"outline":"fd9c"}},"glass-cocktail":{"name":"glass-cocktail","category":"","tags":[],"variants":{"outline":"fd9d"}},"glass-full":{"name":"glass-full","category":"Food","tags":["wine","cup","goblet"],"variants":{"outline":"eab7","filled":"fc2e"}},"glass-gin":{"name":"glass-gin","category":"","tags":[],"variants":{"outline":"fd9e"}},"glass-off":{"name":"glass-off","category":"Food","tags":["wine","cup","goblet"],"variants":{"outline":"ee91"}},"glass":{"name":"glass","category":"Food","tags":["wine","cup","goblet"],"variants":{"outline":"eab8"}},"globe-off":{"name":"globe-off","category":"Map","tags":["world","travel","journey","trip","planet","earth"],"variants":{"outline":"f139"}},"globe":{"name":"globe","category":"Map","tags":["world","travel","journey","trip","planet","earth"],"variants":{"outline":"eab9","filled":"fc2f"}},"go-game":{"name":"go-game","category":"","tags":["strategy","board","mind"],"variants":{"outline":"f512"}},"golf-off":{"name":"golf-off","category":"Sport","tags":["game","ball","play","hole","club-and-ball","stroke","luxury","pitch"],"variants":{"outline":"f13a"}},"golf":{"name":"golf","category":"Sport","tags":["game","ball","play","hole","club-and-ball","stroke","luxury","pitch"],"variants":{"outline":"ed8c"}},"gps":{"name":"gps","category":"Map","tags":["navigation","directions","global","positioning","system","satnav","radionavigation","travel","car"],"variants":{"outline":"ed7a","filled":"fe48"}},"gradienter":{"name":"gradienter","category":"","tags":[],"variants":{"outline":"f3ab"}},"grain":{"name":"grain","category":"","tags":["dots","pattern","random","round","circle","nodes"],"variants":{"outline":"ee92"}},"graph-off":{"name":"graph-off","category":"","tags":["analytics","raport","statistics","chart"],"variants":{"outline":"f3f4"}},"graph":{"name":"graph","category":"","tags":["analytics","raport","statistics","chart"],"variants":{"outline":"f288","filled":"fd15"}},"grave-2":{"name":"grave-2","category":"Map","tags":["cementry","halloween","death","dead","tomb"],"variants":{"outline":"f57f"}},"grave":{"name":"grave","category":"Map","tags":["cemetery","halloween","death","dead","tomb"],"variants":{"outline":"f580"}},"grid-3x3":{"name":"grid-3x3","category":"Design","tags":["layout","pattern","matrix","arrangement","gridlines","cell","structure","block","squares","grid-pattern"],"variants":{"outline":"fca4"}},"grid-4x4":{"name":"grid-4x4","category":"Design","tags":["layout","matrix","pattern","gridlines","arrangement","structure","block","squares","four-by-four","grid-pattern"],"variants":{"outline":"fca5"}},"grid-dots":{"name":"grid-dots","category":"System","tags":["network","pattern","layout"],"variants":{"outline":"eaba"}},"grid-goldenratio":{"name":"grid-goldenratio","category":"Design","tags":["layout","pattern","matrix","arrangement","golden-ratio","cell","structure","ratio","gridlines","grid-structure"],"variants":{"outline":"fca6"}},"grid-pattern":{"name":"grid-pattern","category":"","tags":["grid","mesh","net","line"],"variants":{"outline":"efc9"}},"grid-scan":{"name":"grid-scan","category":"System","tags":["data","matrix","layout","pattern","dimension","analysis","structure","mapping","inspection","grid-data"],"variants":{"outline":"fca7"}},"grill-fork":{"name":"grill-fork","category":"Food","tags":["cook","cooking","bbq","meat","tool"],"variants":{"outline":"f35b"}},"grill-off":{"name":"grill-off","category":"Food","tags":["food","sasuage","beef","steak","bbq","cooking"],"variants":{"outline":"f3f5"}},"grill-spatula":{"name":"grill-spatula","category":"Food","tags":["cook","cooking","bbq","meat","tool"],"variants":{"outline":"f35c"}},"grill":{"name":"grill","category":"Food","tags":["food","sasuage","beef","steak","bbq","cooking"],"variants":{"outline":"efa9"}},"grip-horizontal":{"name":"grip-horizontal","category":"System","tags":["picture","abstract","symbol","design","across","dots","drag"],"variants":{"outline":"ec00"}},"grip-vertical":{"name":"grip-vertical","category":"System","tags":["picture","abstract","symbol","design","upright","dots","drag"],"variants":{"outline":"ec01"}},"growth":{"name":"growth","category":"Nature","tags":["seed","harvest","plant","tree","flower","grain","greenery","garden"],"variants":{"outline":"ee93"}},"guitar-pick":{"name":"guitar-pick","category":"","tags":["music","instrument","melody","accesories"],"variants":{"outline":"f4c6","filled":"f67b"}},"gymnastics":{"name":"gymnastics","category":"","tags":[],"variants":{"outline":"fd44"}},"h-1":{"name":"h-1","category":"Text","tags":["header","text","editor","h1","heading","typography"],"variants":{"outline":"ec94"}},"h-2":{"name":"h-2","category":"Text","tags":["header","text","editor","h2","heading","typography"],"variants":{"outline":"ec95"}},"h-3":{"name":"h-3","category":"Text","tags":["header","text","editor","h3","heading","typography"],"variants":{"outline":"ec96"}},"h-4":{"name":"h-4","category":"Text","tags":["header","text","editor","h4","heading","typography"],"variants":{"outline":"ec97"}},"h-5":{"name":"h-5","category":"Text","tags":["header","text","editor","h5","heading","typography"],"variants":{"outline":"ec98"}},"h-6":{"name":"h-6","category":"Text","tags":["header","text","editor","h6","heading","typography"],"variants":{"outline":"ec99"}},"hammer-off":{"name":"hammer-off","category":"","tags":["tool","repair","building","construction"],"variants":{"outline":"f13c"}},"hammer":{"name":"hammer","category":"","tags":["tool","repair","building","construction"],"variants":{"outline":"ef91"}},"hand-click":{"name":"hand-click","category":"Gestures","tags":["gesture","touch","press","phone"],"variants":{"outline":"ef4f"}},"hand-finger-down":{"name":"hand-finger-down","category":"","tags":[],"variants":{"outline":"ff4f"}},"hand-finger-left":{"name":"hand-finger-left","category":"","tags":[],"variants":{"outline":"ff4e"}},"hand-finger-off":{"name":"hand-finger-off","category":"Gestures","tags":["point","show","index","forefinger","body","human","palm"],"variants":{"outline":"f13d"}},"hand-finger-right":{"name":"hand-finger-right","category":"","tags":[],"variants":{"outline":"ff4d"}},"hand-finger":{"name":"hand-finger","category":"Gestures","tags":["point","show","index","forefinger","body","human","palm"],"variants":{"outline":"ee94"}},"hand-grab":{"name":"hand-grab","category":"Gestures","tags":["hold","fist","drop","catch"],"variants":{"outline":"f091"}},"hand-little-finger":{"name":"hand-little-finger","category":"Gestures","tags":["small","body","human","palm"],"variants":{"outline":"ee95"}},"hand-love-you":{"name":"hand-love-you","category":"Gestures","tags":["heavy","metal","party","concert","rebel"],"variants":{"outline":"ee97"}},"hand-middle-finger":{"name":"hand-middle-finger","category":"Gestures","tags":["signal","gesture","curse","vulgarism","abuse"],"variants":{"outline":"ec2d"}},"hand-move":{"name":"hand-move","category":"Gestures","tags":["gesture","swipe","right","left","up","down"],"variants":{"outline":"ef50"}},"hand-off":{"name":"hand-off","category":"Gestures","tags":["disclaimer","body"],"variants":{"outline":"ed15"}},"hand-ring-finger":{"name":"hand-ring-finger","category":"Gestures","tags":["body","human","palm"],"variants":{"outline":"ee96"}},"hand-sanitizer":{"name":"hand-sanitizer","category":"Health","tags":["hygiene","gel","alcohol","wash","virus"],"variants":{"outline":"f5f4"}},"hand-stop":{"name":"hand-stop","category":"Gestures","tags":["forbiddance","nixing","ban","interdicting"],"variants":{"outline":"ec2e"}},"hand-three-fingers":{"name":"hand-three-fingers","category":"Gestures","tags":["body","human","palm"],"variants":{"outline":"ee98"}},"hand-two-fingers":{"name":"hand-two-fingers","category":"Gestures","tags":["body","human","palm","gesture"],"variants":{"outline":"ee99"}},"hanger-2":{"name":"hanger-2","category":"","tags":["clothes","wardrobe","hook","hang","wooden","plastic","wire","shop","store","clothing","fashion"],"variants":{"outline":"f09c","filled":"ff61"}},"hanger-off":{"name":"hanger-off","category":"","tags":["clothes","wardrobe","hook","hang","wooden","plastic","wire","shop","store","clothing","fashion"],"variants":{"outline":"f13e"}},"hanger":{"name":"hanger","category":"","tags":["clothes","wardrobe","hook","hang","wooden","plastic","wire","shop","store","clothing","fashion"],"variants":{"outline":"ee9a"}},"hash":{"name":"hash","category":"","tags":["hashtag","#","instagram"],"variants":{"outline":"eabc"}},"haze-moon":{"name":"haze-moon","category":"","tags":[],"variants":{"outline":"faf8"}},"haze":{"name":"haze","category":"Weather","tags":["climate","meterology","weather","morning"],"variants":{"outline":"efaa"}},"hdr":{"name":"hdr","category":"Photography","tags":[],"variants":{"outline":"fa7b"}},"heading-off":{"name":"heading-off","category":"Text","tags":["main","text","headline","style","styling","html"],"variants":{"outline":"f13f"}},"heading":{"name":"heading","category":"Text","tags":["main","text","headline","style","styling","html"],"variants":{"outline":"ee9b"}},"headphones-off":{"name":"headphones-off","category":"Media","tags":["music","headset","audio","sound","customer"],"variants":{"outline":"ed1d"}},"headphones":{"name":"headphones","category":"Media","tags":["music","headset","audio","sound","customer"],"variants":{"outline":"eabd","filled":"fa3c"}},"headset-off":{"name":"headset-off","category":"Media","tags":["music","headphones","audio","sound","customer"],"variants":{"outline":"f3f6"}},"headset":{"name":"headset","category":"Media","tags":["music","headphones","audio","sound","customer"],"variants":{"outline":"eb90"}},"health-recognition":{"name":"health-recognition","category":"","tags":["life","doctor","healthy"],"variants":{"outline":"f1fb"}},"heart-bitcoin":{"name":"heart-bitcoin","category":"","tags":[],"variants":{"outline":"ff3b"}},"heart-bolt":{"name":"heart-bolt","category":"","tags":[],"variants":{"outline":"fb9e"}},"heart-broken":{"name":"heart-broken","category":"Health","tags":["love","emotion","like","favorite","relationship"],"variants":{"outline":"ecba"}},"heart-cancel":{"name":"heart-cancel","category":"","tags":[],"variants":{"outline":"fb9f"}},"heart-check":{"name":"heart-check","category":"","tags":[],"variants":{"outline":"fba0"}},"heart-code":{"name":"heart-code","category":"","tags":[],"variants":{"outline":"fba1"}},"heart-cog":{"name":"heart-cog","category":"","tags":[],"variants":{"outline":"fba2"}},"heart-discount":{"name":"heart-discount","category":"","tags":[],"variants":{"outline":"fba3"}},"heart-dollar":{"name":"heart-dollar","category":"","tags":[],"variants":{"outline":"fba4"}},"heart-down":{"name":"heart-down","category":"","tags":[],"variants":{"outline":"fba5"}},"heart-exclamation":{"name":"heart-exclamation","category":"","tags":[],"variants":{"outline":"fba6"}},"heart-handshake":{"name":"heart-handshake","category":"","tags":["support","care","friends","couple","relation"],"variants":{"outline":"f0f3"}},"heart-minus":{"name":"heart-minus","category":"Shapes","tags":["delete","unfavourite","remove"],"variants":{"outline":"f140"}},"heart-off":{"name":"heart-off","category":"Shapes","tags":["love","emotion","like","favorite","relationship"],"variants":{"outline":"f141"}},"heart-pause":{"name":"heart-pause","category":"","tags":[],"variants":{"outline":"fba7"}},"heart-pin":{"name":"heart-pin","category":"","tags":[],"variants":{"outline":"fba8"}},"heart-plus":{"name":"heart-plus","category":"Shapes","tags":["add","love","favourite","like"],"variants":{"outline":"f142"}},"heart-question":{"name":"heart-question","category":"","tags":[],"variants":{"outline":"fba9"}},"heart-rate-monitor":{"name":"heart-rate-monitor","category":"Health","tags":["medical","pulse","health","hospital","healthcare"],"variants":{"outline":"ef61"}},"heart-search":{"name":"heart-search","category":"","tags":[],"variants":{"outline":"fbaa"}},"heart-share":{"name":"heart-share","category":"","tags":[],"variants":{"outline":"fbab"}},"heart-star":{"name":"heart-star","category":"","tags":[],"variants":{"outline":"fbac"}},"heart-up":{"name":"heart-up","category":"","tags":[],"variants":{"outline":"fbad"}},"heart-x":{"name":"heart-x","category":"","tags":[],"variants":{"outline":"fbae"}},"heart":{"name":"heart","category":"Shapes","tags":["love","emotion","like","favorite","relationship"],"variants":{"outline":"eabe","filled":"f67c"}},"heartbeat":{"name":"heartbeat","category":"Health","tags":["pulse","medical","ecg","cardiology","fitness","chart"],"variants":{"outline":"ef92"}},"hearts-off":{"name":"hearts-off","category":"Shapes","tags":["love","valentine","romantic","romance","marriage"],"variants":{"outline":"f3f7"}},"hearts":{"name":"hearts","category":"Shapes","tags":["love","valentine","romantic","romance","marriage"],"variants":{"outline":"f387"}},"helicopter-landing":{"name":"helicopter-landing","category":"Vehicles","tags":["pad","helipad","land","takeoff","navy","travel","aircraft","platform","fly"],"variants":{"outline":"ed8d"}},"helicopter":{"name":"helicopter","category":"Vehicles","tags":["land","takeoff","navy","travel","aircraft","platform","fly","pilot","journey","rotorcraft","hover"],"variants":{"outline":"ed8e"}},"helmet-off":{"name":"helmet-off","category":"Sport","tags":["safety","f1","racing","motorcycle","builder"],"variants":{"outline":"f143"}},"helmet":{"name":"helmet","category":"Sport","tags":["safety","f1","racing","motorcycle","builder"],"variants":{"outline":"efca"}},"help-circle":{"name":"help-circle","category":"System","tags":[],"variants":{"outline":"f91d","filled":"fa3d"}},"help-hexagon":{"name":"help-hexagon","category":"System","tags":["support","question","shape","faq","info"],"variants":{"outline":"f7a8","filled":"fa3e"}},"help-octagon":{"name":"help-octagon","category":"System","tags":["support","question","shape","faq","info"],"variants":{"outline":"f7a9","filled":"fa3f"}},"help-off":{"name":"help-off","category":"System","tags":["tooltip","assistance","advice","support"],"variants":{"outline":"f3f8"}},"help-small":{"name":"help-small","category":"System","tags":[],"variants":{"outline":"f91e"}},"help-square-rounded":{"name":"help-square-rounded","category":"System","tags":[],"variants":{"outline":"f91f","filled":"fa41"}},"help-square":{"name":"help-square","category":"System","tags":[],"variants":{"outline":"f920","filled":"fa40"}},"help-triangle":{"name":"help-triangle","category":"System","tags":[],"variants":{"outline":"f921","filled":"fa42"}},"help":{"name":"help","category":"System","tags":["tooltip","assistance","advice","support"],"variants":{"outline":"eabf"}},"hemisphere-off":{"name":"hemisphere-off","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"faa0"}},"hemisphere-plus":{"name":"hemisphere-plus","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"faa1"}},"hemisphere":{"name":"hemisphere","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"faa2"}},"hexagon-3d":{"name":"hexagon-3d","category":"","tags":["geometry","six","dimensional","shape"],"variants":{"outline":"f4c7"}},"hexagon-letter-a":{"name":"hexagon-letter-a","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f463","filled":"fe47"}},"hexagon-letter-b":{"name":"hexagon-letter-b","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f464","filled":"fe46"}},"hexagon-letter-c":{"name":"hexagon-letter-c","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f465","filled":"fe45"}},"hexagon-letter-d":{"name":"hexagon-letter-d","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f466","filled":"fe44"}},"hexagon-letter-e":{"name":"hexagon-letter-e","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f467","filled":"fe43"}},"hexagon-letter-f":{"name":"hexagon-letter-f","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f468","filled":"fe42"}},"hexagon-letter-g":{"name":"hexagon-letter-g","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f469","filled":"fe41"}},"hexagon-letter-h":{"name":"hexagon-letter-h","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f46a","filled":"fe40"}},"hexagon-letter-i":{"name":"hexagon-letter-i","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f46b","filled":"fe3f"}},"hexagon-letter-j":{"name":"hexagon-letter-j","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f46c","filled":"fe3e"}},"hexagon-letter-k":{"name":"hexagon-letter-k","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f46d","filled":"fe3d"}},"hexagon-letter-l":{"name":"hexagon-letter-l","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f46e","filled":"fe3c"}},"hexagon-letter-m":{"name":"hexagon-letter-m","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f46f","filled":"fe3b"}},"hexagon-letter-n":{"name":"hexagon-letter-n","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f470","filled":"fe3a"}},"hexagon-letter-o":{"name":"hexagon-letter-o","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f471","filled":"fe39"}},"hexagon-letter-p":{"name":"hexagon-letter-p","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f472","filled":"fe38"}},"hexagon-letter-q":{"name":"hexagon-letter-q","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f473","filled":"fe37"}},"hexagon-letter-r":{"name":"hexagon-letter-r","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f474","filled":"fe36"}},"hexagon-letter-s":{"name":"hexagon-letter-s","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f475","filled":"fe35"}},"hexagon-letter-t":{"name":"hexagon-letter-t","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f476","filled":"fe34"}},"hexagon-letter-u":{"name":"hexagon-letter-u","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f477","filled":"fe33"}},"hexagon-letter-v":{"name":"hexagon-letter-v","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f4b3","filled":"fe32"}},"hexagon-letter-w":{"name":"hexagon-letter-w","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f478","filled":"fe31"}},"hexagon-letter-x":{"name":"hexagon-letter-x","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f479","filled":"fe30"}},"hexagon-letter-y":{"name":"hexagon-letter-y","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f47a","filled":"fe2f"}},"hexagon-letter-z":{"name":"hexagon-letter-z","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f47b","filled":"fe2e"}},"hexagon-minus-2":{"name":"hexagon-minus-2","category":"Shapes","tags":[],"variants":{"outline":"fc8e"}},"hexagon-minus":{"name":"hexagon-minus","category":"Shapes","tags":[],"variants":{"outline":"fc8f","filled":"fe2d"}},"hexagon-number-0":{"name":"hexagon-number-0","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f459","filled":"f74c"}},"hexagon-number-1":{"name":"hexagon-number-1","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f45a","filled":"f74d"}},"hexagon-number-2":{"name":"hexagon-number-2","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f45b","filled":"f74e"}},"hexagon-number-3":{"name":"hexagon-number-3","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f45c","filled":"f74f"}},"hexagon-number-4":{"name":"hexagon-number-4","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f45d","filled":"f750"}},"hexagon-number-5":{"name":"hexagon-number-5","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f45e","filled":"f751"}},"hexagon-number-6":{"name":"hexagon-number-6","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f45f","filled":"f752"}},"hexagon-number-7":{"name":"hexagon-number-7","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f460","filled":"f753"}},"hexagon-number-8":{"name":"hexagon-number-8","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f461","filled":"f754"}},"hexagon-number-9":{"name":"hexagon-number-9","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f462","filled":"f755"}},"hexagon-off":{"name":"hexagon-off","category":"Shapes","tags":["shape","geometric","math","2d"],"variants":{"outline":"ee9c"}},"hexagon-plus-2":{"name":"hexagon-plus-2","category":"Shapes","tags":[],"variants":{"outline":"fc90"}},"hexagon-plus":{"name":"hexagon-plus","category":"","tags":[],"variants":{"outline":"fc45","filled":"fe2c"}},"hexagon":{"name":"hexagon","category":"Shapes","tags":["shape","geometric","math","2d"],"variants":{"outline":"ec02","filled":"f67d"}},"hexagonal-prism-off":{"name":"hexagonal-prism-off","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"faa3"}},"hexagonal-prism-plus":{"name":"hexagonal-prism-plus","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"faa4"}},"hexagonal-prism":{"name":"hexagonal-prism","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"faa5"}},"hexagonal-pyramid-off":{"name":"hexagonal-pyramid-off","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"faa6"}},"hexagonal-pyramid-plus":{"name":"hexagonal-pyramid-plus","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"faa7"}},"hexagonal-pyramid":{"name":"hexagonal-pyramid","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"faa8"}},"hexagons-off":{"name":"hexagons-off","category":"Shapes","tags":["diagram","chemistry","modules","geometric"],"variants":{"outline":"f3f9"}},"hexagons":{"name":"hexagons","category":"Shapes","tags":["diagram","chemistry","modules","geometric"],"variants":{"outline":"f09d"}},"hierarchy-2":{"name":"hierarchy-2","category":"Design","tags":["relation","above","below","status","society","important"],"variants":{"outline":"ee9d"}},"hierarchy-3":{"name":"hierarchy-3","category":"Design","tags":["relation","above","below","status","society","important"],"variants":{"outline":"f289"}},"hierarchy-off":{"name":"hierarchy-off","category":"Design","tags":["relation","above","below","status","society","important"],"variants":{"outline":"f3fa"}},"hierarchy":{"name":"hierarchy","category":"Design","tags":["relation","above","below","status","society","important"],"variants":{"outline":"ee9e"}},"highlight-off":{"name":"highlight-off","category":"Text","tags":["marker","important","highlighter","pen"],"variants":{"outline":"f144"}},"highlight":{"name":"highlight","category":"Text","tags":["marker","important","highlighter","pen"],"variants":{"outline":"ef3f"}},"history-off":{"name":"history-off","category":"System","tags":["search","see","past","card","website"],"variants":{"outline":"f3fb"}},"history-toggle":{"name":"history-toggle","category":"","tags":["on","off","control","interface"],"variants":{"outline":"f1fc"}},"history":{"name":"history","category":"System","tags":["search","see","past","card","website"],"variants":{"outline":"ebea"}},"home-2":{"name":"home-2","category":"Buildings","tags":["house","dashboard","living","building"],"variants":{"outline":"eac0"}},"home-bitcoin":{"name":"home-bitcoin","category":"","tags":[],"variants":{"outline":"ff3a"}},"home-bolt":{"name":"home-bolt","category":"Buildings","tags":["electrity","energy","power","lightning","energetic","house"],"variants":{"outline":"f336"}},"home-cancel":{"name":"home-cancel","category":"Buildings","tags":["delete","house","building","close"],"variants":{"outline":"f350"}},"home-check":{"name":"home-check","category":"Buildings","tags":["house","tick","mark","assure","safety"],"variants":{"outline":"f337"}},"home-cog":{"name":"home-cog","category":"Buildings","tags":["gear","house","building","settings","renovation"],"variants":{"outline":"f338"}},"home-dollar":{"name":"home-dollar","category":"Buildings","tags":["buisness","house","estate","finance","building","money"],"variants":{"outline":"f339"}},"home-dot":{"name":"home-dot","category":"Buildings","tags":["notification","alert","monitor"],"variants":{"outline":"f33a"}},"home-down":{"name":"home-down","category":"Buildings","tags":["property","estate","bottom","south","house"],"variants":{"outline":"f33b"}},"home-eco":{"name":"home-eco","category":"Buildings","tags":["ecology","energy","nature","leaf","house"],"variants":{"outline":"f351"}},"home-edit":{"name":"home-edit","category":"Buildings","tags":["house","building","renovation","estate"],"variants":{"outline":"f352"}},"home-exclamation":{"name":"home-exclamation","category":"Buildings","tags":["warning","danger","accident","house"],"variants":{"outline":"f33c"}},"home-hand":{"name":"home-hand","category":"Buildings","tags":["house","dashboard","living","building","care"],"variants":{"outline":"f504"}},"home-heart":{"name":"home-heart","category":"Buildings","tags":["love","sweet","dating","care","safety"],"variants":{"outline":"f353"}},"home-infinity":{"name":"home-infinity","category":"Buildings","tags":["house","dashboard","living","building","endless"],"variants":{"outline":"f505"}},"home-link":{"name":"home-link","category":"Buildings","tags":["address","technology","smart","internet"],"variants":{"outline":"f354"}},"home-minus":{"name":"home-minus","category":"Buildings","tags":["remove","delete","cancel","close"],"variants":{"outline":"f33d"}},"home-move":{"name":"home-move","category":"Buildings","tags":["relocation","moving","house","change","exchange"],"variants":{"outline":"f33e"}},"home-off":{"name":"home-off","category":"Buildings","tags":["house","dashboard","living","building"],"variants":{"outline":"f145"}},"home-plus":{"name":"home-plus","category":"Buildings","tags":["add","building","new","create"],"variants":{"outline":"f33f"}},"home-question":{"name":"home-question","category":"Buildings","tags":["support","help","information","ask","anwser","?"],"variants":{"outline":"f340"}},"home-ribbon":{"name":"home-ribbon","category":"Buildings","tags":["contract","certifited","achievement"],"variants":{"outline":"f355"}},"home-search":{"name":"home-search","category":"Buildings","tags":["find","estate","house","building"],"variants":{"outline":"f341"}},"home-share":{"name":"home-share","category":"Buildings","tags":["house","dashboard","living","building","network","link","connection"],"variants":{"outline":"f342"}},"home-shield":{"name":"home-shield","category":"Buildings","tags":["security","safety","secure","safe"],"variants":{"outline":"f343"}},"home-signal":{"name":"home-signal","category":"Buildings","tags":["wi-fi","communication","internet","wireless"],"variants":{"outline":"f356"}},"home-star":{"name":"home-star","category":"Buildings","tags":["best","favourite","like","house"],"variants":{"outline":"f344"}},"home-stats":{"name":"home-stats","category":"Buildings","tags":["analytics","business","finance"],"variants":{"outline":"f345"}},"home-up":{"name":"home-up","category":"Buildings","tags":["arrow","higher","house","north"],"variants":{"outline":"f346"}},"home-x":{"name":"home-x","category":"Buildings","tags":["off","sale","commerce"],"variants":{"outline":"f347"}},"home":{"name":"home","category":"Buildings","tags":["house","dashboard","living","building"],"variants":{"outline":"eac1","filled":"fe2b"}},"horse-toy":{"name":"horse-toy","category":"","tags":["baby","child","kid","rocking","fun"],"variants":{"outline":"f28a"}},"horse":{"name":"horse","category":"","tags":["equine","equestrian","stallion","mare","pony","steed","riding","hoofed-animal","horseback","thoroughbred"],"variants":{"outline":"fc46"}},"horseshoe":{"name":"horseshoe","category":"","tags":[],"variants":{"outline":"fcb7"}},"hospital-circle":{"name":"hospital-circle","category":"","tags":["medical-center","healthcare","clinic","emergency","hospital-round","health","care","medical-facility","circle-hospital","health-center"],"variants":{"outline":"fd58","filled":"fed2"}},"hospital":{"name":"hospital","category":"","tags":["medical-facility","healthcare","clinic","emergency","hospital-building","health","care","medical-center","hospital-structure","health-center"],"variants":{"outline":"fd59"}},"hotel-service":{"name":"hotel-service","category":"","tags":["food","reception","accommodation","room","bell"],"variants":{"outline":"ef80"}},"hourglass-empty":{"name":"hourglass-empty","category":"System","tags":["material","measure","time","timer","clock","sand"],"variants":{"outline":"f146"}},"hourglass-high":{"name":"hourglass-high","category":"System","tags":["simple","time","timer","clock","sand"],"variants":{"outline":"f092"}},"hourglass-low":{"name":"hourglass-low","category":"System","tags":["simple","time","timer","clock","sand"],"variants":{"outline":"f093"}},"hourglass-off":{"name":"hourglass-off","category":"System","tags":["time","timer","sand","clock"],"variants":{"outline":"f147"}},"hourglass":{"name":"hourglass","category":"System","tags":["time","timer","sand","clock"],"variants":{"outline":"ef93","filled":"f756"}},"hours-12":{"name":"hours-12","category":"System","tags":[],"variants":{"outline":"fc53"}},"hours-24":{"name":"hours-24","category":"System","tags":["clock","time","day","support","service"],"variants":{"outline":"f5e7"}},"html":{"name":"html","category":"Extensions","tags":["code","coding","file","web","programming","page"],"variants":{"outline":"f7b1"}},"http-connect":{"name":"http-connect","category":"Computers","tags":[],"variants":{"outline":"fa28"}},"http-delete":{"name":"http-delete","category":"Computers","tags":[],"variants":{"outline":"fa29"}},"http-get":{"name":"http-get","category":"Computers","tags":[],"variants":{"outline":"fa2a"}},"http-head":{"name":"http-head","category":"Computers","tags":[],"variants":{"outline":"fa2b"}},"http-options":{"name":"http-options","category":"Computers","tags":[],"variants":{"outline":"fa2c"}},"http-patch":{"name":"http-patch","category":"Computers","tags":[],"variants":{"outline":"fa2d"}},"http-post":{"name":"http-post","category":"Computers","tags":[],"variants":{"outline":"fa2e"}},"http-put":{"name":"http-put","category":"Computers","tags":[],"variants":{"outline":"fa2f"}},"http-que":{"name":"http-que","category":"Computers","tags":[],"variants":{"outline":"fa5b"}},"http-trace":{"name":"http-trace","category":"Computers","tags":[],"variants":{"outline":"fa30"}},"ice-cream-2":{"name":"ice-cream-2","category":"Food","tags":["sweet","cold","dessert","food","taste","frozen","snack","flavour","flavor","cone"],"variants":{"outline":"ee9f"}},"ice-cream-off":{"name":"ice-cream-off","category":"Food","tags":["candy","dessert","frozen","sweet"],"variants":{"outline":"f148"}},"ice-cream":{"name":"ice-cream","category":"Food","tags":["candy","dessert","frozen","sweet"],"variants":{"outline":"eac2"}},"ice-skating":{"name":"ice-skating","category":"Sport","tags":["winter","skate","sport","figure","activity","hockey"],"variants":{"outline":"efcb"}},"icons-off":{"name":"icons-off","category":"Shapes","tags":["design","image","picture"],"variants":{"outline":"f3fc"}},"icons":{"name":"icons","category":"Shapes","tags":["design","image","picture"],"variants":{"outline":"f1d4"}},"id-badge-2":{"name":"id-badge-2","category":"System","tags":["identification","pass","card","identity"],"variants":{"outline":"f076"}},"id-badge-off":{"name":"id-badge-off","category":"System","tags":["identification","pass","card","identity"],"variants":{"outline":"f3fd"}},"id-badge":{"name":"id-badge","category":"System","tags":["identification","pass","card","identity"],"variants":{"outline":"eff7"}},"id-off":{"name":"id-off","category":"System","tags":["identification","card","personal details"],"variants":{"outline":"f149"}},"id":{"name":"id","category":"System","tags":["identification","card","personal details"],"variants":{"outline":"eac3"}},"ikosaedr":{"name":"ikosaedr","category":"","tags":[],"variants":{"outline":"fec6"}},"image-in-picture":{"name":"image-in-picture","category":"","tags":[],"variants":{"outline":"fd9f"}},"inbox-off":{"name":"inbox-off","category":"","tags":["mail","gmail","email","envelope","post"],"variants":{"outline":"f14a"}},"inbox":{"name":"inbox","category":"","tags":["mail","gmail","email","envelope","post"],"variants":{"outline":"eac4"}},"indent-decrease":{"name":"indent-decrease","category":"Text","tags":["line","position","block","margin","paragraph"],"variants":{"outline":"eb91"}},"indent-increase":{"name":"indent-increase","category":"Text","tags":["line","position","block","margin","paragraph"],"variants":{"outline":"eb92"}},"infinity-off":{"name":"infinity-off","category":"Math","tags":["endless","eternity","continuum","time"],"variants":{"outline":"f3fe"}},"infinity":{"name":"infinity","category":"Math","tags":["endless","eternity","continuum","time"],"variants":{"outline":"eb69"}},"info-circle":{"name":"info-circle","category":"System","tags":["information","advice","news","tip","sign"],"variants":{"outline":"eac5","filled":"f6d8"}},"info-hexagon":{"name":"info-hexagon","category":"System","tags":["help","support","shape","information","question"],"variants":{"outline":"f7aa","filled":"fa43"}},"info-octagon":{"name":"info-octagon","category":"System","tags":["help","support","shape","information","question"],"variants":{"outline":"f7ab","filled":"fa44"}},"info-small":{"name":"info-small","category":"System","tags":[],"variants":{"outline":"f922"}},"info-square-rounded":{"name":"info-square-rounded","category":"System","tags":["help","support","shape","information","question"],"variants":{"outline":"f635","filled":"f6d9"}},"info-square":{"name":"info-square","category":"System","tags":["information","advice","news","tip","sign"],"variants":{"outline":"eac6","filled":"fa45"}},"info-triangle":{"name":"info-triangle","category":"System","tags":[],"variants":{"outline":"f923","filled":"fa46"}},"inner-shadow-bottom-left":{"name":"inner-shadow-bottom-left","category":"Design","tags":["shape","circle","down","south","west"],"variants":{"outline":"f51e","filled":"f758"}},"inner-shadow-bottom-right":{"name":"inner-shadow-bottom-right","category":"Design","tags":["shape","circle","down","south","east"],"variants":{"outline":"f51f","filled":"f759"}},"inner-shadow-bottom":{"name":"inner-shadow-bottom","category":"Design","tags":["shape","circle","down","south"],"variants":{"outline":"f520","filled":"f757"}},"inner-shadow-left":{"name":"inner-shadow-left","category":"Design","tags":["shape","circle","west"],"variants":{"outline":"f521","filled":"f75a"}},"inner-shadow-right":{"name":"inner-shadow-right","category":"Design","tags":["shape","circle","east"],"variants":{"outline":"f522","filled":"f75b"}},"inner-shadow-top-left":{"name":"inner-shadow-top-left","category":"Design","tags":["shape","circle","up","north","west"],"variants":{"outline":"f523","filled":"f75d"}},"inner-shadow-top-right":{"name":"inner-shadow-top-right","category":"Design","tags":["shape","circle","up","north","east"],"variants":{"outline":"f524","filled":"f75e"}},"inner-shadow-top":{"name":"inner-shadow-top","category":"Design","tags":["shape","circle","up","north"],"variants":{"outline":"f525","filled":"f75c"}},"input-ai":{"name":"input-ai","category":"","tags":[],"variants":{"outline":"fc5a"}},"input-check":{"name":"input-check","category":"","tags":[],"variants":{"outline":"fc5b"}},"input-search":{"name":"input-search","category":"Text","tags":["find","website","field","explore"],"variants":{"outline":"f2a2"}},"input-x":{"name":"input-x","category":"","tags":[],"variants":{"outline":"fc5c"}},"invoice":{"name":"invoice","category":"Document","tags":[],"variants":{"outline":"feab"}},"ironing-1":{"name":"ironing-1","category":"Laundry","tags":["clotches","housework","iron","smooth"],"variants":{"outline":"f2f4"}},"ironing-2":{"name":"ironing-2","category":"Laundry","tags":["clotches","housework","iron","smooth"],"variants":{"outline":"f2f5"}},"ironing-3":{"name":"ironing-3","category":"Laundry","tags":["clotches","housework","iron","smooth"],"variants":{"outline":"f2f6"}},"ironing-off":{"name":"ironing-off","category":"Laundry","tags":["clotches","housework","iron","smooth"],"variants":{"outline":"f2f7"}},"ironing-steam-off":{"name":"ironing-steam-off","category":"Laundry","tags":["clotches","housework","iron","smooth","water"],"variants":{"outline":"f2f8"}},"ironing-steam":{"name":"ironing-steam","category":"Laundry","tags":["clotches","housework","iron","smooth","water"],"variants":{"outline":"f2f9"}},"ironing":{"name":"ironing","category":"Laundry","tags":[],"variants":{"outline":"fa7c","filled":"fe2a"}},"irregular-polyhedron-off":{"name":"irregular-polyhedron-off","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"faa9"}},"irregular-polyhedron-plus":{"name":"irregular-polyhedron-plus","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"faaa"}},"irregular-polyhedron":{"name":"irregular-polyhedron","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"faab"}},"italic":{"name":"italic","category":"Text","tags":["typography","font","typeface","emphasise"],"variants":{"outline":"eb93"}},"jacket":{"name":"jacket","category":"","tags":["clotches","winter","life","coat"],"variants":{"outline":"f661"}},"jetpack":{"name":"jetpack","category":"","tags":["fly","rocket","transport","space","future"],"variants":{"outline":"f581","filled":"fe29"}},"jewish-star":{"name":"jewish-star","category":"Shapes","tags":["judaism","israel","religion","bright"],"variants":{"outline":"f3ff","filled":"f67e"}},"join-bevel":{"name":"join-bevel","category":"","tags":[],"variants":{"outline":"ff4c"}},"join-round":{"name":"join-round","category":"","tags":[],"variants":{"outline":"ff4b"}},"join-straight":{"name":"join-straight","category":"","tags":[],"variants":{"outline":"ff4a"}},"jpg":{"name":"jpg","category":"Extensions","tags":["file","format","type","document","filetype"],"variants":{"outline":"f3ac"}},"json":{"name":"json","category":"Extensions","tags":["file","document","type","format","extencion"],"variants":{"outline":"f7b2"}},"jump-rope":{"name":"jump-rope","category":"Sport","tags":["sport","fitness","workout","gym","skipping","cardio","fit","shape"],"variants":{"outline":"ed8f"}},"karate":{"name":"karate","category":"Sport","tags":["martial","art","self","defence","defend","strike","compat","oriental","fight","kick"],"variants":{"outline":"ed32"}},"kayak":{"name":"kayak","category":"Sport","tags":["water","adventure","river","camp","sport","summer","activity"],"variants":{"outline":"f1d6"}},"kerning":{"name":"kerning","category":"Text","tags":["text","editor","font","calligraphy"],"variants":{"outline":"efb8"}},"key-off":{"name":"key-off","category":"","tags":["password","login","authentication","secure"],"variants":{"outline":"f14b"}},"key":{"name":"key","category":"","tags":["password","login","authentication","secure"],"variants":{"outline":"eac7","filled":"fe28"}},"keyboard-hide":{"name":"keyboard-hide","category":"Devices","tags":["computer","laptop","device","type"],"variants":{"outline":"ec7e"}},"keyboard-off":{"name":"keyboard-off","category":"Devices","tags":["computer","laptop","device","type"],"variants":{"outline":"eea0"}},"keyboard-show":{"name":"keyboard-show","category":"Devices","tags":["computer","laptop","device","type"],"variants":{"outline":"ec7f"}},"keyboard":{"name":"keyboard","category":"Devices","tags":["computer","laptop","device","type"],"variants":{"outline":"ebd6"}},"keyframe-align-center":{"name":"keyframe-align-center","category":"Media","tags":["middle","animation","shape"],"variants":{"outline":"f582","filled":"fc30"}},"keyframe-align-horizontal":{"name":"keyframe-align-horizontal","category":"Media","tags":["animation","shape"],"variants":{"outline":"f583","filled":"fc31"}},"keyframe-align-vertical":{"name":"keyframe-align-vertical","category":"Media","tags":["animation","shape"],"variants":{"outline":"f584","filled":"fc32"}},"keyframe":{"name":"keyframe","category":"Media","tags":["animation","shape","design","align"],"variants":{"outline":"f576","filled":"fc33"}},"keyframes":{"name":"keyframes","category":"Media","tags":["animation","shape","design","align"],"variants":{"outline":"f585","filled":"fc34"}},"label-important":{"name":"label-important","category":"","tags":[],"variants":{"outline":"ff49","filled":"ff60"}},"label-off":{"name":"label-off","category":"","tags":[],"variants":{"outline":"ff39"}},"label":{"name":"label","category":"","tags":[],"variants":{"outline":"ff38","filled":"ff41"}},"ladder-off":{"name":"ladder-off","category":"","tags":["up","equipment","garden","climb","climbing"],"variants":{"outline":"f14c"}},"ladder":{"name":"ladder","category":"","tags":["up","equipment","garden","climb","climbing"],"variants":{"outline":"efe2"}},"ladle":{"name":"ladle","category":"","tags":[],"variants":{"outline":"fc14"}},"lambda":{"name":"lambda","category":"Letters","tags":["letter","alphabet","greek","math"],"variants":{"outline":"f541"}},"lamp-2":{"name":"lamp-2","category":"","tags":["light","room","decoration","electic","energy"],"variants":{"outline":"f09e"}},"lamp-off":{"name":"lamp-off","category":"","tags":["light","room","decoration","electic","energy"],"variants":{"outline":"f14d"}},"lamp":{"name":"lamp","category":"","tags":["light","room","decoration","electic","energy"],"variants":{"outline":"efab"}},"lane":{"name":"lane","category":"","tags":[],"variants":{"outline":"faf9"}},"language-hiragana":{"name":"language-hiragana","category":"Text","tags":["tongue","country","speech","speak","translate","communication","communicate","english","dialect","dictionary","word"],"variants":{"outline":"ef77"}},"language-katakana":{"name":"language-katakana","category":"Text","tags":["tongue","country","speech","speak","translate","communication","communicate","english","dialect","dictionary","word"],"variants":{"outline":"ef78"}},"language-off":{"name":"language-off","category":"Text","tags":["tongue","country","speech","speak","translate","communication","communicate","english","dialect","dictionary","word"],"variants":{"outline":"f14e"}},"language":{"name":"language","category":"Text","tags":["tongue","country","speech","speak","translate","communication","communicate","english","dialect","dictionary","word"],"variants":{"outline":"ebbe"}},"lasso-off":{"name":"lasso-off","category":"Design","tags":["cowboy","western","sheriff","man","tool","west"],"variants":{"outline":"f14f"}},"lasso-polygon":{"name":"lasso-polygon","category":"Design","tags":["geometry","adobe","tool","shape"],"variants":{"outline":"f388","filled":"ff5f"}},"lasso":{"name":"lasso","category":"Design","tags":["cowboy","western","sheriff","man","tool","west"],"variants":{"outline":"efac"}},"laurel-wreath-1":{"name":"laurel-wreath-1","category":"","tags":[],"variants":{"outline":"ff48"}},"laurel-wreath-2":{"name":"laurel-wreath-2","category":"","tags":[],"variants":{"outline":"ff47"}},"laurel-wreath-3":{"name":"laurel-wreath-3","category":"","tags":[],"variants":{"outline":"ff46"}},"laurel-wreath":{"name":"laurel-wreath","category":"","tags":[],"variants":{"outline":"ff45"}},"layers-difference":{"name":"layers-difference","category":"Design","tags":["layered-difference","layer-intersect","intersecting-layers","layer-subtract","difference","overlap","comparison","layer-blend","merge-layers","layer-comparison","stack"],"variants":{"outline":"eac8"}},"layers-intersect-2":{"name":"layers-intersect-2","category":"Design","tags":["merge","stack","graphic"],"variants":{"outline":"eff8"}},"layers-intersect":{"name":"layers-intersect","category":"Design","tags":["layered-intersection","layer-difference","intersecting","layer-overlap","intersection","intersecting-layers","layer-interaction","layer-cross","layers-crossing","layer-junction","stack"],"variants":{"outline":"eac9"}},"layers-linked":{"name":"layers-linked","category":"Design","tags":["data","network"],"variants":{"outline":"eea1"}},"layers-off":{"name":"layers-off","category":"Design","tags":["stack","document","file","pages","graphic"],"variants":{"outline":"f150"}},"layers-selected-bottom":{"name":"layers-selected-bottom","category":"Design","tags":[],"variants":{"outline":"feaa"}},"layers-selected":{"name":"layers-selected","category":"Design","tags":[],"variants":{"outline":"fea9"}},"layers-subtract":{"name":"layers-subtract","category":"Design","tags":["layered-subtraction","layer-removal","remove-layer","subtract-layers","subtracting","layer-reduction","layer-elimination","layer-reduce","layer-removing","remove","stack"],"variants":{"outline":"eaca"}},"layers-union":{"name":"layers-union","category":"Design","tags":["stack","join"],"variants":{"outline":"eacb"}},"layout-2":{"name":"layout-2","category":"Design","tags":["grid","columns","masonry","collage"],"variants":{"outline":"eacc","filled":"fe27"}},"layout-align-bottom":{"name":"layout-align-bottom","category":"Design","tags":["position","element","design"],"variants":{"outline":"eacd","filled":"fe26"}},"layout-align-center":{"name":"layout-align-center","category":"Design","tags":["position","element","design"],"variants":{"outline":"eace","filled":"fe25"}},"layout-align-left":{"name":"layout-align-left","category":"Design","tags":["position","element","design"],"variants":{"outline":"eacf","filled":"fe24"}},"layout-align-middle":{"name":"layout-align-middle","category":"Design","tags":["position","element","design"],"variants":{"outline":"ead0","filled":"fe23"}},"layout-align-right":{"name":"layout-align-right","category":"Design","tags":["position","element","design"],"variants":{"outline":"ead1","filled":"fe22"}},"layout-align-top":{"name":"layout-align-top","category":"Design","tags":["position","element","design"],"variants":{"outline":"ead2","filled":"fe21"}},"layout-board-split":{"name":"layout-board-split","category":"Design","tags":["grid","columns","masonry","collage"],"variants":{"outline":"ef94"}},"layout-board":{"name":"layout-board","category":"Design","tags":["grid","columns","masonry","collage"],"variants":{"outline":"ef95"}},"layout-bottombar-collapse":{"name":"layout-bottombar-collapse","category":"Design","tags":["grid","aside","column","columns","menu","navigation"],"variants":{"outline":"f28b","filled":"fc35"}},"layout-bottombar-expand":{"name":"layout-bottombar-expand","category":"Design","tags":["grid","aside","column","columns","menu","navigation"],"variants":{"outline":"f28c","filled":"fc36"}},"layout-bottombar-inactive":{"name":"layout-bottombar-inactive","category":"","tags":[],"variants":{"outline":"fd45"}},"layout-bottombar":{"name":"layout-bottombar","category":"Design","tags":["position","element","design","grid","footer"],"variants":{"outline":"ead3","filled":"fc37"}},"layout-cards":{"name":"layout-cards","category":"Design","tags":["position","element","design","arrangement"],"variants":{"outline":"ec13","filled":"fe20"}},"layout-collage":{"name":"layout-collage","category":"Design","tags":["grid","dashboard","image","interface","editing"],"variants":{"outline":"f389"}},"layout-columns":{"name":"layout-columns","category":"Design","tags":["grid","column","rows"],"variants":{"outline":"ead4"}},"layout-dashboard":{"name":"layout-dashboard","category":"Design","tags":["grid","view","display","page","masonry"],"variants":{"outline":"f02c","filled":"fe1f"}},"layout-distribute-horizontal":{"name":"layout-distribute-horizontal","category":"Design","tags":["position","element","design","around"],"variants":{"outline":"ead5","filled":"fe1e"}},"layout-distribute-vertical":{"name":"layout-distribute-vertical","category":"Design","tags":["position","element","design","around"],"variants":{"outline":"ead6","filled":"fe1d"}},"layout-grid-add":{"name":"layout-grid-add","category":"Design","tags":["layout","table","network","pattern"],"variants":{"outline":"edb9"}},"layout-grid-remove":{"name":"layout-grid-remove","category":"Design","tags":[],"variants":{"outline":"fa7d"}},"layout-grid":{"name":"layout-grid","category":"Design","tags":["layout","table","network","pattern"],"variants":{"outline":"edba","filled":"fe1c"}},"layout-kanban":{"name":"layout-kanban","category":"Design","tags":["position","element","design","board","processing","task"],"variants":{"outline":"ec3f","filled":"fe1b"}},"layout-list":{"name":"layout-list","category":"Design","tags":["position","design","element","doable"],"variants":{"outline":"ec14","filled":"fe1a"}},"layout-navbar-collapse":{"name":"layout-navbar-collapse","category":"Design","tags":["grid","aside","column","columns","menu","navigation"],"variants":{"outline":"f28d","filled":"fc38"}},"layout-navbar-expand":{"name":"layout-navbar-expand","category":"Design","tags":["grid","aside","column","columns","menu","navigation"],"variants":{"outline":"f28e","filled":"fc39"}},"layout-navbar-inactive":{"name":"layout-navbar-inactive","category":"","tags":[],"variants":{"outline":"fd46"}},"layout-navbar":{"name":"layout-navbar","category":"Design","tags":["grid","row","header"],"variants":{"outline":"ead7","filled":"fc3a"}},"layout-off":{"name":"layout-off","category":"Design","tags":["grid","columns","masonry","collage"],"variants":{"outline":"f151"}},"layout-rows":{"name":"layout-rows","category":"Design","tags":["grid","masonry","collage"],"variants":{"outline":"ead8"}},"layout-sidebar-inactive":{"name":"layout-sidebar-inactive","category":"","tags":[],"variants":{"outline":"fd47"}},"layout-sidebar-left-collapse":{"name":"layout-sidebar-left-collapse","category":"Design","tags":["grid","aside","column","columns","menu","navigation"],"variants":{"outline":"f004","filled":"fc3b"}},"layout-sidebar-left-expand":{"name":"layout-sidebar-left-expand","category":"Design","tags":["grid","aside","column","columns","menu","navigation"],"variants":{"outline":"f005","filled":"fc3c"}},"layout-sidebar-right-collapse":{"name":"layout-sidebar-right-collapse","category":"Design","tags":["grid","aside","column","columns","menu","navigation"],"variants":{"outline":"f006","filled":"fc3d"}},"layout-sidebar-right-expand":{"name":"layout-sidebar-right-expand","category":"Design","tags":["grid","aside","column","columns","menu","navigation"],"variants":{"outline":"f007","filled":"fc3e"}},"layout-sidebar-right-inactive":{"name":"layout-sidebar-right-inactive","category":"","tags":[],"variants":{"outline":"fd48"}},"layout-sidebar-right":{"name":"layout-sidebar-right","category":"Design","tags":["grid","aside","column","columns"],"variants":{"outline":"ead9","filled":"fe19"}},"layout-sidebar":{"name":"layout-sidebar","category":"Design","tags":["grid","aside","column","columns"],"variants":{"outline":"eada","filled":"fe18"}},"layout":{"name":"layout","category":"Design","tags":["grid","columns","masonry","collage"],"variants":{"outline":"eadb","filled":"fe17"}},"leaf-2":{"name":"leaf-2","category":"","tags":[],"variants":{"outline":"ff44"}},"leaf-off":{"name":"leaf-off","category":"Nature","tags":["nature","plant","tree","autumn","fall","greenery","flower","forest","garden"],"variants":{"outline":"f400"}},"leaf":{"name":"leaf","category":"Nature","tags":["nature","plant","tree","autumn","fall","greenery","flower","forest","garden"],"variants":{"outline":"ed4f"}},"lego-off":{"name":"lego-off","category":"","tags":["toy","boy","face","play"],"variants":{"outline":"f401"}},"lego":{"name":"lego","category":"","tags":["toy","boy","face","play"],"variants":{"outline":"eadc","filled":"fe16"}},"lemon-2":{"name":"lemon-2","category":"Food","tags":["fruit","citrus","lime","food","vitamin"],"variants":{"outline":"ef81"}},"lemon":{"name":"lemon","category":"Food","tags":["fruit","citrus","lime","food","vitamin","slice"],"variants":{"outline":"ef10"}},"letter-a-small":{"name":"letter-a-small","category":"Letters","tags":["a","alpha","alphabet","first","letter","initial","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcc7"}},"letter-a":{"name":"letter-a","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec50"}},"letter-b-small":{"name":"letter-b-small","category":"Letters","tags":["b","beta","second","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcc8"}},"letter-b":{"name":"letter-b","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec51"}},"letter-c-small":{"name":"letter-c-small","category":"Letters","tags":["c","charlie","third","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcc9"}},"letter-c":{"name":"letter-c","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec52"}},"letter-case-lower":{"name":"letter-case-lower","category":"Text","tags":["typography","font","text","style","content"],"variants":{"outline":"eea2"}},"letter-case-toggle":{"name":"letter-case-toggle","category":"Text","tags":["typography","font","text","style","content"],"variants":{"outline":"eea3"}},"letter-case-upper":{"name":"letter-case-upper","category":"Text","tags":["typography","font","text","style","content"],"variants":{"outline":"eea4"}},"letter-case":{"name":"letter-case","category":"Text","tags":["typography","font","text","style","content"],"variants":{"outline":"eea5"}},"letter-d-small":{"name":"letter-d-small","category":"Letters","tags":["d","delta","fourth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcca"}},"letter-d":{"name":"letter-d","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec53"}},"letter-e-small":{"name":"letter-e-small","category":"Letters","tags":["e","echo","fifth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fccb"}},"letter-e":{"name":"letter-e","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec54"}},"letter-f-small":{"name":"letter-f-small","category":"Letters","tags":["f","foxtrot","sixth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fccc"}},"letter-f":{"name":"letter-f","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec55"}},"letter-g-small":{"name":"letter-g-small","category":"Letters","tags":["g","golf","seventh","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fccd"}},"letter-g":{"name":"letter-g","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec56"}},"letter-h-small":{"name":"letter-h-small","category":"Letters","tags":["h","hotel","eighth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcce"}},"letter-h":{"name":"letter-h","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec57"}},"letter-i-small":{"name":"letter-i-small","category":"Letters","tags":["i","india","ninth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fccf"}},"letter-i":{"name":"letter-i","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec58"}},"letter-j-small":{"name":"letter-j-small","category":"Letters","tags":["j","juliett","tenth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcd0"}},"letter-j":{"name":"letter-j","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec59"}},"letter-k-small":{"name":"letter-k-small","category":"Letters","tags":["k","kilo","eleventh","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcd1"}},"letter-k":{"name":"letter-k","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec5a"}},"letter-l-small":{"name":"letter-l-small","category":"Letters","tags":["l","lima","twelfth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcd2"}},"letter-l":{"name":"letter-l","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec5b"}},"letter-m-small":{"name":"letter-m-small","category":"Letters","tags":["m","mike","thirteenth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcd3"}},"letter-m":{"name":"letter-m","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec5c"}},"letter-n-small":{"name":"letter-n-small","category":"Letters","tags":["n","november","fourteenth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcd4"}},"letter-n":{"name":"letter-n","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec5d"}},"letter-o-small":{"name":"letter-o-small","category":"Letters","tags":["o","oscar","fifteenth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcd5"}},"letter-o":{"name":"letter-o","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec5e"}},"letter-p-small":{"name":"letter-p-small","category":"Letters","tags":["p","papa","sixteenth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcd6"}},"letter-p":{"name":"letter-p","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec5f"}},"letter-q-small":{"name":"letter-q-small","category":"Letters","tags":["q","quebec","seventeenth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcd7"}},"letter-q":{"name":"letter-q","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec60"}},"letter-r-small":{"name":"letter-r-small","category":"Letters","tags":["r","romeo","eighteenth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcd8"}},"letter-r":{"name":"letter-r","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec61"}},"letter-s-small":{"name":"letter-s-small","category":"Letters","tags":["s","sierra","nineteenth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcd9"}},"letter-s":{"name":"letter-s","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec62"}},"letter-spacing":{"name":"letter-spacing","category":"Text","tags":["typography","font","space","character","word"],"variants":{"outline":"eea6"}},"letter-t-small":{"name":"letter-t-small","category":"Letters","tags":["t","tango","twentieth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcda"}},"letter-t":{"name":"letter-t","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec63"}},"letter-u-small":{"name":"letter-u-small","category":"Letters","tags":["u","uniform","twenty-first","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcdb"}},"letter-u":{"name":"letter-u","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec64"}},"letter-v-small":{"name":"letter-v-small","category":"Letters","tags":["v","victor","twenty-second","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcdc"}},"letter-v":{"name":"letter-v","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec65"}},"letter-w-small":{"name":"letter-w-small","category":"Letters","tags":["w","whiskey","twenty-third","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcdd"}},"letter-w":{"name":"letter-w","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec66"}},"letter-x-small":{"name":"letter-x-small","category":"Letters","tags":["x","x-ray","twenty-fourth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcde"}},"letter-x":{"name":"letter-x","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec67"}},"letter-y-small":{"name":"letter-y-small","category":"Letters","tags":["y","yankee","twenty-fifth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcdf"}},"letter-y":{"name":"letter-y","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec68"}},"letter-z-small":{"name":"letter-z-small","category":"Letters","tags":["z","zulu","twenty-sixth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fce0"}},"letter-z":{"name":"letter-z","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec69"}},"library-minus":{"name":"library-minus","category":"","tags":[],"variants":{"outline":"fd49"}},"library-photo":{"name":"library-photo","category":"","tags":[],"variants":{"outline":"fd4a"}},"library-plus":{"name":"library-plus","category":"","tags":[],"variants":{"outline":"fd4b"}},"library":{"name":"library","category":"","tags":[],"variants":{"outline":"fd4c"}},"license-off":{"name":"license-off","category":"","tags":["authorisation","permission","consent","permit","document","agree"],"variants":{"outline":"f153"}},"license":{"name":"license","category":"","tags":["authorisation","permission","consent","permit","document","agree"],"variants":{"outline":"ebc0"}},"lifebuoy-off":{"name":"lifebuoy-off","category":"","tags":["life ring","help","support"],"variants":{"outline":"f154"}},"lifebuoy":{"name":"lifebuoy","category":"","tags":["life ring","help","support"],"variants":{"outline":"eadd"}},"lighter":{"name":"lighter","category":"","tags":["fire","flame","camping","light","burn","adventure"],"variants":{"outline":"f794"}},"line-dashed":{"name":"line-dashed","category":"Design","tags":["geometric","segment","link","connection"],"variants":{"outline":"eea7"}},"line-dotted":{"name":"line-dotted","category":"Design","tags":["geometric","segment","link","connection"],"variants":{"outline":"eea8"}},"line-height":{"name":"line-height","category":"Text","tags":["space","inline","display"],"variants":{"outline":"eb94"}},"line-scan":{"name":"line-scan","category":"","tags":[],"variants":{"outline":"fcb8"}},"line":{"name":"line","category":"Design","tags":["geometric","segment","link","connection"],"variants":{"outline":"ec40"}},"link-minus":{"name":"link-minus","category":"","tags":[],"variants":{"outline":"fd16"}},"link-off":{"name":"link-off","category":"Text","tags":["zoom-filled"],"variants":{"outline":"f402"}},"link-plus":{"name":"link-plus","category":"","tags":[],"variants":{"outline":"fd17"}},"link":{"name":"link","category":"Text","tags":["zoom-filled"],"variants":{"outline":"eade"}},"list-check":{"name":"list-check","category":"Text","tags":["to-do","checklist","form","template","task","reminder","schedule","agenda"],"variants":{"outline":"eb6a"}},"list-details":{"name":"list-details","category":"Text","tags":["to-do","checklist","form","template","task","reminder","schedule","agenda"],"variants":{"outline":"ef40"}},"list-letters":{"name":"list-letters","category":"","tags":[],"variants":{"outline":"fc47"}},"list-numbers":{"name":"list-numbers","category":"Text","tags":["to-do","checklist","form","template","task","reminder","schedule","agenda"],"variants":{"outline":"ef11"}},"list-search":{"name":"list-search","category":"Text","tags":["find","agenda","shopping"],"variants":{"outline":"eea9"}},"list-tree":{"name":"list-tree","category":"","tags":[],"variants":{"outline":"fafa"}},"list":{"name":"list","category":"Text","tags":["task","unordered","bullets","agenda","shopping"],"variants":{"outline":"eb6b"}},"live-photo-off":{"name":"live-photo-off","category":"Photography","tags":["capture","photo","movement","sound","memory","image","camera"],"variants":{"outline":"f403"}},"live-photo":{"name":"live-photo","category":"Photography","tags":["capture","photo","movement","sound","memory","image","camera"],"variants":{"outline":"eadf","filled":"fed1"}},"live-view":{"name":"live-view","category":"Map","tags":["camera","preview","image","photo"],"variants":{"outline":"ec6b"}},"load-balancer":{"name":"load-balancer","category":"Computers","tags":[],"variants":{"outline":"fa5c"}},"loader-2":{"name":"loader-2","category":"System","tags":["process","download","upload","loader","loading"],"variants":{"outline":"f226"}},"loader-3":{"name":"loader-3","category":"System","tags":["process","download","upload","loader","loading"],"variants":{"outline":"f513"}},"loader-quarter":{"name":"loader-quarter","category":"System","tags":["process","download","upload","loader","loading"],"variants":{"outline":"eca2"}},"loader":{"name":"loader","category":"System","tags":["process","download","upload","loader","loading"],"variants":{"outline":"eca3"}},"location-bolt":{"name":"location-bolt","category":"","tags":[],"variants":{"outline":"fbaf"}},"location-broken":{"name":"location-broken","category":"Map","tags":["delete","map","navigation","pin"],"variants":{"outline":"f2c4"}},"location-cancel":{"name":"location-cancel","category":"","tags":[],"variants":{"outline":"fbb0"}},"location-check":{"name":"location-check","category":"","tags":[],"variants":{"outline":"fbb1"}},"location-code":{"name":"location-code","category":"","tags":[],"variants":{"outline":"fbb2"}},"location-cog":{"name":"location-cog","category":"","tags":[],"variants":{"outline":"fbb3"}},"location-discount":{"name":"location-discount","category":"","tags":[],"variants":{"outline":"fbb4"}},"location-dollar":{"name":"location-dollar","category":"","tags":[],"variants":{"outline":"fbb5"}},"location-down":{"name":"location-down","category":"","tags":[],"variants":{"outline":"fbb6"}},"location-exclamation":{"name":"location-exclamation","category":"","tags":[],"variants":{"outline":"fbb7"}},"location-heart":{"name":"location-heart","category":"","tags":[],"variants":{"outline":"fbb8"}},"location-minus":{"name":"location-minus","category":"","tags":[],"variants":{"outline":"fbb9"}},"location-off":{"name":"location-off","category":"Map","tags":["navigation","map","direction","discover","travel"],"variants":{"outline":"f155"}},"location-pause":{"name":"location-pause","category":"","tags":[],"variants":{"outline":"fbba"}},"location-pin":{"name":"location-pin","category":"","tags":[],"variants":{"outline":"fbbb"}},"location-plus":{"name":"location-plus","category":"","tags":[],"variants":{"outline":"fbbc"}},"location-question":{"name":"location-question","category":"","tags":[],"variants":{"outline":"fbbd"}},"location-search":{"name":"location-search","category":"","tags":[],"variants":{"outline":"fbbe"}},"location-share":{"name":"location-share","category":"","tags":[],"variants":{"outline":"fbbf"}},"location-star":{"name":"location-star","category":"","tags":[],"variants":{"outline":"fbc0"}},"location-up":{"name":"location-up","category":"","tags":[],"variants":{"outline":"fbc1"}},"location-x":{"name":"location-x","category":"","tags":[],"variants":{"outline":"fbc2"}},"location":{"name":"location","category":"Map","tags":["navigation","map","direction","discover","travel"],"variants":{"outline":"eae0","filled":"f67f"}},"lock-access-off":{"name":"lock-access-off","category":"System","tags":["block","limited","restricted","unavailable","confidential"],"variants":{"outline":"f404"}},"lock-access":{"name":"lock-access","category":"System","tags":["block","limited","restricted","unavailable","confidential"],"variants":{"outline":"eeaa"}},"lock-bitcoin":{"name":"lock-bitcoin","category":"","tags":[],"variants":{"outline":"ff37"}},"lock-bolt":{"name":"lock-bolt","category":"System","tags":[],"variants":{"outline":"f924"}},"lock-cancel":{"name":"lock-cancel","category":"System","tags":[],"variants":{"outline":"f925"}},"lock-check":{"name":"lock-check","category":"System","tags":[],"variants":{"outline":"f926"}},"lock-code":{"name":"lock-code","category":"System","tags":[],"variants":{"outline":"f927"}},"lock-cog":{"name":"lock-cog","category":"System","tags":[],"variants":{"outline":"f928"}},"lock-dollar":{"name":"lock-dollar","category":"System","tags":[],"variants":{"outline":"f929"}},"lock-down":{"name":"lock-down","category":"System","tags":[],"variants":{"outline":"f92a"}},"lock-exclamation":{"name":"lock-exclamation","category":"System","tags":[],"variants":{"outline":"f92b"}},"lock-heart":{"name":"lock-heart","category":"System","tags":[],"variants":{"outline":"f92c"}},"lock-minus":{"name":"lock-minus","category":"System","tags":[],"variants":{"outline":"f92d"}},"lock-off":{"name":"lock-off","category":"System","tags":["security","password","secure"],"variants":{"outline":"ed1e"}},"lock-open-2":{"name":"lock-open-2","category":"","tags":[],"variants":{"outline":"fea8"}},"lock-open-off":{"name":"lock-open-off","category":"System","tags":["security","password","secure","unprotected"],"variants":{"outline":"f156"}},"lock-open":{"name":"lock-open","category":"System","tags":["security","password","secure","unprotected"],"variants":{"outline":"eae1"}},"lock-pause":{"name":"lock-pause","category":"System","tags":[],"variants":{"outline":"f92e"}},"lock-pin":{"name":"lock-pin","category":"System","tags":[],"variants":{"outline":"f92f"}},"lock-plus":{"name":"lock-plus","category":"System","tags":[],"variants":{"outline":"f930"}},"lock-question":{"name":"lock-question","category":"System","tags":[],"variants":{"outline":"f931"}},"lock-search":{"name":"lock-search","category":"System","tags":[],"variants":{"outline":"f932"}},"lock-share":{"name":"lock-share","category":"System","tags":[],"variants":{"outline":"f933"}},"lock-square-rounded":{"name":"lock-square-rounded","category":"System","tags":["security","secure","locked","password","shape","safe"],"variants":{"outline":"f636","filled":"f6da"}},"lock-square":{"name":"lock-square","category":"System","tags":["privaty","safe","secure","privacy"],"variants":{"outline":"ef51"}},"lock-star":{"name":"lock-star","category":"System","tags":[],"variants":{"outline":"f934"}},"lock-up":{"name":"lock-up","category":"System","tags":[],"variants":{"outline":"f935"}},"lock-x":{"name":"lock-x","category":"System","tags":[],"variants":{"outline":"f936"}},"lock":{"name":"lock","category":"System","tags":["security","password","secure"],"variants":{"outline":"eae2","filled":"fe15"}},"logic-and":{"name":"logic-and","category":"Logic","tags":["gate","technology","electirical","it"],"variants":{"outline":"f240"}},"logic-buffer":{"name":"logic-buffer","category":"Logic","tags":["gate","technology","electirical","it"],"variants":{"outline":"f241"}},"logic-nand":{"name":"logic-nand","category":"Logic","tags":["gate","technology","electirical","it"],"variants":{"outline":"f242"}},"logic-nor":{"name":"logic-nor","category":"Logic","tags":["gate","technology","electirical","it"],"variants":{"outline":"f243"}},"logic-not":{"name":"logic-not","category":"Logic","tags":["gate","technology","electirical","it"],"variants":{"outline":"f244"}},"logic-or":{"name":"logic-or","category":"Logic","tags":["gate","technology","electirical","it"],"variants":{"outline":"f245"}},"logic-xnor":{"name":"logic-xnor","category":"Logic","tags":["gate","technology","electirical","it"],"variants":{"outline":"f246"}},"logic-xor":{"name":"logic-xor","category":"Logic","tags":["gate","technology","electirical","it"],"variants":{"outline":"f247"}},"login-2":{"name":"login-2","category":"","tags":[],"variants":{"outline":"fc76"}},"login":{"name":"login","category":"Arrows","tags":["initialize","password","enter","account","permission"],"variants":{"outline":"eba7"}},"logout-2":{"name":"logout-2","category":"System","tags":[],"variants":{"outline":"fa7e"}},"logout":{"name":"logout","category":"System","tags":["exit","shut","unplug","close"],"variants":{"outline":"eba8"}},"logs":{"name":"logs","category":"","tags":[],"variants":{"outline":"fea7"}},"lollipop-off":{"name":"lollipop-off","category":"Food","tags":["candy","food","sweet","halloween","dessert","sugar"],"variants":{"outline":"f157"}},"lollipop":{"name":"lollipop","category":"Food","tags":["candy","food","sweet","halloween","dessert","sugar"],"variants":{"outline":"efcc"}},"luggage-off":{"name":"luggage-off","category":"","tags":["travel","vacation","suitcase","bag","holiday","baggage"],"variants":{"outline":"f158"}},"luggage":{"name":"luggage","category":"","tags":["travel","vacation","suitcase","bag","holiday","baggage"],"variants":{"outline":"efad"}},"lungs-off":{"name":"lungs-off","category":"Health","tags":["anatomy","human","medical","respiratory","breathe","organ"],"variants":{"outline":"f405"}},"lungs":{"name":"lungs","category":"Health","tags":["anatomy","human","medical","respiratory","breathe","organ"],"variants":{"outline":"ef62","filled":"fe14"}},"macro-off":{"name":"macro-off","category":"Photography","tags":["video","photography","photo","camera"],"variants":{"outline":"f406"}},"macro":{"name":"macro","category":"Photography","tags":["video","photography","photo","camera"],"variants":{"outline":"eeab","filled":"fe13"}},"magnet-off":{"name":"magnet-off","category":"","tags":["magnetic field","pole","iron","attract"],"variants":{"outline":"f159"}},"magnet":{"name":"magnet","category":"","tags":["magnetic field","pole","iron","attract"],"variants":{"outline":"eae3","filled":"fe12"}},"magnetic":{"name":"magnetic","category":"","tags":[],"variants":{"outline":"fcb9"}},"mail-ai":{"name":"mail-ai","category":"Communication","tags":[],"variants":{"outline":"fa31"}},"mail-bitcoin":{"name":"mail-bitcoin","category":"","tags":[],"variants":{"outline":"ff36"}},"mail-bolt":{"name":"mail-bolt","category":"Communication","tags":[],"variants":{"outline":"f937"}},"mail-cancel":{"name":"mail-cancel","category":"Communication","tags":[],"variants":{"outline":"f938"}},"mail-check":{"name":"mail-check","category":"Communication","tags":[],"variants":{"outline":"f939"}},"mail-code":{"name":"mail-code","category":"Communication","tags":[],"variants":{"outline":"f93a"}},"mail-cog":{"name":"mail-cog","category":"Communication","tags":[],"variants":{"outline":"f93b"}},"mail-dollar":{"name":"mail-dollar","category":"Communication","tags":[],"variants":{"outline":"f93c"}},"mail-down":{"name":"mail-down","category":"Communication","tags":[],"variants":{"outline":"f93d"}},"mail-exclamation":{"name":"mail-exclamation","category":"Communication","tags":[],"variants":{"outline":"f93e"}},"mail-fast":{"name":"mail-fast","category":"Communication","tags":["send","massage","quick","delivery","speed","communication"],"variants":{"outline":"f069"}},"mail-forward":{"name":"mail-forward","category":"Communication","tags":["send","recipient","email","inbox","message"],"variants":{"outline":"eeac"}},"mail-heart":{"name":"mail-heart","category":"Communication","tags":[],"variants":{"outline":"f93f"}},"mail-minus":{"name":"mail-minus","category":"Communication","tags":[],"variants":{"outline":"f940"}},"mail-off":{"name":"mail-off","category":"Communication","tags":["inbox","gmail","email","envelope","message"],"variants":{"outline":"f15a"}},"mail-opened":{"name":"mail-opened","category":"Communication","tags":["inbox","gmail","email","envelope","message","read"],"variants":{"outline":"eae4","filled":"fa48"}},"mail-pause":{"name":"mail-pause","category":"Communication","tags":[],"variants":{"outline":"f941"}},"mail-pin":{"name":"mail-pin","category":"Communication","tags":[],"variants":{"outline":"f942"}},"mail-plus":{"name":"mail-plus","category":"Communication","tags":[],"variants":{"outline":"f943"}},"mail-question":{"name":"mail-question","category":"Communication","tags":[],"variants":{"outline":"f944"}},"mail-search":{"name":"mail-search","category":"Communication","tags":[],"variants":{"outline":"f945"}},"mail-share":{"name":"mail-share","category":"Communication","tags":[],"variants":{"outline":"f946"}},"mail-star":{"name":"mail-star","category":"Communication","tags":[],"variants":{"outline":"f947"}},"mail-up":{"name":"mail-up","category":"Communication","tags":[],"variants":{"outline":"f948"}},"mail-x":{"name":"mail-x","category":"Communication","tags":[],"variants":{"outline":"f949"}},"mail":{"name":"mail","category":"Communication","tags":["inbox","gmail","email","envelope","message"],"variants":{"outline":"eae5","filled":"fa47"}},"mailbox-off":{"name":"mailbox-off","category":"Communication","tags":["send","recipient","email","inbox","message","reply","post"],"variants":{"outline":"f15b"}},"mailbox":{"name":"mailbox","category":"Communication","tags":["send","recipient","email","inbox","message","reply","post"],"variants":{"outline":"eead"}},"man":{"name":"man","category":"","tags":["guy","boy","male","gender"],"variants":{"outline":"eae6","filled":"fe11"}},"manual-gearbox":{"name":"manual-gearbox","category":"","tags":["car","vehicle","torque","transmission","mechanics","motor","engine"],"variants":{"outline":"ed7b","filled":"fe10"}},"map-2":{"name":"map-2","category":"Map","tags":["navigation","location","travel","pin","position","marker"],"variants":{"outline":"eae7"}},"map-bolt":{"name":"map-bolt","category":"","tags":[],"variants":{"outline":"fbc3"}},"map-cancel":{"name":"map-cancel","category":"","tags":[],"variants":{"outline":"fbc4"}},"map-check":{"name":"map-check","category":"","tags":[],"variants":{"outline":"fbc5"}},"map-code":{"name":"map-code","category":"","tags":[],"variants":{"outline":"fbc6"}},"map-cog":{"name":"map-cog","category":"","tags":[],"variants":{"outline":"fbc7"}},"map-discount":{"name":"map-discount","category":"","tags":[],"variants":{"outline":"fbc8"}},"map-dollar":{"name":"map-dollar","category":"","tags":[],"variants":{"outline":"fbc9"}},"map-down":{"name":"map-down","category":"","tags":[],"variants":{"outline":"fbca"}},"map-east":{"name":"map-east","category":"Map","tags":[],"variants":{"outline":"fc5d"}},"map-exclamation":{"name":"map-exclamation","category":"","tags":[],"variants":{"outline":"fbcb"}},"map-heart":{"name":"map-heart","category":"","tags":[],"variants":{"outline":"fbcc"}},"map-minus":{"name":"map-minus","category":"","tags":[],"variants":{"outline":"fbcd"}},"map-north":{"name":"map-north","category":"Map","tags":[],"variants":{"outline":"fc5e"}},"map-off":{"name":"map-off","category":"Map","tags":["navigation","location","travel"],"variants":{"outline":"f15c"}},"map-pause":{"name":"map-pause","category":"","tags":[],"variants":{"outline":"fbce"}},"map-pin-2":{"name":"map-pin-2","category":"","tags":[],"variants":{"outline":"fc48"}},"map-pin-bolt":{"name":"map-pin-bolt","category":"Map","tags":[],"variants":{"outline":"f94a"}},"map-pin-cancel":{"name":"map-pin-cancel","category":"Map","tags":[],"variants":{"outline":"f94b"}},"map-pin-check":{"name":"map-pin-check","category":"Map","tags":[],"variants":{"outline":"f94c"}},"map-pin-code":{"name":"map-pin-code","category":"Map","tags":[],"variants":{"outline":"f94d"}},"map-pin-cog":{"name":"map-pin-cog","category":"Map","tags":[],"variants":{"outline":"f94e"}},"map-pin-dollar":{"name":"map-pin-dollar","category":"Map","tags":[],"variants":{"outline":"f94f"}},"map-pin-down":{"name":"map-pin-down","category":"Map","tags":[],"variants":{"outline":"f950"}},"map-pin-exclamation":{"name":"map-pin-exclamation","category":"Map","tags":[],"variants":{"outline":"f951"}},"map-pin-heart":{"name":"map-pin-heart","category":"Map","tags":[],"variants":{"outline":"f952"}},"map-pin-minus":{"name":"map-pin-minus","category":"Map","tags":[],"variants":{"outline":"f953"}},"map-pin-off":{"name":"map-pin-off","category":"Map","tags":["navigation","location","travel","pin","position","marker"],"variants":{"outline":"ecf3"}},"map-pin-pause":{"name":"map-pin-pause","category":"Map","tags":[],"variants":{"outline":"f954"}},"map-pin-pin":{"name":"map-pin-pin","category":"Map","tags":[],"variants":{"outline":"f955"}},"map-pin-plus":{"name":"map-pin-plus","category":"Map","tags":[],"variants":{"outline":"f956"}},"map-pin-question":{"name":"map-pin-question","category":"Map","tags":[],"variants":{"outline":"f957"}},"map-pin-search":{"name":"map-pin-search","category":"Map","tags":[],"variants":{"outline":"f958"}},"map-pin-share":{"name":"map-pin-share","category":"Map","tags":["location","gps","pointer","marker","place","send"],"variants":{"outline":"f795"}},"map-pin-star":{"name":"map-pin-star","category":"Map","tags":[],"variants":{"outline":"f959"}},"map-pin-up":{"name":"map-pin-up","category":"Map","tags":[],"variants":{"outline":"f95a"}},"map-pin-x":{"name":"map-pin-x","category":"Map","tags":[],"variants":{"outline":"f95b"}},"map-pin":{"name":"map-pin","category":"Map","tags":["navigation","location","travel","pin","position","marker"],"variants":{"outline":"eae8","filled":"f680"}},"map-pins":{"name":"map-pins","category":"Map","tags":["place","direction","travel","destination","mark","location","address"],"variants":{"outline":"ed5e"}},"map-plus":{"name":"map-plus","category":"","tags":[],"variants":{"outline":"fbcf"}},"map-question":{"name":"map-question","category":"","tags":[],"variants":{"outline":"fbd0"}},"map-route":{"name":"map-route","category":"","tags":[],"variants":{"outline":"fc79"}},"map-search":{"name":"map-search","category":"Map","tags":["location","navigation","gps","find","pin"],"variants":{"outline":"ef82"}},"map-share":{"name":"map-share","category":"","tags":[],"variants":{"outline":"fbd1"}},"map-south":{"name":"map-south","category":"Map","tags":[],"variants":{"outline":"fc5f"}},"map-star":{"name":"map-star","category":"","tags":[],"variants":{"outline":"fbd2"}},"map-up":{"name":"map-up","category":"","tags":[],"variants":{"outline":"fbd3"}},"map-west":{"name":"map-west","category":"Map","tags":[],"variants":{"outline":"fc60"}},"map-x":{"name":"map-x","category":"","tags":[],"variants":{"outline":"fbd4"}},"map":{"name":"map","category":"Map","tags":["navigation","location","travel"],"variants":{"outline":"eae9"}},"markdown-off":{"name":"markdown-off","category":"Text","tags":["price","valuation","cost","exchange"],"variants":{"outline":"f407"}},"markdown":{"name":"markdown","category":"Text","tags":["price","valuation","cost","exchange"],"variants":{"outline":"ec41"}},"marquee-2":{"name":"marquee-2","category":"","tags":["tag","tracer","html","animation","text","graphic"],"variants":{"outline":"eeae"}},"marquee-off":{"name":"marquee-off","category":"","tags":["tag","tracer","html","animation","text","graphic"],"variants":{"outline":"f15d"}},"marquee":{"name":"marquee","category":"","tags":["tag","tracer","html","animation","text","graphic"],"variants":{"outline":"ec77"}},"mars":{"name":"mars","category":"Symbols","tags":["male"],"variants":{"outline":"ec80"}},"mask-off":{"name":"mask-off","category":"Design","tags":["edit","layer","mask","tool","design"],"variants":{"outline":"eeaf"}},"mask":{"name":"mask","category":"Design","tags":["edit","layer","mask","tool","design"],"variants":{"outline":"eeb0"}},"masks-theater-off":{"name":"masks-theater-off","category":"Map","tags":["cinema","comedy","acting","face","art"],"variants":{"outline":"f408"}},"masks-theater":{"name":"masks-theater","category":"Map","tags":["cinema","comedy","acting","face","art"],"variants":{"outline":"f263"}},"massage":{"name":"massage","category":"Health","tags":["physiotherapy","spa","relax","sports","therapy","treatment","spine"],"variants":{"outline":"eeb1"}},"matchstick":{"name":"matchstick","category":"","tags":["fire","flame","burn","spark"],"variants":{"outline":"f577"}},"math-1-divide-2":{"name":"math-1-divide-2","category":"Math","tags":["calculations","half","mathematic"],"variants":{"outline":"f4e2"}},"math-1-divide-3":{"name":"math-1-divide-3","category":"Math","tags":["calculations","mathematic","quarter"],"variants":{"outline":"f4e3"}},"math-avg":{"name":"math-avg","category":"Math","tags":["symbol"],"variants":{"outline":"f0f4"}},"math-cos":{"name":"math-cos","category":"Math","tags":["mathematic","cosinus","trigonometry","function"],"variants":{"outline":"ff1f"}},"math-ctg":{"name":"math-ctg","category":"","tags":[],"variants":{"outline":"ff35"}},"math-equal-greater":{"name":"math-equal-greater","category":"Math","tags":["mathematic","than","more","equation","sign"],"variants":{"outline":"f4e4"}},"math-equal-lower":{"name":"math-equal-lower","category":"Math","tags":["mathematic","less","than","equation","sign"],"variants":{"outline":"f4e5"}},"math-function-off":{"name":"math-function-off","category":"Math","tags":["linear","statyscics","graph"],"variants":{"outline":"f15e"}},"math-function-y":{"name":"math-function-y","category":"Math","tags":["mathematic","sign","x","expression"],"variants":{"outline":"f4e6"}},"math-function":{"name":"math-function","category":"Math","tags":["linear","statyscics","graph"],"variants":{"outline":"eeb2"}},"math-greater":{"name":"math-greater","category":"Math","tags":["mathematic","sign","expression","more"],"variants":{"outline":"f4e7"}},"math-integral-x":{"name":"math-integral-x","category":"Math","tags":["mathematic","sign","y","expression"],"variants":{"outline":"f4e8"}},"math-integral":{"name":"math-integral","category":"Math","tags":["mathematic","sign","expression"],"variants":{"outline":"f4e9"}},"math-integrals":{"name":"math-integrals","category":"Math","tags":["mathematic","sign","expression"],"variants":{"outline":"f4ea"}},"math-lower":{"name":"math-lower","category":"Math","tags":["mathematic","sign","expressionm","less"],"variants":{"outline":"f4eb"}},"math-max-min":{"name":"math-max-min","category":"","tags":[],"variants":{"outline":"fda0"}},"math-max":{"name":"math-max","category":"Math","tags":["symbol"],"variants":{"outline":"f0f5"}},"math-min":{"name":"math-min","category":"Math","tags":["symbol"],"variants":{"outline":"f0f6"}},"math-not":{"name":"math-not","category":"Math","tags":["mathematic","sign","expression"],"variants":{"outline":"f4ec"}},"math-off":{"name":"math-off","category":"Math","tags":["subject","count","plus","minus","times"],"variants":{"outline":"f409"}},"math-pi-divide-2":{"name":"math-pi-divide-2","category":"Math","tags":["mathematic","sign","expression"],"variants":{"outline":"f4ed"}},"math-pi":{"name":"math-pi","category":"Math","tags":["mathematic","sign","expression"],"variants":{"outline":"f4ee"}},"math-sec":{"name":"math-sec","category":"","tags":[],"variants":{"outline":"ff34"}},"math-sin":{"name":"math-sin","category":"Math","tags":["mathematic","sinus","trigonometry","function"],"variants":{"outline":"ff1e"}},"math-symbols":{"name":"math-symbols","category":"Math","tags":["calculator","equal","plus","multiplication","minus","math"],"variants":{"outline":"eeb3"}},"math-tg":{"name":"math-tg","category":"","tags":[],"variants":{"outline":"ff33"}},"math-x-divide-2":{"name":"math-x-divide-2","category":"Math","tags":["mathematic","expression","equation"],"variants":{"outline":"f4ef"}},"math-x-divide-y-2":{"name":"math-x-divide-y-2","category":"Math","tags":["mathematic","expression","equation"],"variants":{"outline":"f4f0"}},"math-x-divide-y":{"name":"math-x-divide-y","category":"Math","tags":["mathematic","expression","equation"],"variants":{"outline":"f4f1"}},"math-x-minus-x":{"name":"math-x-minus-x","category":"Math","tags":["mathematic","expression","equation"],"variants":{"outline":"f4f2"}},"math-x-minus-y":{"name":"math-x-minus-y","category":"Math","tags":["mathematic","expression","equation"],"variants":{"outline":"f4f3"}},"math-x-plus-x":{"name":"math-x-plus-x","category":"Math","tags":["mathematic","expression","equation"],"variants":{"outline":"f4f4"}},"math-x-plus-y":{"name":"math-x-plus-y","category":"Math","tags":["mathematic","expression","equation"],"variants":{"outline":"f4f5"}},"math-xy":{"name":"math-xy","category":"Math","tags":["mathematic","expression","equation"],"variants":{"outline":"f4f6"}},"math-y-minus-y":{"name":"math-y-minus-y","category":"Math","tags":["mathematic","expression","equation"],"variants":{"outline":"f4f7"}},"math-y-plus-y":{"name":"math-y-plus-y","category":"Math","tags":["mathematic","expression","equation"],"variants":{"outline":"f4f8"}},"math":{"name":"math","category":"Math","tags":["subject","count","plus","minus","times"],"variants":{"outline":"ebeb"}},"maximize-off":{"name":"maximize-off","category":"Media","tags":["fullscreen","maximize","expand","window","size","resize","direction"],"variants":{"outline":"f15f"}},"maximize":{"name":"maximize","category":"Media","tags":["fullscreen","maximize","expand","window","size","resize","direction"],"variants":{"outline":"eaea"}},"meat-off":{"name":"meat-off","category":"Food","tags":["food","beef","steak","chicken","sasuage","dinner"],"variants":{"outline":"f40a"}},"meat":{"name":"meat","category":"Food","tags":["food","beef","steak","chicken","sasuage","dinner"],"variants":{"outline":"ef12"}},"medal-2":{"name":"medal-2","category":"","tags":["decorate","uniform"],"variants":{"outline":"efcd"}},"medal":{"name":"medal","category":"","tags":["decorate","uniform"],"variants":{"outline":"ec78"}},"medical-cross-circle":{"name":"medical-cross-circle","category":"Map","tags":[],"variants":{"outline":"fae8"}},"medical-cross-off":{"name":"medical-cross-off","category":"Map","tags":["sign","hospital","help","indication"],"variants":{"outline":"f160"}},"medical-cross":{"name":"medical-cross","category":"Map","tags":["sign","hospital","help","indication"],"variants":{"outline":"ec2f","filled":"f681"}},"medicine-syrup":{"name":"medicine-syrup","category":"Health","tags":["bottle","pharmacy","healthcare","health","mixture","drug"],"variants":{"outline":"ef63"}},"meeple":{"name":"meeple","category":"Sport","tags":["pawn","board","game","wood"],"variants":{"outline":"f514"}},"melon":{"name":"melon","category":"Food","tags":[],"variants":{"outline":"fc7a"}},"menorah":{"name":"menorah","category":"Symbols","tags":["judaism","religion","cultures","jewish"],"variants":{"outline":"f58c"}},"menu-2":{"name":"menu-2","category":"System","tags":["bars","hamburger","navigation","burger"],"variants":{"outline":"ec42"}},"menu-3":{"name":"menu-3","category":"","tags":[],"variants":{"outline":"ff43"}},"menu-4":{"name":"menu-4","category":"","tags":[],"variants":{"outline":"ff42"}},"menu-deep":{"name":"menu-deep","category":"","tags":[],"variants":{"outline":"fafb"}},"menu-order":{"name":"menu-order","category":"System","tags":["move","arrows","up","down","south","north","bottom","top"],"variants":{"outline":"f5f5"}},"menu":{"name":"menu","category":"System","tags":["bars","hamburger","navigation","burger"],"variants":{"outline":"eaeb"}},"message-2-bolt":{"name":"message-2-bolt","category":"Communication","tags":[],"variants":{"outline":"f95c"}},"message-2-cancel":{"name":"message-2-cancel","category":"Communication","tags":[],"variants":{"outline":"f95d"}},"message-2-check":{"name":"message-2-check","category":"Communication","tags":[],"variants":{"outline":"f95e"}},"message-2-code":{"name":"message-2-code","category":"Communication","tags":["coding","programming","chat","program"],"variants":{"outline":"f012"}},"message-2-cog":{"name":"message-2-cog","category":"Communication","tags":[],"variants":{"outline":"f95f"}},"message-2-dollar":{"name":"message-2-dollar","category":"Communication","tags":[],"variants":{"outline":"f960"}},"message-2-down":{"name":"message-2-down","category":"Communication","tags":[],"variants":{"outline":"f961"}},"message-2-exclamation":{"name":"message-2-exclamation","category":"Communication","tags":[],"variants":{"outline":"f962"}},"message-2-heart":{"name":"message-2-heart","category":"Communication","tags":[],"variants":{"outline":"f963"}},"message-2-minus":{"name":"message-2-minus","category":"Communication","tags":[],"variants":{"outline":"f964"}},"message-2-off":{"name":"message-2-off","category":"Communication","tags":["comment","chat","reply","faq"],"variants":{"outline":"f40b"}},"message-2-pause":{"name":"message-2-pause","category":"Communication","tags":[],"variants":{"outline":"f965"}},"message-2-pin":{"name":"message-2-pin","category":"Communication","tags":[],"variants":{"outline":"f966"}},"message-2-plus":{"name":"message-2-plus","category":"Communication","tags":[],"variants":{"outline":"f967"}},"message-2-question":{"name":"message-2-question","category":"Communication","tags":[],"variants":{"outline":"f968"}},"message-2-search":{"name":"message-2-search","category":"Communication","tags":[],"variants":{"outline":"f969"}},"message-2-share":{"name":"message-2-share","category":"Communication","tags":["sharing","email","mail","communication","post"],"variants":{"outline":"f077"}},"message-2-star":{"name":"message-2-star","category":"Communication","tags":[],"variants":{"outline":"f96a"}},"message-2-up":{"name":"message-2-up","category":"Communication","tags":[],"variants":{"outline":"f96b"}},"message-2-x":{"name":"message-2-x","category":"Communication","tags":[],"variants":{"outline":"f96c"}},"message-2":{"name":"message-2","category":"Communication","tags":["comment","chat","reply","faq"],"variants":{"outline":"eaec"}},"message-bolt":{"name":"message-bolt","category":"Communication","tags":[],"variants":{"outline":"f96d"}},"message-cancel":{"name":"message-cancel","category":"Communication","tags":[],"variants":{"outline":"f96e"}},"message-chatbot":{"name":"message-chatbot","category":"Communication","tags":["automatic","robot","assistant","support"],"variants":{"outline":"f38a","filled":"fed0"}},"message-check":{"name":"message-check","category":"Communication","tags":[],"variants":{"outline":"f96f"}},"message-circle-bolt":{"name":"message-circle-bolt","category":"Communication","tags":[],"variants":{"outline":"f970"}},"message-circle-cancel":{"name":"message-circle-cancel","category":"Communication","tags":[],"variants":{"outline":"f971"}},"message-circle-check":{"name":"message-circle-check","category":"Communication","tags":[],"variants":{"outline":"f972"}},"message-circle-code":{"name":"message-circle-code","category":"Communication","tags":[],"variants":{"outline":"f973"}},"message-circle-cog":{"name":"message-circle-cog","category":"Communication","tags":[],"variants":{"outline":"f974"}},"message-circle-dollar":{"name":"message-circle-dollar","category":"Communication","tags":[],"variants":{"outline":"f975"}},"message-circle-down":{"name":"message-circle-down","category":"Communication","tags":[],"variants":{"outline":"f976"}},"message-circle-exclamation":{"name":"message-circle-exclamation","category":"Communication","tags":[],"variants":{"outline":"f977"}},"message-circle-heart":{"name":"message-circle-heart","category":"Communication","tags":[],"variants":{"outline":"f978"}},"message-circle-minus":{"name":"message-circle-minus","category":"Communication","tags":[],"variants":{"outline":"f979"}},"message-circle-off":{"name":"message-circle-off","category":"Communication","tags":["comment","chat","reply"],"variants":{"outline":"ed40"}},"message-circle-pause":{"name":"message-circle-pause","category":"Communication","tags":[],"variants":{"outline":"f97a"}},"message-circle-pin":{"name":"message-circle-pin","category":"Communication","tags":[],"variants":{"outline":"f97b"}},"message-circle-plus":{"name":"message-circle-plus","category":"Communication","tags":[],"variants":{"outline":"f97c"}},"message-circle-question":{"name":"message-circle-question","category":"Communication","tags":[],"variants":{"outline":"f97d"}},"message-circle-search":{"name":"message-circle-search","category":"Communication","tags":[],"variants":{"outline":"f97e"}},"message-circle-share":{"name":"message-circle-share","category":"Communication","tags":[],"variants":{"outline":"f97f"}},"message-circle-star":{"name":"message-circle-star","category":"Communication","tags":[],"variants":{"outline":"f980"}},"message-circle-up":{"name":"message-circle-up","category":"Communication","tags":[],"variants":{"outline":"f981"}},"message-circle-user":{"name":"message-circle-user","category":"","tags":[],"variants":{"outline":"fec5"}},"message-circle-x":{"name":"message-circle-x","category":"Communication","tags":[],"variants":{"outline":"f982"}},"message-circle":{"name":"message-circle","category":"Communication","tags":["comment","chat","reply"],"variants":{"outline":"eaed","filled":"fecf"}},"message-code":{"name":"message-code","category":"Communication","tags":["coding","programming","chat","program"],"variants":{"outline":"f013"}},"message-cog":{"name":"message-cog","category":"Communication","tags":[],"variants":{"outline":"f983"}},"message-dollar":{"name":"message-dollar","category":"Communication","tags":[],"variants":{"outline":"f984"}},"message-dots":{"name":"message-dots","category":"Communication","tags":["comment","chat","reply"],"variants":{"outline":"eaee"}},"message-down":{"name":"message-down","category":"Communication","tags":[],"variants":{"outline":"f985"}},"message-exclamation":{"name":"message-exclamation","category":"Communication","tags":[],"variants":{"outline":"f986"}},"message-forward":{"name":"message-forward","category":"Communication","tags":["email","mail","send","chat","communication","arrow"],"variants":{"outline":"f28f"}},"message-heart":{"name":"message-heart","category":"Communication","tags":[],"variants":{"outline":"f987"}},"message-language":{"name":"message-language","category":"Communication","tags":["communication","translate","alphabet","letter"],"variants":{"outline":"efae"}},"message-minus":{"name":"message-minus","category":"Communication","tags":[],"variants":{"outline":"f988"}},"message-off":{"name":"message-off","category":"Communication","tags":["comment","chat","reply","communication","conversation","faq"],"variants":{"outline":"ed41"}},"message-pause":{"name":"message-pause","category":"Communication","tags":[],"variants":{"outline":"f989"}},"message-pin":{"name":"message-pin","category":"Communication","tags":[],"variants":{"outline":"f98a"}},"message-plus":{"name":"message-plus","category":"Communication","tags":["comment","chat","reply","communication","conversation"],"variants":{"outline":"ec9a"}},"message-question":{"name":"message-question","category":"Communication","tags":[],"variants":{"outline":"f98b"}},"message-reply":{"name":"message-reply","category":"","tags":[],"variants":{"outline":"fd4d"}},"message-report":{"name":"message-report","category":"Communication","tags":["comment","chat","reply","communication","conversation"],"variants":{"outline":"ec9b","filled":"fece"}},"message-search":{"name":"message-search","category":"Communication","tags":[],"variants":{"outline":"f98c"}},"message-share":{"name":"message-share","category":"Communication","tags":["sharing","email","mail","communication","post"],"variants":{"outline":"f078"}},"message-star":{"name":"message-star","category":"Communication","tags":[],"variants":{"outline":"f98d"}},"message-up":{"name":"message-up","category":"Communication","tags":[],"variants":{"outline":"f98e"}},"message-user":{"name":"message-user","category":"","tags":[],"variants":{"outline":"fec4"}},"message-x":{"name":"message-x","category":"Communication","tags":[],"variants":{"outline":"f98f"}},"message":{"name":"message","category":"Communication","tags":["comment","chat","reply","communication","conversation","faq"],"variants":{"outline":"eaef","filled":"fecd"}},"messages-off":{"name":"messages-off","category":"Communication","tags":["chat","reply","comment","conversation","communication","faq"],"variants":{"outline":"ed42"}},"messages":{"name":"messages","category":"Communication","tags":["chat","reply","comment","conversation","communication","faq"],"variants":{"outline":"eb6c"}},"meteor-off":{"name":"meteor-off","category":"Nature","tags":["space","comet","astronomy","galaxy","cosmos"],"variants":{"outline":"f40c"}},"meteor":{"name":"meteor","category":"Nature","tags":["space","comet","astronomy","galaxy","cosmos"],"variants":{"outline":"f1fd"}},"meter-cube":{"name":"meter-cube","category":"","tags":[],"variants":{"outline":"fd7c"}},"meter-square":{"name":"meter-square","category":"","tags":[],"variants":{"outline":"fd7d"}},"metronome":{"name":"metronome","category":"","tags":[],"variants":{"outline":"fd25"}},"michelin-bib-gourmand":{"name":"michelin-bib-gourmand","category":"Food","tags":[],"variants":{"outline":"fae9"}},"michelin-star-green":{"name":"michelin-star-green","category":"Food","tags":[],"variants":{"outline":"faea"}},"michelin-star":{"name":"michelin-star","category":"Food","tags":[],"variants":{"outline":"faeb"}},"mickey":{"name":"mickey","category":"","tags":["fable","cartoon","mouse","kids"],"variants":{"outline":"f2a3","filled":"f683"}},"microphone-2-off":{"name":"microphone-2-off","category":"Media","tags":["record","sound","listen","sing"],"variants":{"outline":"f40d"}},"microphone-2":{"name":"microphone-2","category":"Media","tags":["record","sound","listen","sing"],"variants":{"outline":"ef2c"}},"microphone-off":{"name":"microphone-off","category":"Media","tags":["record","sound","listen"],"variants":{"outline":"ed16"}},"microphone":{"name":"microphone","category":"Media","tags":["record","sound","listen"],"variants":{"outline":"eaf0","filled":"fe0f"}},"microscope-off":{"name":"microscope-off","category":"Health","tags":["school","education","learning","laboratory","experimental","chemistry","biology","medical","bacteria","technology","test"],"variants":{"outline":"f40e"}},"microscope":{"name":"microscope","category":"Health","tags":["school","education","learning","laboratory","experimental","chemistry","biology","medical","bacteria","technology","test"],"variants":{"outline":"ef64"}},"microwave-off":{"name":"microwave-off","category":"Food","tags":["oven","kitchen","cooking","food","cook"],"variants":{"outline":"f264"}},"microwave":{"name":"microwave","category":"Food","tags":["oven","kitchen","cooking","food","cook"],"variants":{"outline":"f248","filled":"fe0e"}},"military-award":{"name":"military-award","category":"","tags":["achievement","honor","badge","medal","prize","army"],"variants":{"outline":"f079"}},"military-rank":{"name":"military-rank","category":"","tags":["soldier","army","private","private second class","private first class","specialist","corporal","sergeant","staff sergeant"],"variants":{"outline":"efcf","filled":"ff5e"}},"milk-off":{"name":"milk-off","category":"Food","tags":["food","drink","cow","healthy","breakfast","bottle","coffee"],"variants":{"outline":"f40f"}},"milk":{"name":"milk","category":"Food","tags":["food","drink","cow","healthy","breakfast","bottle","coffee"],"variants":{"outline":"ef13"}},"milkshake":{"name":"milkshake","category":"Food","tags":["drink","sweet","food","cocktail","cream"],"variants":{"outline":"f4c8"}},"minimize":{"name":"minimize","category":"Media","tags":["exit","close"],"variants":{"outline":"eaf1"}},"minus-vertical":{"name":"minus-vertical","category":"","tags":["subtract","less","divide"],"variants":{"outline":"eeb4"}},"minus":{"name":"minus","category":"Math","tags":["subtract","less"],"variants":{"outline":"eaf2"}},"mist-off":{"name":"mist-off","category":"Weather","tags":["weather","visibility"],"variants":{"outline":"f410"}},"mist":{"name":"mist","category":"Weather","tags":["weather","visibility"],"variants":{"outline":"ec30"}},"mobiledata-off":{"name":"mobiledata-off","category":"","tags":[],"variants":{"outline":"f9f4"}},"mobiledata":{"name":"mobiledata","category":"","tags":[],"variants":{"outline":"f9f5"}},"moneybag":{"name":"moneybag","category":"","tags":["finance","cash","dollar","currency","bank"],"variants":{"outline":"f506"}},"monkeybar":{"name":"monkeybar","category":"Maps","tags":["playground","park","monkey","bar","jungle","gym","exercise","fitness","outdoor","fun","children","kids","play","swing","jungle gym"],"variants":{"outline":"feb4"}},"mood-angry":{"name":"mood-angry","category":"Mood","tags":["mad","feeling","face","nervous"],"variants":{"outline":"f2de","filled":"ff0a"}},"mood-annoyed-2":{"name":"mood-annoyed-2","category":"Mood","tags":["appalled","agitated","upset","angry","face"],"variants":{"outline":"f2df"}},"mood-annoyed":{"name":"mood-annoyed","category":"Mood","tags":["appalled","agitated","upset","angry","face"],"variants":{"outline":"f2e0"}},"mood-bitcoin":{"name":"mood-bitcoin","category":"","tags":[],"variants":{"outline":"ff32"}},"mood-boy":{"name":"mood-boy","category":"Mood","tags":["face","emoji","emotion"],"variants":{"outline":"ed2d"}},"mood-check":{"name":"mood-check","category":"Mood","tags":["emotion","feeling","happy","tick","accept","face"],"variants":{"outline":"f7b3"}},"mood-cog":{"name":"mood-cog","category":"Mood","tags":["emotion","feeling","happy","gear","preferences","face"],"variants":{"outline":"f7b4"}},"mood-confuzed":{"name":"mood-confuzed","category":"Mood","tags":["face","emoji","emotion","frown"],"variants":{"outline":"eaf3","filled":"f7f2"}},"mood-crazy-happy":{"name":"mood-crazy-happy","category":"Mood","tags":["good","excited","cheerful","jolly","delighted","lucky"],"variants":{"outline":"ed90","filled":"ff09"}},"mood-cry":{"name":"mood-cry","category":"Mood","tags":["face","emoji","emotion","mad"],"variants":{"outline":"ecbb"}},"mood-dollar":{"name":"mood-dollar","category":"Mood","tags":["emotion","feeling","happy","face","money","coin"],"variants":{"outline":"f7b5"}},"mood-edit":{"name":"mood-edit","category":"Mood","tags":[],"variants":{"outline":"fa05"}},"mood-empty":{"name":"mood-empty","category":"Mood","tags":["face","emoji","emotion"],"variants":{"outline":"eeb5","filled":"f7f3"}},"mood-happy":{"name":"mood-happy","category":"Mood","tags":["face","emoji","emotion"],"variants":{"outline":"eaf4","filled":"f7f4"}},"mood-heart":{"name":"mood-heart","category":"Mood","tags":["emotion","feeling","happy","face","love","care","romantic"],"variants":{"outline":"f7b6"}},"mood-kid":{"name":"mood-kid","category":"Mood","tags":["face","emoji","emotion"],"variants":{"outline":"ec03","filled":"f7f5"}},"mood-look-down":{"name":"mood-look-down","category":"","tags":["downward-look","gaze-down","low-mood","sad","disheartened","dejected","downcast","downward-glance","melancholy","blue"],"variants":{"outline":"fd37"}},"mood-look-left":{"name":"mood-look-left","category":"Mood","tags":["west","face","direction"],"variants":{"outline":"f2c5"}},"mood-look-right":{"name":"mood-look-right","category":"Mood","tags":["east","face","direction"],"variants":{"outline":"f2c6"}},"mood-look-up":{"name":"mood-look-up","category":"","tags":["upward-look","gaze-up","optimistic","positive-mood","cheerful","uplifting","hopeful","skyward-glance","inspired","joyful"],"variants":{"outline":"fd38"}},"mood-minus":{"name":"mood-minus","category":"Mood","tags":["emotion","feeling","happy","face","cancel","remove","delete"],"variants":{"outline":"f7b7"}},"mood-nerd":{"name":"mood-nerd","category":"Mood","tags":["geek","face","bore"],"variants":{"outline":"f2e1"}},"mood-nervous":{"name":"mood-nervous","category":"Mood","tags":["angry","stressed","worry","frustrated"],"variants":{"outline":"ef96"}},"mood-neutral":{"name":"mood-neutral","category":"Mood","tags":["face","emoji","emotion"],"variants":{"outline":"eaf5","filled":"f7f6"}},"mood-off":{"name":"mood-off","category":"Mood","tags":["sad","happy","emoji","smiley","neutral","face"],"variants":{"outline":"f161"}},"mood-pin":{"name":"mood-pin","category":"Mood","tags":["emotion","feeling","happy","face","location","map"],"variants":{"outline":"f7b8"}},"mood-plus":{"name":"mood-plus","category":"Mood","tags":["emotion","feeling","happy","face","add","new"],"variants":{"outline":"f7b9"}},"mood-puzzled":{"name":"mood-puzzled","category":"","tags":["confused-mood","perplexed","bewildered","puzzled","uncertain","ambiguous","confounding","mystery","riddle","enigma"],"variants":{"outline":"fd39"}},"mood-sad-2":{"name":"mood-sad-2","category":"Mood","tags":["face","emoji","emotion","mad"],"variants":{"outline":"f2e2"}},"mood-sad-dizzy":{"name":"mood-sad-dizzy","category":"Mood","tags":["face","emoji","emotion","mad","displeased"],"variants":{"outline":"f2e3"}},"mood-sad-squint":{"name":"mood-sad-squint","category":"Mood","tags":["face","emoji","emotion","mad"],"variants":{"outline":"f2e4"}},"mood-sad":{"name":"mood-sad","category":"Mood","tags":["face","emoji","emotion","mad"],"variants":{"outline":"eaf6","filled":"f7f7"}},"mood-search":{"name":"mood-search","category":"Mood","tags":["emotion","feeling","happy","face","find","explore"],"variants":{"outline":"f7ba"}},"mood-share":{"name":"mood-share","category":"Mood","tags":[],"variants":{"outline":"fa06"}},"mood-sick":{"name":"mood-sick","category":"Mood","tags":["face","emoji","emotion","suffering","unhealthy"],"variants":{"outline":"f2e5"}},"mood-silence":{"name":"mood-silence","category":"Mood","tags":["face","emoji","emotion","quiet"],"variants":{"outline":"f2e6"}},"mood-sing":{"name":"mood-sing","category":"Mood","tags":["face","emoji","emotion","song","melody"],"variants":{"outline":"f2c7"}},"mood-smile-beam":{"name":"mood-smile-beam","category":"Mood","tags":["face","emoji","emotion","happy","smiley"],"variants":{"outline":"f2e7"}},"mood-smile-dizzy":{"name":"mood-smile-dizzy","category":"Mood","tags":["face","emoji","emotion","happy","smiley"],"variants":{"outline":"f2e8"}},"mood-smile":{"name":"mood-smile","category":"Mood","tags":["face","emoji","emotion"],"variants":{"outline":"eaf7","filled":"f7f8"}},"mood-surprised":{"name":"mood-surprised","category":"Mood","tags":["face","emoji","emotion"],"variants":{"outline":"ec04"}},"mood-tongue-wink-2":{"name":"mood-tongue-wink-2","category":"Mood","tags":["face","emoji","emotion","happy","joke"],"variants":{"outline":"f2e9"}},"mood-tongue-wink":{"name":"mood-tongue-wink","category":"Mood","tags":["face","emoji","emotion","happy","joke"],"variants":{"outline":"f2ea"}},"mood-tongue":{"name":"mood-tongue","category":"Mood","tags":["face","emoji","emotion"],"variants":{"outline":"eb95"}},"mood-unamused":{"name":"mood-unamused","category":"Mood","tags":["face","emoji","emotion","unfunny","unhappy","unsmilling"],"variants":{"outline":"f2eb"}},"mood-up":{"name":"mood-up","category":"Mood","tags":["emotion","feeling","happy","face","top"],"variants":{"outline":"f7bb"}},"mood-wink-2":{"name":"mood-wink-2","category":"Mood","tags":["face","emoji","emotion","smile","funny","happy"],"variants":{"outline":"f2ec"}},"mood-wink":{"name":"mood-wink","category":"Mood","tags":["face","emoji","emotion","smile","funny","happy"],"variants":{"outline":"f2ed"}},"mood-wrrr":{"name":"mood-wrrr","category":"Mood","tags":["face","emoji","emotion","disgusted"],"variants":{"outline":"f2ee","filled":"ff08"}},"mood-x":{"name":"mood-x","category":"Mood","tags":["emotion","feeling","happy","face","delete","close"],"variants":{"outline":"f7bc"}},"mood-xd":{"name":"mood-xd","category":"Mood","tags":["face","emoji","emotion","funny","happy","smiley","joke"],"variants":{"outline":"f2ef"}},"moon-2":{"name":"moon-2","category":"Weather","tags":["night","dark mode"],"variants":{"outline":"ece6"}},"moon-off":{"name":"moon-off","category":"Weather","tags":["night","dark mode"],"variants":{"outline":"f162"}},"moon-stars":{"name":"moon-stars","category":"Weather","tags":["night","dark mode"],"variants":{"outline":"ece7"}},"moon":{"name":"moon","category":"Weather","tags":["night","dark mode"],"variants":{"outline":"eaf8","filled":"f684"}},"moped":{"name":"moped","category":"Vehicles","tags":["vehicle","drive","driver","engine","motor","journey","trip"],"variants":{"outline":"ecbc"}},"motorbike":{"name":"motorbike","category":"Vehicles","tags":["engine","ride","trip","journey","road","street","vehicle","motorcycle"],"variants":{"outline":"eeb6"}},"mountain-off":{"name":"mountain-off","category":"Nature","tags":["alps","camping","mount everest","trekking"],"variants":{"outline":"f411"}},"mountain":{"name":"mountain","category":"Nature","tags":["alps","camping","mount everest","trekking"],"variants":{"outline":"ef97"}},"mouse-2":{"name":"mouse-2","category":"Devices","tags":["computer","hardware","pointer","cursor","device"],"variants":{"outline":"f1d7"}},"mouse-off":{"name":"mouse-off","category":"Devices","tags":["pointer","cursor","device"],"variants":{"outline":"f163"}},"mouse":{"name":"mouse","category":"Devices","tags":["pointer","cursor","device"],"variants":{"outline":"eaf9","filled":"fb2f"}},"moustache":{"name":"moustache","category":"","tags":["man","face","beard","male"],"variants":{"outline":"f4c9"}},"movie-off":{"name":"movie-off","category":"Media","tags":["film","video","cinema"],"variants":{"outline":"f164"}},"movie":{"name":"movie","category":"Media","tags":["film","video","cinema"],"variants":{"outline":"eafa"}},"mug-off":{"name":"mug-off","category":"Food","tags":["tea","coffee","drink","container","jug"],"variants":{"outline":"f165"}},"mug":{"name":"mug","category":"Food","tags":["tea","coffee","drink","container","jug"],"variants":{"outline":"eafb"}},"multiplier-0-5x":{"name":"multiplier-0-5x","category":"Math","tags":["count","calculate","math"],"variants":{"outline":"ef41"}},"multiplier-1-5x":{"name":"multiplier-1-5x","category":"Math","tags":["count","calculate","math"],"variants":{"outline":"ef42"}},"multiplier-1x":{"name":"multiplier-1x","category":"Math","tags":["count","calculate","math"],"variants":{"outline":"ef43"}},"multiplier-2x":{"name":"multiplier-2x","category":"Math","tags":["count","calculate","math"],"variants":{"outline":"ef44"}},"mushroom-off":{"name":"mushroom-off","category":"Food","tags":["food","vegetable","cooking","fungus","mushrooming"],"variants":{"outline":"f412"}},"mushroom":{"name":"mushroom","category":"Food","tags":["food","vegetable","cooking","fungus","mushrooming"],"variants":{"outline":"ef14","filled":"f7f9"}},"music-bolt":{"name":"music-bolt","category":"","tags":[],"variants":{"outline":"fbd5"}},"music-cancel":{"name":"music-cancel","category":"","tags":[],"variants":{"outline":"fbd6"}},"music-check":{"name":"music-check","category":"","tags":[],"variants":{"outline":"fbd7"}},"music-code":{"name":"music-code","category":"","tags":[],"variants":{"outline":"fbd8"}},"music-cog":{"name":"music-cog","category":"","tags":[],"variants":{"outline":"fbd9"}},"music-discount":{"name":"music-discount","category":"","tags":[],"variants":{"outline":"fbda"}},"music-dollar":{"name":"music-dollar","category":"","tags":[],"variants":{"outline":"fbdb"}},"music-down":{"name":"music-down","category":"","tags":[],"variants":{"outline":"fbdc"}},"music-exclamation":{"name":"music-exclamation","category":"","tags":[],"variants":{"outline":"fbdd"}},"music-heart":{"name":"music-heart","category":"","tags":[],"variants":{"outline":"fbde"}},"music-minus":{"name":"music-minus","category":"","tags":[],"variants":{"outline":"fbdf"}},"music-off":{"name":"music-off","category":"Media","tags":["sound","mp3","album","speakers","melody"],"variants":{"outline":"f166"}},"music-pause":{"name":"music-pause","category":"","tags":[],"variants":{"outline":"fbe0"}},"music-pin":{"name":"music-pin","category":"","tags":[],"variants":{"outline":"fbe1"}},"music-plus":{"name":"music-plus","category":"","tags":[],"variants":{"outline":"fbe2"}},"music-question":{"name":"music-question","category":"","tags":[],"variants":{"outline":"fbe3"}},"music-search":{"name":"music-search","category":"","tags":[],"variants":{"outline":"fbe4"}},"music-share":{"name":"music-share","category":"","tags":[],"variants":{"outline":"fbe5"}},"music-star":{"name":"music-star","category":"","tags":[],"variants":{"outline":"fbe6"}},"music-up":{"name":"music-up","category":"","tags":[],"variants":{"outline":"fbe7"}},"music-x":{"name":"music-x","category":"","tags":[],"variants":{"outline":"fbe8"}},"music":{"name":"music","category":"Media","tags":["sound","mp3","album","speakers","melody"],"variants":{"outline":"eafc"}},"navigation-bolt":{"name":"navigation-bolt","category":"","tags":[],"variants":{"outline":"fbe9"}},"navigation-cancel":{"name":"navigation-cancel","category":"","tags":[],"variants":{"outline":"fbea"}},"navigation-check":{"name":"navigation-check","category":"","tags":[],"variants":{"outline":"fbeb"}},"navigation-code":{"name":"navigation-code","category":"","tags":[],"variants":{"outline":"fbec"}},"navigation-cog":{"name":"navigation-cog","category":"","tags":[],"variants":{"outline":"fbed"}},"navigation-discount":{"name":"navigation-discount","category":"","tags":[],"variants":{"outline":"fbee"}},"navigation-dollar":{"name":"navigation-dollar","category":"","tags":[],"variants":{"outline":"fbef"}},"navigation-down":{"name":"navigation-down","category":"","tags":[],"variants":{"outline":"fbf0"}},"navigation-east":{"name":"navigation-east","category":"Map","tags":[],"variants":{"outline":"fcba"}},"navigation-exclamation":{"name":"navigation-exclamation","category":"","tags":[],"variants":{"outline":"fbf1"}},"navigation-heart":{"name":"navigation-heart","category":"","tags":[],"variants":{"outline":"fbf2"}},"navigation-minus":{"name":"navigation-minus","category":"","tags":[],"variants":{"outline":"fbf3"}},"navigation-north":{"name":"navigation-north","category":"Map","tags":[],"variants":{"outline":"fcbb"}},"navigation-off":{"name":"navigation-off","category":"Map","tags":["map","location","direction","pin","gps"],"variants":{"outline":"f413"}},"navigation-pause":{"name":"navigation-pause","category":"","tags":[],"variants":{"outline":"fbf4"}},"navigation-pin":{"name":"navigation-pin","category":"","tags":[],"variants":{"outline":"fbf5"}},"navigation-plus":{"name":"navigation-plus","category":"","tags":[],"variants":{"outline":"fbf6"}},"navigation-question":{"name":"navigation-question","category":"","tags":[],"variants":{"outline":"fbf7"}},"navigation-search":{"name":"navigation-search","category":"","tags":[],"variants":{"outline":"fbf8"}},"navigation-share":{"name":"navigation-share","category":"","tags":[],"variants":{"outline":"fbf9"}},"navigation-south":{"name":"navigation-south","category":"Map","tags":[],"variants":{"outline":"fcbc"}},"navigation-star":{"name":"navigation-star","category":"","tags":[],"variants":{"outline":"fbfa"}},"navigation-top":{"name":"navigation-top","category":"Map","tags":[],"variants":{"outline":"faec"}},"navigation-up":{"name":"navigation-up","category":"","tags":[],"variants":{"outline":"fbfb"}},"navigation-west":{"name":"navigation-west","category":"Map","tags":[],"variants":{"outline":"fcbd"}},"navigation-x":{"name":"navigation-x","category":"","tags":[],"variants":{"outline":"fbfc"}},"navigation":{"name":"navigation","category":"Map","tags":["map","location","direction","pin","gps"],"variants":{"outline":"f2c8","filled":"f685"}},"needle-thread":{"name":"needle-thread","category":"","tags":["sewing","tailoring","craft","tailor"],"variants":{"outline":"f507"}},"needle":{"name":"needle","category":"","tags":["sewing","tailoring","craft","tailor"],"variants":{"outline":"f508"}},"network-off":{"name":"network-off","category":"Computers","tags":["connection","internet","communication","connect","web","signal"],"variants":{"outline":"f414"}},"network":{"name":"network","category":"Computers","tags":["connection","internet","communication","connect","web","signal"],"variants":{"outline":"f09f"}},"new-section":{"name":"new-section","category":"","tags":["add","element","component","layout","page"],"variants":{"outline":"ebc1"}},"news-off":{"name":"news-off","category":"Document","tags":["newspaper","article"],"variants":{"outline":"f167"}},"news":{"name":"news","category":"Document","tags":["newspaper","article"],"variants":{"outline":"eafd"}},"nfc-off":{"name":"nfc-off","category":"Devices","tags":["payment","nfc","cash","chip","shopping","cashless","pass","contactless"],"variants":{"outline":"f168"}},"nfc":{"name":"nfc","category":"Devices","tags":["payment","nfc","cash","chip","shopping","cashless","pass","contactless"],"variants":{"outline":"eeb7"}},"no-copyright":{"name":"no-copyright","category":"System","tags":["cancel","copy","restriction"],"variants":{"outline":"efb9"}},"no-creative-commons":{"name":"no-creative-commons","category":"System","tags":["license","cancel","copyrights"],"variants":{"outline":"efba"}},"no-derivatives":{"name":"no-derivatives","category":"System","tags":["law","license"],"variants":{"outline":"efbb"}},"north-star":{"name":"north-star","category":"Map","tags":["compas","location","point","christmas","direction"],"variants":{"outline":"f014"}},"note-off":{"name":"note-off","category":"Document","tags":["checkbox","brief","record","write","message"],"variants":{"outline":"f169"}},"note":{"name":"note","category":"Document","tags":["checkbox","brief","record","write","message"],"variants":{"outline":"eb6d"}},"notebook-off":{"name":"notebook-off","category":"Document","tags":["study","learn","diary","write","journal","page","paper","jot down"],"variants":{"outline":"f415"}},"notebook":{"name":"notebook","category":"Document","tags":["study","learn","diary","write","journal","page","paper","jot down"],"variants":{"outline":"eb96"}},"notes-off":{"name":"notes-off","category":"Document","tags":["notetaking","journal","draft","idea","to-do list"],"variants":{"outline":"f16a"}},"notes":{"name":"notes","category":"Document","tags":["notetaking","journal","draft","idea","to-do list"],"variants":{"outline":"eb6e"}},"notification-off":{"name":"notification-off","category":"System","tags":["bell","alarm","reminder","important"],"variants":{"outline":"f16b"}},"notification":{"name":"notification","category":"System","tags":["bell","alarm","reminder","important"],"variants":{"outline":"eafe"}},"number-0-small":{"name":"number-0-small","category":"Numbers","tags":["zero","nil",null,"none","naught","nought","nothing","void","zilch","zip"],"variants":{"outline":"fce1"}},"number-0":{"name":"number-0","category":"Numbers","tags":["zero","maths","value","quantity","calculate","calculation","total","amount","sum","order","digit"],"variants":{"outline":"edf0"}},"number-1-small":{"name":"number-1-small","category":"Numbers","tags":["one","singular","first","unit","solitary","individual","alone","unique","sole","individualistic"],"variants":{"outline":"fce2"}},"number-1":{"name":"number-1","category":"Numbers","tags":["one","maths","value","quantity","calculate","calculation","total","amount","sum","order","digit"],"variants":{"outline":"edf1"}},"number-10-small":{"name":"number-10-small","category":"Numbers","tags":["ten","decade","decuple","decad","tenfold","decenary","dec","decuplet","tenth","deca"],"variants":{"outline":"fce3"}},"number-11-small":{"name":"number-11-small","category":"Numbers","tags":["eleven","undecade","eleventh","undecuple","undecad","elevenfold","undecenary","undec","undecuplet","11th"],"variants":{"outline":"fce4"}},"number-12-small":{"name":"number-12-small","category":"Numbers","tags":["twelve","duodecade","twelfth","duodecuple","duodecad","twelvefold","duodenary","duodec","duodecuplet","12th"],"variants":{"outline":"fce5"}},"number-123":{"name":"number-123","category":"Numbers","tags":["numbers","digit","one","two","three"],"variants":{"outline":"f554"}},"number-13-small":{"name":"number-13-small","category":"Numbers","tags":["thirteen","thirteenth","tredecade","tredecuple","tredecad","thirteenfold","tredecenary","tredec","tredecuplet","13th"],"variants":{"outline":"fce6"}},"number-14-small":{"name":"number-14-small","category":"Numbers","tags":["fourteen","fourteenth","quattuordecade","quattuordecuple","quattuordecad","fourteenfold","quattuordecenary","quattuordec","quattuordecuplet","14th"],"variants":{"outline":"fce7"}},"number-15-small":{"name":"number-15-small","category":"Numbers","tags":["fifteen","fifteenth","quindecade","quindecuple","quindecad","fifteenfold","quindecenary","quindec","quindecuplet","15th"],"variants":{"outline":"fce8"}},"number-16-small":{"name":"number-16-small","category":"Numbers","tags":["sixteen","sixteenth","sexdecade","sexdecuple","sexdecad","sixteenfold","sexdecenary","sexdec","sexdecuplet","16th"],"variants":{"outline":"fce9"}},"number-17-small":{"name":"number-17-small","category":"Numbers","tags":["seventeen","seventeenth","septendecade","septendecuple","septendecad","seventeenfold","septendecenary","septendec","septendecuplet","17th"],"variants":{"outline":"fcea"}},"number-18-small":{"name":"number-18-small","category":"Numbers","tags":["eighteen","eighteenth","octodecade","octodecuple","octodecad","eighteenfold","octodecenary","octodec","octodecuplet","18th"],"variants":{"outline":"fceb"}},"number-19-small":{"name":"number-19-small","category":"Numbers","tags":["nineteen","nineteenth","novendecade","novendecuple","novendecad","nineteenfold","novendecenary","novendec","novendecuplet","19th"],"variants":{"outline":"fcec"}},"number-2-small":{"name":"number-2-small","category":"Numbers","tags":["two","pair","duo","double","twofold","dual","second","couple","dyad","binary"],"variants":{"outline":"fced"}},"number-2":{"name":"number-2","category":"Numbers","tags":["two","maths","value","quantity","calculate","calculation","total","amount","sum","order","digit"],"variants":{"outline":"edf2"}},"number-20-small":{"name":"number-20-small","category":"Numbers","tags":["twenty","twentieth","vigintidecade","vigintidecuple","vigintidecad","twentyfold","vigintidecenary","vigintidec","vigintidecuplet","20th"],"variants":{"outline":"fcee"}},"number-21-small":{"name":"number-21-small","category":"Numbers","tags":["twenty-one","21st","twenty-first","viginti-uno","viginti-first","twenty","and","one","plus","21th"],"variants":{"outline":"fcef"}},"number-22-small":{"name":"number-22-small","category":"Numbers","tags":["twenty-two","22nd","twenty-second","viginti-duo","viginti-second","twenty","and","two","plus","2th2"],"variants":{"outline":"fcf0"}},"number-23-small":{"name":"number-23-small","category":"Numbers","tags":["twenty-three","23rd","twenty-third","viginti-tertio","viginti-third","twenty","and","three","plus",23],"variants":{"outline":"fcf1"}},"number-24-small":{"name":"number-24-small","category":"Numbers","tags":["twenty-four","24th","twenty-fourth","viginti-quarto","viginti-fourth","twenty","and","four","plus",24],"variants":{"outline":"fcf2"}},"number-25-small":{"name":"number-25-small","category":"Numbers","tags":["twenty-five","25th","twenty-fifth","viginti-quinto","viginti-fifth","twenty","and","five","plus",25],"variants":{"outline":"fcf3"}},"number-26-small":{"name":"number-26-small","category":"Numbers","tags":["twenty-six","26th","twenty-sixth","viginti-sexto","viginti-sixth","twenty","and","six","plus",26],"variants":{"outline":"fcf4"}},"number-27-small":{"name":"number-27-small","category":"Numbers","tags":["twenty-seven","27th","twenty-seventh","viginti-septimo","viginti-seventh","twenty","and","seven","plus",27],"variants":{"outline":"fcf5"}},"number-28-small":{"name":"number-28-small","category":"Numbers","tags":["twenty-eight","28th","twenty-eighth","viginti-octavo","viginti-eighth","twenty","and","eight","plus",28],"variants":{"outline":"fcf6"}},"number-29-small":{"name":"number-29-small","category":"Numbers","tags":["twenty-nine","29th","twenty-ninth","viginti-nono","viginti-ninth","twenty","and","nine","plus",29],"variants":{"outline":"fcf7"}},"number-3-small":{"name":"number-3-small","category":"Numbers","tags":["three","trio","triplet","third","treble","triad","tertiary","threesome","triple","triangular"],"variants":{"outline":"fcf8"}},"number-3":{"name":"number-3","category":"Numbers","tags":["three","maths","value","quantity","calculate","calculation","total","amount","sum","order","digit"],"variants":{"outline":"edf3"}},"number-4-small":{"name":"number-4-small","category":"Numbers","tags":["four","quartet","quadruple","tetrad","fourfold","quaternary","quadrant","quartile","quadruplet","quad"],"variants":{"outline":"fcf9"}},"number-4":{"name":"number-4","category":"Numbers","tags":["four","maths","value","quantity","calculate","calculation","total","amount","sum","order","digit"],"variants":{"outline":"edf4"}},"number-5-small":{"name":"number-5-small","category":"Numbers","tags":["five","quintet","quintuple","pentad","fivefold","quinary","quint","quintuplet","fifth","penta"],"variants":{"outline":"fcfa"}},"number-5":{"name":"number-5","category":"Numbers","tags":["five","maths","value","quantity","calculate","calculation","total","amount","sum","order","digit"],"variants":{"outline":"edf5"}},"number-6-small":{"name":"number-6-small","category":"Numbers","tags":["six","sextet","sextuple","hexad","sixfold","senary","sextuplet","hexagonal","sixth","hex"],"variants":{"outline":"fcfb"}},"number-6":{"name":"number-6","category":"Numbers","tags":["six","maths","value","quantity","calculate","calculation","total","amount","sum","order","digit"],"variants":{"outline":"edf6"}},"number-7-small":{"name":"number-7-small","category":"Numbers","tags":["seven","septet","septuple","heptad","sevenfold","septenary","sept","septuplet","seventh","hepta"],"variants":{"outline":"fcfc"}},"number-7":{"name":"number-7","category":"Numbers","tags":["seven","maths","value","quantity","calculate","calculation","total","amount","sum","order","digit"],"variants":{"outline":"edf7"}},"number-8-small":{"name":"number-8-small","category":"Numbers","tags":["eight","octet","octuple","octad","eightfold","octenary","oct","octuplet","eighth","octa"],"variants":{"outline":"fcfd"}},"number-8":{"name":"number-8","category":"Numbers","tags":["eight","maths","value","quantity","calculate","calculation","total","amount","sum","order","digit"],"variants":{"outline":"edf8"}},"number-9-small":{"name":"number-9-small","category":"Numbers","tags":["nine","nonet","nonuple","ennead","ninefold","novenary","non","nonuplet","ninth","ennea"],"variants":{"outline":"fcfe"}},"number-9":{"name":"number-9","category":"Numbers","tags":["nine","maths","value","quantity","calculate","calculation","total","amount","sum","order","digit"],"variants":{"outline":"edf9"}},"number":{"name":"number","category":"Numbers","tags":["one","two","three","four","five","six","seven","eight","nine","ten","math","counting"],"variants":{"outline":"f1fe"}},"numbers":{"name":"numbers","category":"Numbers","tags":["math","counting","calculator","calculate","one","two","three","four","five"],"variants":{"outline":"f015"}},"nurse":{"name":"nurse","category":"Health","tags":["hospital","doctor","medical","woman","emergency","medicine"],"variants":{"outline":"ef65"}},"nut":{"name":"nut","category":"","tags":[],"variants":{"outline":"fc61"}},"object-scan":{"name":"object-scan","category":"","tags":[],"variants":{"outline":"fef1"}},"octagon-minus-2":{"name":"octagon-minus-2","category":"Shapes","tags":[],"variants":{"outline":"fc91"}},"octagon-minus":{"name":"octagon-minus","category":"Shapes","tags":[],"variants":{"outline":"fc92"}},"octagon-off":{"name":"octagon-off","category":"Shapes","tags":["shape","geometric","math","2d","building","government"],"variants":{"outline":"eeb8"}},"octagon-plus-2":{"name":"octagon-plus-2","category":"Shapes","tags":[],"variants":{"outline":"fc93"}},"octagon-plus":{"name":"octagon-plus","category":"Shapes","tags":[],"variants":{"outline":"fc94"}},"octagon":{"name":"octagon","category":"Shapes","tags":["shape","geometric","math","2d","building","government"],"variants":{"outline":"ecbd","filled":"f686"}},"octahedron-off":{"name":"octahedron-off","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"faac"}},"octahedron-plus":{"name":"octahedron-plus","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"faad"}},"octahedron":{"name":"octahedron","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"faae"}},"old":{"name":"old","category":"Health","tags":["senior","person","elderly","age"],"variants":{"outline":"eeb9"}},"olympics-off":{"name":"olympics-off","category":"Sport","tags":["game","play","sport","sportsman","champion","win","medal","sporting","event","competition","athlete"],"variants":{"outline":"f416"}},"olympics":{"name":"olympics","category":"Sport","tags":["game","play","sport","sportsman","champion","win","medal","sporting","event","competition","athlete"],"variants":{"outline":"eeba"}},"om":{"name":"om","category":"Symbols","tags":["hinduism","religion","hindu","symbol"],"variants":{"outline":"f58d"}},"omega":{"name":"omega","category":"Math","tags":["alphabet","greek","symbol","final","last"],"variants":{"outline":"eb97"}},"outbound":{"name":"outbound","category":"","tags":["call","exit","telephone","out"],"variants":{"outline":"f249"}},"outlet":{"name":"outlet","category":"","tags":["socket","electricity","electrical","plug in","device"],"variants":{"outline":"ebd7"}},"oval-vertical":{"name":"oval-vertical","category":"Shapes","tags":["shape","graphic","circle"],"variants":{"outline":"f02d","filled":"f688"}},"oval":{"name":"oval","category":"Shapes","tags":["shape","graphic","egg","circle","zero"],"variants":{"outline":"f02e","filled":"f687"}},"overline":{"name":"overline","category":"Text","tags":["above","overbar","overscore","horizontal"],"variants":{"outline":"eebb"}},"package-export":{"name":"package-export","category":"","tags":["npm","box","container","delivery","logistic"],"variants":{"outline":"f07a"}},"package-import":{"name":"package-import","category":"","tags":["npm","box","container","delivery","shipping","courier"],"variants":{"outline":"f07b"}},"package-off":{"name":"package-off","category":"E-commerce","tags":["npm","box","container"],"variants":{"outline":"f16c"}},"package":{"name":"package","category":"E-commerce","tags":["npm","box","container"],"variants":{"outline":"eaff"}},"packages":{"name":"packages","category":"","tags":["delivery","boxes","storage"],"variants":{"outline":"f2c9"}},"pacman":{"name":"pacman","category":"","tags":["game","play","online","maze","eat","dot","ghost"],"variants":{"outline":"eebc"}},"page-break":{"name":"page-break","category":"Document","tags":["summary","feature","element","css"],"variants":{"outline":"ec81"}},"paint-off":{"name":"paint-off","category":"Design","tags":["brush","renovation","refurbishment","color","wall"],"variants":{"outline":"f16d"}},"paint":{"name":"paint","category":"Design","tags":["brush","renovation","refurbishment","color","wall"],"variants":{"outline":"eb00","filled":"f75f"}},"palette-off":{"name":"palette-off","category":"Design","tags":["color","paint","painter","picture","board","artist"],"variants":{"outline":"f16e"}},"palette":{"name":"palette","category":"Design","tags":["color","paint","painter","picture","board","artist"],"variants":{"outline":"eb01"}},"panorama-horizontal-off":{"name":"panorama-horizontal-off","category":"Photography","tags":["photo","picture","panoramic"],"variants":{"outline":"f417"}},"panorama-horizontal":{"name":"panorama-horizontal","category":"Photography","tags":["photo","picture","panoramic"],"variants":{"outline":"ed33","filled":"fecc"}},"panorama-vertical-off":{"name":"panorama-vertical-off","category":"Photography","tags":["photo","picture","panoramic"],"variants":{"outline":"f418"}},"panorama-vertical":{"name":"panorama-vertical","category":"Photography","tags":["photo","picture","panoramic"],"variants":{"outline":"ed34","filled":"fecb"}},"paper-bag-off":{"name":"paper-bag-off","category":"Food","tags":["recycle","shopping","ecology","food"],"variants":{"outline":"f16f"}},"paper-bag":{"name":"paper-bag","category":"Food","tags":["recycle","shopping","ecology","food"],"variants":{"outline":"f02f"}},"paperclip":{"name":"paperclip","category":"","tags":["attachment","annex","hold"],"variants":{"outline":"eb02"}},"parachute-off":{"name":"parachute-off","category":"Vehicles","tags":["plane","aircraft","land","float","pilot"],"variants":{"outline":"f170"}},"parachute":{"name":"parachute","category":"Vehicles","tags":["plane","aircraft","land","float","pilot"],"variants":{"outline":"ed7c"}},"parentheses-off":{"name":"parentheses-off","category":"Math","tags":["brackets","aside","punctuation","mark","insert"],"variants":{"outline":"f171"}},"parentheses":{"name":"parentheses","category":"Math","tags":["brackets","aside","punctuation","mark","insert"],"variants":{"outline":"ebd8"}},"parking-circle":{"name":"parking-circle","category":"","tags":["parking","parking-lot","circle-parking","vehicle-parking","parking-zone","parking-area","parking-circle","car-park","round-parking","circle-lot"],"variants":{"outline":"fd5a","filled":"feca"}},"parking-off":{"name":"parking-off","category":"Map","tags":["sign","car","vehicle","space"],"variants":{"outline":"f172"}},"parking":{"name":"parking","category":"Map","tags":["sign","car","vehicle","space"],"variants":{"outline":"eb03"}},"password-fingerprint":{"name":"password-fingerprint","category":"System","tags":[],"variants":{"outline":"fc7b"}},"password-mobile-phone":{"name":"password-mobile-phone","category":"System","tags":[],"variants":{"outline":"fc7c"}},"password-user":{"name":"password-user","category":"System","tags":[],"variants":{"outline":"fc7d"}},"password":{"name":"password","category":"System","tags":["lock","secure","privacy","locked","login"],"variants":{"outline":"f4ca"}},"paw-off":{"name":"paw-off","category":"","tags":["animal","dog","cat","foot","pets"],"variants":{"outline":"f419"}},"paw":{"name":"paw","category":"","tags":["animal","dog","cat","foot","pets"],"variants":{"outline":"eff9","filled":"f689"}},"paywall":{"name":"paywall","category":"","tags":[],"variants":{"outline":"fd7e"}},"pdf":{"name":"pdf","category":"Extensions","tags":["file","document","type","format","extencion"],"variants":{"outline":"f7ac"}},"peace":{"name":"peace","category":"Symbols","tags":["love","hippy","minority","opinion","equilibrium"],"variants":{"outline":"ecbe"}},"pencil-bolt":{"name":"pencil-bolt","category":"","tags":[],"variants":{"outline":"fbfd"}},"pencil-cancel":{"name":"pencil-cancel","category":"","tags":[],"variants":{"outline":"fbfe"}},"pencil-check":{"name":"pencil-check","category":"","tags":[],"variants":{"outline":"fbff"}},"pencil-code":{"name":"pencil-code","category":"","tags":[],"variants":{"outline":"fc00"}},"pencil-cog":{"name":"pencil-cog","category":"","tags":[],"variants":{"outline":"fc01"}},"pencil-discount":{"name":"pencil-discount","category":"","tags":[],"variants":{"outline":"fc02"}},"pencil-dollar":{"name":"pencil-dollar","category":"","tags":[],"variants":{"outline":"fc03"}},"pencil-down":{"name":"pencil-down","category":"","tags":[],"variants":{"outline":"fc04"}},"pencil-exclamation":{"name":"pencil-exclamation","category":"","tags":[],"variants":{"outline":"fc05"}},"pencil-heart":{"name":"pencil-heart","category":"","tags":[],"variants":{"outline":"fc06"}},"pencil-minus":{"name":"pencil-minus","category":"Design","tags":["dash","edit","marker","delete","remove"],"variants":{"outline":"f1eb"}},"pencil-off":{"name":"pencil-off","category":"Design","tags":["write","draft","edit","note"],"variants":{"outline":"f173"}},"pencil-pause":{"name":"pencil-pause","category":"","tags":[],"variants":{"outline":"fc07"}},"pencil-pin":{"name":"pencil-pin","category":"","tags":[],"variants":{"outline":"fc08"}},"pencil-plus":{"name":"pencil-plus","category":"Design","tags":["add","edit","write","create","more"],"variants":{"outline":"f1ec"}},"pencil-question":{"name":"pencil-question","category":"","tags":[],"variants":{"outline":"fc09"}},"pencil-search":{"name":"pencil-search","category":"","tags":[],"variants":{"outline":"fc0a"}},"pencil-share":{"name":"pencil-share","category":"","tags":[],"variants":{"outline":"fc0b"}},"pencil-star":{"name":"pencil-star","category":"","tags":[],"variants":{"outline":"fc0c"}},"pencil-up":{"name":"pencil-up","category":"","tags":[],"variants":{"outline":"fc0d"}},"pencil-x":{"name":"pencil-x","category":"","tags":[],"variants":{"outline":"fc0e"}},"pencil":{"name":"pencil","category":"Design","tags":["write","draft","edit","note"],"variants":{"outline":"eb04"}},"pennant-2":{"name":"pennant-2","category":"Map","tags":["flag","ship","sports","championship","mark","spot","winner"],"variants":{"outline":"f06a","filled":"f68a"}},"pennant-off":{"name":"pennant-off","category":"Map","tags":["flag","ship","sports","championship","mark","spot","winner"],"variants":{"outline":"f174"}},"pennant":{"name":"pennant","category":"Map","tags":["flag","ship","sports","championship","mark","spot","winner"],"variants":{"outline":"ed7d","filled":"f68b"}},"pentagon-minus":{"name":"pentagon-minus","category":"","tags":[],"variants":{"outline":"feb3"}},"pentagon-number-0":{"name":"pentagon-number-0","category":"Numbers","tags":[],"variants":{"outline":"fc7e"}},"pentagon-number-1":{"name":"pentagon-number-1","category":"Numbers","tags":[],"variants":{"outline":"fc7f"}},"pentagon-number-2":{"name":"pentagon-number-2","category":"Numbers","tags":[],"variants":{"outline":"fc80"}},"pentagon-number-3":{"name":"pentagon-number-3","category":"Numbers","tags":[],"variants":{"outline":"fc81"}},"pentagon-number-4":{"name":"pentagon-number-4","category":"Numbers","tags":[],"variants":{"outline":"fc82"}},"pentagon-number-5":{"name":"pentagon-number-5","category":"Numbers","tags":[],"variants":{"outline":"fc83"}},"pentagon-number-6":{"name":"pentagon-number-6","category":"Numbers","tags":[],"variants":{"outline":"fc84"}},"pentagon-number-7":{"name":"pentagon-number-7","category":"Numbers","tags":[],"variants":{"outline":"fc85"}},"pentagon-number-8":{"name":"pentagon-number-8","category":"Numbers","tags":[],"variants":{"outline":"fc86"}},"pentagon-number-9":{"name":"pentagon-number-9","category":"Numbers","tags":[],"variants":{"outline":"fc87"}},"pentagon-off":{"name":"pentagon-off","category":"Shapes","tags":["shape","figure","math","graphic","geometry","form"],"variants":{"outline":"f41a"}},"pentagon-plus":{"name":"pentagon-plus","category":"","tags":[],"variants":{"outline":"fc49"}},"pentagon-x":{"name":"pentagon-x","category":"","tags":[],"variants":{"outline":"fc88"}},"pentagon":{"name":"pentagon","category":"Shapes","tags":["shape","figure","math","graphic","geometry","form"],"variants":{"outline":"efe3","filled":"f68c"}},"pentagram":{"name":"pentagram","category":"","tags":["evil","scary","satanism","halloween"],"variants":{"outline":"f586"}},"pepper-off":{"name":"pepper-off","category":"Food","tags":["food","spice","chili","jalape\u00f1o","hot","spicy"],"variants":{"outline":"f175"}},"pepper":{"name":"pepper","category":"Food","tags":["food","spice","chili","jalape\u00f1o","hot","spicy"],"variants":{"outline":"ef15"}},"percentage-0":{"name":"percentage-0","category":"","tags":[],"variants":{"outline":"fee5"}},"percentage-10":{"name":"percentage-10","category":"","tags":[],"variants":{"outline":"fee4"}},"percentage-100":{"name":"percentage-100","category":"","tags":[],"variants":{"outline":"fee3"}},"percentage-20":{"name":"percentage-20","category":"","tags":[],"variants":{"outline":"fee2"}},"percentage-25":{"name":"percentage-25","category":"","tags":[],"variants":{"outline":"fee1"}},"percentage-30":{"name":"percentage-30","category":"","tags":[],"variants":{"outline":"fee0"}},"percentage-33":{"name":"percentage-33","category":"","tags":[],"variants":{"outline":"fedf"}},"percentage-40":{"name":"percentage-40","category":"","tags":[],"variants":{"outline":"fede"}},"percentage-50":{"name":"percentage-50","category":"","tags":[],"variants":{"outline":"fedd"}},"percentage-60":{"name":"percentage-60","category":"","tags":[],"variants":{"outline":"fedc"}},"percentage-66":{"name":"percentage-66","category":"","tags":[],"variants":{"outline":"fedb"}},"percentage-70":{"name":"percentage-70","category":"","tags":[],"variants":{"outline":"feda"}},"percentage-75":{"name":"percentage-75","category":"","tags":[],"variants":{"outline":"fed9"}},"percentage-80":{"name":"percentage-80","category":"","tags":[],"variants":{"outline":"fed8"}},"percentage-90":{"name":"percentage-90","category":"","tags":[],"variants":{"outline":"fed7"}},"percentage":{"name":"percentage","category":"Math","tags":["sign","symbol","math","economics","cash","bank account","chart","graph","diagram","statistic"],"variants":{"outline":"ecf4"}},"perfume":{"name":"perfume","category":"","tags":["spray","smell","cosmetics","beauty","scent"],"variants":{"outline":"f509"}},"perspective-off":{"name":"perspective-off","category":"Shapes","tags":["3d","perspective","transform","reshape","scale"],"variants":{"outline":"f176"}},"perspective":{"name":"perspective","category":"Shapes","tags":["3d","perspective","transform","reshape","scale"],"variants":{"outline":"eebd"}},"phone-call":{"name":"phone-call","category":"Devices","tags":["ring","mobile","conversation","answer","dial","landline"],"variants":{"outline":"eb05"}},"phone-calling":{"name":"phone-calling","category":"Devices","tags":["ring","mobile","conversation","answer","dial","landline"],"variants":{"outline":"ec43"}},"phone-check":{"name":"phone-check","category":"Devices","tags":["ring","mobile","conversation","answer","dial","landline"],"variants":{"outline":"ec05"}},"phone-incoming":{"name":"phone-incoming","category":"Devices","tags":["call","answer","mobile","landline","conversation"],"variants":{"outline":"eb06"}},"phone-off":{"name":"phone-off","category":"Devices","tags":["call","mobile","conversation","landline","answer","number"],"variants":{"outline":"ecf5"}},"phone-outgoing":{"name":"phone-outgoing","category":"Devices","tags":["call","signal","mobile","landline","conversation"],"variants":{"outline":"eb07"}},"phone-pause":{"name":"phone-pause","category":"Devices","tags":["call","mute","mobile","landline","conversation"],"variants":{"outline":"eb08"}},"phone-plus":{"name":"phone-plus","category":"Devices","tags":["call","signal","mobile","landline","conversation"],"variants":{"outline":"ec06"}},"phone-x":{"name":"phone-x","category":"Devices","tags":["ring","mobile","conversation","answer","dial","landline"],"variants":{"outline":"ec07"}},"phone":{"name":"phone","category":"Devices","tags":["call","mobile","conversation","landline","answer","number"],"variants":{"outline":"eb09","filled":"fa49"}},"photo-ai":{"name":"photo-ai","category":"Media","tags":[],"variants":{"outline":"fa32"}},"photo-bitcoin":{"name":"photo-bitcoin","category":"","tags":[],"variants":{"outline":"ff31"}},"photo-bolt":{"name":"photo-bolt","category":"Media","tags":[],"variants":{"outline":"f990"}},"photo-cancel":{"name":"photo-cancel","category":"Media","tags":["delete","gallery","image"],"variants":{"outline":"f35d"}},"photo-check":{"name":"photo-check","category":"Media","tags":["success","complete","image","gallery"],"variants":{"outline":"f35e"}},"photo-circle-minus":{"name":"photo-circle-minus","category":"Media","tags":[],"variants":{"outline":"fc62"}},"photo-circle-plus":{"name":"photo-circle-plus","category":"Media","tags":[],"variants":{"outline":"fc63"}},"photo-circle":{"name":"photo-circle","category":"","tags":[],"variants":{"outline":"fc4a"}},"photo-code":{"name":"photo-code","category":"Media","tags":[],"variants":{"outline":"f991"}},"photo-cog":{"name":"photo-cog","category":"Media","tags":[],"variants":{"outline":"f992"}},"photo-dollar":{"name":"photo-dollar","category":"Media","tags":[],"variants":{"outline":"f993"}},"photo-down":{"name":"photo-down","category":"Media","tags":["image","gallery","download","arrow","south"],"variants":{"outline":"f35f"}},"photo-edit":{"name":"photo-edit","category":"Media","tags":["image","gallery","tool","create"],"variants":{"outline":"f360"}},"photo-exclamation":{"name":"photo-exclamation","category":"Media","tags":[],"variants":{"outline":"f994"}},"photo-heart":{"name":"photo-heart","category":"Media","tags":["image","gallery","love","romance","wedding"],"variants":{"outline":"f361"}},"photo-hexagon":{"name":"photo-hexagon","category":"","tags":[],"variants":{"outline":"fc4b"}},"photo-minus":{"name":"photo-minus","category":"Media","tags":["image","gallery","delete","remove"],"variants":{"outline":"f362"}},"photo-off":{"name":"photo-off","category":"Media","tags":["image","picture","landscape","camera"],"variants":{"outline":"ecf6"}},"photo-pause":{"name":"photo-pause","category":"Media","tags":[],"variants":{"outline":"f995"}},"photo-pentagon":{"name":"photo-pentagon","category":"","tags":[],"variants":{"outline":"fc4c"}},"photo-pin":{"name":"photo-pin","category":"Media","tags":[],"variants":{"outline":"f996"}},"photo-plus":{"name":"photo-plus","category":"Media","tags":["image","gallery","add","new"],"variants":{"outline":"f363"}},"photo-question":{"name":"photo-question","category":"Media","tags":[],"variants":{"outline":"f997"}},"photo-scan":{"name":"photo-scan","category":"System","tags":["image","capture","photograph","picture","snapshot","scan-image","photogrammetry","visual-scan","picture-analysis","photo-analysis"],"variants":{"outline":"fca8"}},"photo-search":{"name":"photo-search","category":"Media","tags":["image","gallery","find","zoom"],"variants":{"outline":"f364"}},"photo-sensor-2":{"name":"photo-sensor-2","category":"Photography","tags":["focus","lens","photograpy","camera"],"variants":{"outline":"f796"}},"photo-sensor-3":{"name":"photo-sensor-3","category":"Photography","tags":["focus","lens","photograpy","camera"],"variants":{"outline":"f797"}},"photo-sensor":{"name":"photo-sensor","category":"Photography","tags":["focus","lens","photograpy","camera"],"variants":{"outline":"f798"}},"photo-share":{"name":"photo-share","category":"Media","tags":[],"variants":{"outline":"f998"}},"photo-shield":{"name":"photo-shield","category":"Media","tags":["image","gallery","safety","secure"],"variants":{"outline":"f365"}},"photo-square-rounded":{"name":"photo-square-rounded","category":"","tags":[],"variants":{"outline":"fc4d"}},"photo-star":{"name":"photo-star","category":"Media","tags":["image","gallery","favourite","best"],"variants":{"outline":"f366"}},"photo-up":{"name":"photo-up","category":"Media","tags":["image","gallery","load","send","arrow","north"],"variants":{"outline":"f38b"}},"photo-video":{"name":"photo-video","category":"","tags":[],"variants":{"outline":"fc95"}},"photo-x":{"name":"photo-x","category":"Media","tags":["image","gallery","delete","remove"],"variants":{"outline":"f367"}},"photo":{"name":"photo","category":"Media","tags":["image","picture","landscape","camera"],"variants":{"outline":"eb0a","filled":"fa4a"}},"physotherapist":{"name":"physotherapist","category":"Health","tags":["physiotherapy","spa","therapy","treatment","pain","exercise"],"variants":{"outline":"eebe"}},"piano":{"name":"piano","category":"","tags":[],"variants":{"outline":"fad3"}},"pick":{"name":"pick","category":"","tags":[],"variants":{"outline":"fafc"}},"picnic-table":{"name":"picnic-table","category":"Map","tags":["outdoor","furniture","camping","seat","park","garden","nature","wood","food"],"variants":{"outline":"fed6"}},"picture-in-picture-off":{"name":"picture-in-picture-off","category":"Media","tags":["size","photo","elements","adjust","image"],"variants":{"outline":"ed43"}},"picture-in-picture-on":{"name":"picture-in-picture-on","category":"Media","tags":["size","photo","elements","adjust","image"],"variants":{"outline":"ed44"}},"picture-in-picture-top":{"name":"picture-in-picture-top","category":"Media","tags":["browser","shape","rectangle"],"variants":{"outline":"efe4","filled":"fec2"}},"picture-in-picture":{"name":"picture-in-picture","category":"Media","tags":["size","photo","elements","adjust","image"],"variants":{"outline":"ed35","filled":"fec1"}},"pig-money":{"name":"pig-money","category":"Animals","tags":["coin","finance","saving","bank"],"variants":{"outline":"f38c"}},"pig-off":{"name":"pig-off","category":"Animals","tags":["animal","farm","pork","mud","pink","piggy","bank"],"variants":{"outline":"f177"}},"pig":{"name":"pig","category":"Animals","tags":["animal","farm","pork","mud","pink","piggy","bank"],"variants":{"outline":"ef52"}},"pilcrow-left":{"name":"pilcrow-left","category":"","tags":[],"variants":{"outline":"fd7f"}},"pilcrow-right":{"name":"pilcrow-right","category":"","tags":[],"variants":{"outline":"fd80"}},"pilcrow":{"name":"pilcrow","category":"Text","tags":["paragraph","letter","text","symbol"],"variants":{"outline":"f5f6"}},"pill-off":{"name":"pill-off","category":"Health","tags":["drug","medication","illness","sickness","doctor","prescription"],"variants":{"outline":"f178"}},"pill":{"name":"pill","category":"Health","tags":["drug","medication","illness","sickness","doctor","prescription"],"variants":{"outline":"ec44","filled":"ff07"}},"pills":{"name":"pills","category":"Health","tags":["drug","medication","illness","sickness","doctor","prescription"],"variants":{"outline":"ef66"}},"pin-end":{"name":"pin-end","category":"","tags":["pin","location-pin","map-pin","marker","place-pin","destination-pin","end-pin","point","position-pin","mark-end"],"variants":{"outline":"fd5b"}},"pin-invoke":{"name":"pin-invoke","category":"","tags":["pin","location-pin","map-pin","marker","place-pin","invoke-pin","trigger-pin","point","position-pin","invoke-mark"],"variants":{"outline":"fd5c"}},"pin":{"name":"pin","category":"Map","tags":["thing","localization","maps","clip","place","location"],"variants":{"outline":"ec9c","filled":"f68d"}},"ping-pong":{"name":"ping-pong","category":"Sport","tags":["table","tennis","ball","sport","racket"],"variants":{"outline":"f38d"}},"pinned-off":{"name":"pinned-off","category":"Map","tags":["board","attach","nail","pointed","corkboard","favourite","noticeboard"],"variants":{"outline":"ed5f"}},"pinned":{"name":"pinned","category":"Map","tags":["board","attach","nail","pointed","corkboard","favourite","noticeboard"],"variants":{"outline":"ed60","filled":"f68e"}},"pizza-off":{"name":"pizza-off","category":"Food","tags":["food","cheese","italy","pepperoni","margherita","capricciosa","rucole"],"variants":{"outline":"f179"}},"pizza":{"name":"pizza","category":"Food","tags":["food","cheese","italy","pepperoni","margherita","capricciosa","rucole"],"variants":{"outline":"edbb"}},"placeholder":{"name":"placeholder","category":"","tags":["input","form"],"variants":{"outline":"f626"}},"plane-arrival":{"name":"plane-arrival","category":"Vehicles","tags":["travel","land","journey","trip","airport","baggage","luggage"],"variants":{"outline":"eb99"}},"plane-departure":{"name":"plane-departure","category":"Vehicles","tags":["travel","take off","journey","trip","airport","baggage","luggage"],"variants":{"outline":"eb9a"}},"plane-inflight":{"name":"plane-inflight","category":"Vehicles","tags":["travel","vacation","summer","sea","ocean","skies","clouds"],"variants":{"outline":"ef98"}},"plane-off":{"name":"plane-off","category":"Vehicles","tags":["travel","journey","trip","airport","baggage","luggage"],"variants":{"outline":"f17a"}},"plane-tilt":{"name":"plane-tilt","category":"Vehicles","tags":["up","higher","north","travel"],"variants":{"outline":"f1ed"}},"plane":{"name":"plane","category":"Vehicles","tags":["travel","journey","trip","airport","baggage","luggage"],"variants":{"outline":"eb6f"}},"planet-off":{"name":"planet-off","category":"Map","tags":["earth","uranus","universe","space","galaxy","orbit","atmosphere"],"variants":{"outline":"f17b"}},"planet":{"name":"planet","category":"Map","tags":["earth","uranus","universe","space","galaxy","orbit","atmosphere"],"variants":{"outline":"ec08"}},"plant-2-off":{"name":"plant-2-off","category":"Nature","tags":["nature","green","flower","pot","tree","leaf","greenery","root","stem","seed"],"variants":{"outline":"f17c"}},"plant-2":{"name":"plant-2","category":"Nature","tags":["nature","green","flower","pot","tree","leaf","greenery","root","stem","seed"],"variants":{"outline":"ed7e"}},"plant-off":{"name":"plant-off","category":"Nature","tags":["nature","green","flower","pot","tree","leaf","greenery","root","stem","seed"],"variants":{"outline":"f17d"}},"plant":{"name":"plant","category":"Nature","tags":["nature","green","flower","pot","tree","leaf","greenery","root","stem","seed"],"variants":{"outline":"ed50"}},"play-basketball":{"name":"play-basketball","category":"Sport","tags":[],"variants":{"outline":"fa66"}},"play-card-off":{"name":"play-card-off","category":"Games","tags":["game","magic","trick","casino","entertainment","spade","heart","diamond","club","playing"],"variants":{"outline":"f17e"}},"play-card":{"name":"play-card","category":"Games","tags":["game","magic","trick","casino","entertainment","spade","heart","diamond","club","playing"],"variants":{"outline":"eebf"}},"play-football":{"name":"play-football","category":"Sport","tags":[],"variants":{"outline":"fa67"}},"play-handball":{"name":"play-handball","category":"Sport","tags":[],"variants":{"outline":"fa68"}},"play-volleyball":{"name":"play-volleyball","category":"Sport","tags":[],"variants":{"outline":"fa69"}},"player-eject":{"name":"player-eject","category":"Media","tags":["media","multimedia","music","audio","control","figures"],"variants":{"outline":"efbc","filled":"f68f"}},"player-pause":{"name":"player-pause","category":"Media","tags":["video","film","music","player","stop"],"variants":{"outline":"ed45","filled":"f690"}},"player-play":{"name":"player-play","category":"Media","tags":["start","video","film","music","player"],"variants":{"outline":"ed46","filled":"f691"}},"player-record":{"name":"player-record","category":"Media","tags":["music","song","playlist","melody","device","voice","recorder","dictation","machine"],"variants":{"outline":"ed47","filled":"f692"}},"player-skip-back":{"name":"player-skip-back","category":"Media","tags":["button","player","video","film","music","cancel","rewind","reverse"],"variants":{"outline":"ed48","filled":"f693"}},"player-skip-forward":{"name":"player-skip-forward","category":"Media","tags":["button","player","video","film","music","omit"],"variants":{"outline":"ed49","filled":"f694"}},"player-stop":{"name":"player-stop","category":"Media","tags":["music","song","playlist","melody","device","voice","silence","break"],"variants":{"outline":"ed4a","filled":"f695"}},"player-track-next":{"name":"player-track-next","category":"Media","tags":["music","forward","play","song","playlist"],"variants":{"outline":"ed4b","filled":"f696"}},"player-track-prev":{"name":"player-track-prev","category":"Media","tags":["music","forward","play","song","playlist"],"variants":{"outline":"ed4c","filled":"f697"}},"playlist-add":{"name":"playlist-add","category":"","tags":["music","spotify","new","create","library","album"],"variants":{"outline":"f008"}},"playlist-off":{"name":"playlist-off","category":"Media","tags":["music","song","artist","spotify","track","play","record"],"variants":{"outline":"f17f"}},"playlist-x":{"name":"playlist-x","category":"Media","tags":["off","delete","remove"],"variants":{"outline":"f009"}},"playlist":{"name":"playlist","category":"Media","tags":["music","song","artist","spotify","track","play","record"],"variants":{"outline":"eec0"}},"playstation-circle":{"name":"playstation-circle","category":"Devices","tags":["controller","console","shape","joystick"],"variants":{"outline":"f2ad"}},"playstation-square":{"name":"playstation-square","category":"Devices","tags":["controller","console","shape","joystick"],"variants":{"outline":"f2ae"}},"playstation-triangle":{"name":"playstation-triangle","category":"Devices","tags":["controller","console","shape","joystick"],"variants":{"outline":"f2af"}},"playstation-x":{"name":"playstation-x","category":"Devices","tags":["controller","console","shape","joystick"],"variants":{"outline":"f2b0"}},"plug-connected-x":{"name":"plug-connected-x","category":"Devices","tags":["unfasten","unplug","disconnect"],"variants":{"outline":"f0a0"}},"plug-connected":{"name":"plug-connected","category":"Devices","tags":["power","electricy","cable","socket"],"variants":{"outline":"f00a"}},"plug-off":{"name":"plug-off","category":"Devices","tags":["electricity","charger","socket","connection"],"variants":{"outline":"f180"}},"plug-x":{"name":"plug-x","category":"Devices","tags":["electricity","charger","socket","connection","discharge","end charging","charge off"],"variants":{"outline":"f0a1"}},"plug":{"name":"plug","category":"Devices","tags":["electricity","charger","socket","connection"],"variants":{"outline":"ebd9"}},"plus-equal":{"name":"plus-equal","category":"Math","tags":["math","sign","adding","equation"],"variants":{"outline":"f7ad"}},"plus-minus":{"name":"plus-minus","category":"Math","tags":["math","sign","adding","subtraction"],"variants":{"outline":"f7ae"}},"plus":{"name":"plus","category":"Math","tags":["add","create","new","+"],"variants":{"outline":"eb0b"}},"png":{"name":"png","category":"Extensions","tags":["file","format","type","document","filetype"],"variants":{"outline":"f3ad"}},"podium-off":{"name":"podium-off","category":"","tags":["speach","microphone","conference","politics","audience","presentation"],"variants":{"outline":"f41b"}},"podium":{"name":"podium","category":"","tags":["speach","microphone","conference","politics","audience","presentation"],"variants":{"outline":"f1d8"}},"point-off":{"name":"point-off","category":"","tags":["dot","label"],"variants":{"outline":"f181"}},"point":{"name":"point","category":"","tags":["dot","label"],"variants":{"outline":"eb0c","filled":"f698"}},"pointer-bolt":{"name":"pointer-bolt","category":"System","tags":[],"variants":{"outline":"f999"}},"pointer-cancel":{"name":"pointer-cancel","category":"System","tags":[],"variants":{"outline":"f99a"}},"pointer-check":{"name":"pointer-check","category":"System","tags":[],"variants":{"outline":"f99b"}},"pointer-code":{"name":"pointer-code","category":"System","tags":[],"variants":{"outline":"f99c"}},"pointer-cog":{"name":"pointer-cog","category":"System","tags":[],"variants":{"outline":"f99d"}},"pointer-dollar":{"name":"pointer-dollar","category":"System","tags":[],"variants":{"outline":"f99e"}},"pointer-down":{"name":"pointer-down","category":"System","tags":[],"variants":{"outline":"f99f"}},"pointer-exclamation":{"name":"pointer-exclamation","category":"System","tags":[],"variants":{"outline":"f9a0"}},"pointer-heart":{"name":"pointer-heart","category":"System","tags":[],"variants":{"outline":"f9a1"}},"pointer-minus":{"name":"pointer-minus","category":"System","tags":[],"variants":{"outline":"f9a2"}},"pointer-off":{"name":"pointer-off","category":"System","tags":["cursor","mouse","point","click","arrow"],"variants":{"outline":"f9a3"}},"pointer-pause":{"name":"pointer-pause","category":"System","tags":[],"variants":{"outline":"f9a4"}},"pointer-pin":{"name":"pointer-pin","category":"System","tags":[],"variants":{"outline":"f9a5"}},"pointer-plus":{"name":"pointer-plus","category":"System","tags":[],"variants":{"outline":"f9a6"}},"pointer-question":{"name":"pointer-question","category":"System","tags":[],"variants":{"outline":"f9a7"}},"pointer-search":{"name":"pointer-search","category":"System","tags":[],"variants":{"outline":"f9a8"}},"pointer-share":{"name":"pointer-share","category":"System","tags":[],"variants":{"outline":"f9a9"}},"pointer-star":{"name":"pointer-star","category":"System","tags":[],"variants":{"outline":"f9aa"}},"pointer-up":{"name":"pointer-up","category":"System","tags":[],"variants":{"outline":"f9ab"}},"pointer-x":{"name":"pointer-x","category":"System","tags":[],"variants":{"outline":"f9ac"}},"pointer":{"name":"pointer","category":"System","tags":["cursor","mouse","point","click","arrow"],"variants":{"outline":"f265","filled":"fb30"}},"pokeball-off":{"name":"pokeball-off","category":"Map","tags":["pokemon","go","catch","game","play"],"variants":{"outline":"f41c"}},"pokeball":{"name":"pokeball","category":"Map","tags":["pokemon","go","catch","game","play"],"variants":{"outline":"eec1"}},"poker-chip":{"name":"poker-chip","category":"Games","tags":["casino","game","money","gambling"],"variants":{"outline":"f515"}},"polaroid":{"name":"polaroid","category":"Photography","tags":["picture","photo","camera","polarization","develop","film","lens"],"variants":{"outline":"eec2","filled":"fa4b"}},"polygon-off":{"name":"polygon-off","category":"Design","tags":["shape","form","geometry","circle","line"],"variants":{"outline":"f182"}},"polygon":{"name":"polygon","category":"Design","tags":["shape","form","geometry","circle","line"],"variants":{"outline":"efd0"}},"poo":{"name":"poo","category":"","tags":["poop","shit","crap","toilet"],"variants":{"outline":"f258","filled":"fec9"}},"pool-off":{"name":"pool-off","category":"Sport","tags":["swim","water","swimmer","holiday","swimming","vacation","relax","sport"],"variants":{"outline":"f41d"}},"pool":{"name":"pool","category":"Sport","tags":["swim","water","swimmer","holiday","swimming","vacation","relax","sport"],"variants":{"outline":"ed91"}},"power":{"name":"power","category":"Devices","tags":["on","off","turn on","turn off","electricity"],"variants":{"outline":"eb0d"}},"pray":{"name":"pray","category":"","tags":["religion","faith","christianity","islam","buddhism","judaism"],"variants":{"outline":"ecbf"}},"premium-rights":{"name":"premium-rights","category":"","tags":["money","work","job","cash","dollar"],"variants":{"outline":"efbd"}},"prescription":{"name":"prescription","category":"Health","tags":["doctor","pharmacy","drug","pills","medical","disease"],"variants":{"outline":"ef99"}},"presentation-analytics":{"name":"presentation-analytics","category":"Document","tags":["slideshow","display","exhibition","speech","topic","conference"],"variants":{"outline":"eec3","filled":"ff5d"}},"presentation-off":{"name":"presentation-off","category":"Document","tags":["slideshow","display","exhibition","speech","topic","conference"],"variants":{"outline":"f183"}},"presentation":{"name":"presentation","category":"Document","tags":["slideshow","display","exhibition","speech","topic","conference"],"variants":{"outline":"eb70","filled":"ff5c"}},"printer-off":{"name":"printer-off","category":"Devices","tags":["fax","office","device"],"variants":{"outline":"f184"}},"printer":{"name":"printer","category":"Devices","tags":["fax","office","device"],"variants":{"outline":"eb0e"}},"prism-light":{"name":"prism-light","category":"","tags":[],"variants":{"outline":"fea6"}},"prism-off":{"name":"prism-off","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"faaf"}},"prism-plus":{"name":"prism-plus","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fab0"}},"prism":{"name":"prism","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fab1"}},"prison":{"name":"prison","category":"Map","tags":["jail","policeman","police","cop","handcuff","arrest","prisoner","thief"],"variants":{"outline":"ef79"}},"progress-alert":{"name":"progress-alert","category":"System","tags":[],"variants":{"outline":"fa07"}},"progress-bolt":{"name":"progress-bolt","category":"System","tags":[],"variants":{"outline":"fa08"}},"progress-check":{"name":"progress-check","category":"System","tags":[],"variants":{"outline":"fa09"}},"progress-down":{"name":"progress-down","category":"System","tags":[],"variants":{"outline":"fa0a"}},"progress-help":{"name":"progress-help","category":"System","tags":[],"variants":{"outline":"fa0b"}},"progress-x":{"name":"progress-x","category":"System","tags":[],"variants":{"outline":"fa0c"}},"progress":{"name":"progress","category":"System","tags":[],"variants":{"outline":"fa0d"}},"prompt":{"name":"prompt","category":"","tags":["command line","terminal","code"],"variants":{"outline":"eb0f"}},"prong":{"name":"prong","category":"","tags":[],"variants":{"outline":"fda1"}},"propeller-off":{"name":"propeller-off","category":"","tags":["rotate","blade","spiral","air","ship","fan","power"],"variants":{"outline":"f185"}},"propeller":{"name":"propeller","category":"","tags":["rotate","blade","spiral","air","ship","fan","power"],"variants":{"outline":"eec4"}},"protocol":{"name":"protocol","category":"","tags":[],"variants":{"outline":"fd81"}},"pumpkin-scary":{"name":"pumpkin-scary","category":"","tags":["halloween","horror","spooky","costume","decoration"],"variants":{"outline":"f587"}},"puzzle-2":{"name":"puzzle-2","category":"Games","tags":["jigsaw","extension","add-on"],"variants":{"outline":"ef83"}},"puzzle-off":{"name":"puzzle-off","category":"Games","tags":["jigsaw","extension","add-on"],"variants":{"outline":"f186"}},"puzzle":{"name":"puzzle","category":"Games","tags":["jigsaw","extension","add-on"],"variants":{"outline":"eb10","filled":"f699"}},"pyramid-off":{"name":"pyramid-off","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"f187"}},"pyramid-plus":{"name":"pyramid-plus","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fab2"}},"pyramid":{"name":"pyramid","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"eec5"}},"qrcode-off":{"name":"qrcode-off","category":"Devices","tags":["scan","data"],"variants":{"outline":"f41e"}},"qrcode":{"name":"qrcode","category":"Devices","tags":["scan","data"],"variants":{"outline":"eb11"}},"question-mark":{"name":"question-mark","category":"","tags":["sign","symbol","ask","sentence","word","letters","?"],"variants":{"outline":"ec9d"}},"quote-off":{"name":"quote-off","category":"Text","tags":["chat","message","text","punctuation","quotation","comment"],"variants":{"outline":"f188"}},"quote":{"name":"quote","category":"Text","tags":["chat","message","text","punctuation","quotation","comment"],"variants":{"outline":"efbe"}},"quotes":{"name":"quotes","category":"Text","tags":["chat","message","text","punctuation","quotation","comment"],"variants":{"outline":"fb1e"}},"radar-2":{"name":"radar-2","category":"Map","tags":["location","navigation","gps","find","signal","technology","submarine"],"variants":{"outline":"f016"}},"radar-off":{"name":"radar-off","category":"Map","tags":["location","navigation","gps","find","signal","technology","submarine"],"variants":{"outline":"f41f"}},"radar":{"name":"radar","category":"Map","tags":["location","navigation","gps","find","signal","technology","submarine"],"variants":{"outline":"f017","filled":"fe0d"}},"radio-off":{"name":"radio-off","category":"Media","tags":["music","news","sound","broadcost","communication","station"],"variants":{"outline":"f420"}},"radio":{"name":"radio","category":"Media","tags":["music","news","sound","broadcost","communication","station"],"variants":{"outline":"ef2d"}},"radioactive-off":{"name":"radioactive-off","category":"Symbols","tags":["dangerous","precarious","danger","sign","symbol","warning","caution","chernobyl","reactor","atomic","powerhouses","generator"],"variants":{"outline":"f189"}},"radioactive":{"name":"radioactive","category":"Symbols","tags":["dangerous","precarious","danger","sign","symbol","warning","caution","chernobyl","reactor","atomic","powerhouses","generator"],"variants":{"outline":"ecc0","filled":"f760"}},"radius-bottom-left":{"name":"radius-bottom-left","category":"Design","tags":["round","corner","rounded","border","css","style","bottom"],"variants":{"outline":"eec6"}},"radius-bottom-right":{"name":"radius-bottom-right","category":"Design","tags":["round","corner","rounded","border","css","style","top"],"variants":{"outline":"eec7"}},"radius-top-left":{"name":"radius-top-left","category":"Design","tags":["round","corner","rounded","border","css","style","bottom"],"variants":{"outline":"eec8"}},"radius-top-right":{"name":"radius-top-right","category":"Design","tags":["round","corner","rounded","border","css","style","top"],"variants":{"outline":"eec9"}},"rainbow-off":{"name":"rainbow-off","category":"Weather","tags":["colorful","weather","colors","colour","nature"],"variants":{"outline":"f18a"}},"rainbow":{"name":"rainbow","category":"Weather","tags":["colorful","weather","colors","colour","nature"],"variants":{"outline":"edbc"}},"rating-12-plus":{"name":"rating-12-plus","category":"Symbols","tags":["film","video","photo","movie","age","limiter"],"variants":{"outline":"f266"}},"rating-14-plus":{"name":"rating-14-plus","category":"Symbols","tags":["film","video","photo","movie","age","limiter"],"variants":{"outline":"f267"}},"rating-16-plus":{"name":"rating-16-plus","category":"Symbols","tags":["film","video","photo","movie","age","limiter"],"variants":{"outline":"f268"}},"rating-18-plus":{"name":"rating-18-plus","category":"Symbols","tags":["film","video","photo","movie","age","limiter"],"variants":{"outline":"f269"}},"rating-21-plus":{"name":"rating-21-plus","category":"Symbols","tags":["film","video","photo","movie","age","limiter"],"variants":{"outline":"f26a"}},"razor-electric":{"name":"razor-electric","category":"Health","tags":["shaver","barber","grooming","beard","moustache"],"variants":{"outline":"f4b4"}},"razor":{"name":"razor","category":"Health","tags":["shaver","barber","grooming","beard","moustache"],"variants":{"outline":"f4b5"}},"receipt-2":{"name":"receipt-2","category":"Document","tags":["bill","restaurant","shop","price","pay","money","total","tax"],"variants":{"outline":"edfa"}},"receipt-bitcoin":{"name":"receipt-bitcoin","category":"E-commerce","tags":[],"variants":{"outline":"fd66"}},"receipt-dollar":{"name":"receipt-dollar","category":"E-commerce","tags":[],"variants":{"outline":"fd67"}},"receipt-euro":{"name":"receipt-euro","category":"E-commerce","tags":[],"variants":{"outline":"fd68"}},"receipt-off":{"name":"receipt-off","category":"Document","tags":["bill","restaurant","shop","price","pay","money","total","tax"],"variants":{"outline":"edfb"}},"receipt-pound":{"name":"receipt-pound","category":"E-commerce","tags":[],"variants":{"outline":"fd69"}},"receipt-refund":{"name":"receipt-refund","category":"Document","tags":["bill","restaurant","shop","price","pay","money","total","give","back","return"],"variants":{"outline":"edfc"}},"receipt-rupee":{"name":"receipt-rupee","category":"","tags":[],"variants":{"outline":"fd82"}},"receipt-tax":{"name":"receipt-tax","category":"Document","tags":["income","percentage","money","finance","charge","obligation","taxpayer","vat"],"variants":{"outline":"edbd"}},"receipt-yen":{"name":"receipt-yen","category":"E-commerce","tags":[],"variants":{"outline":"fd6a"}},"receipt-yuan":{"name":"receipt-yuan","category":"E-commerce","tags":[],"variants":{"outline":"fd6b"}},"receipt":{"name":"receipt","category":"Document","tags":["bill","restaurant","shop","price","pay","money","total","tax"],"variants":{"outline":"edfd","filled":"ff06"}},"recharging":{"name":"recharging","category":"","tags":["battery","power","charge","socket","electricity","device","phone","laptop","low"],"variants":{"outline":"eeca"}},"record-mail-off":{"name":"record-mail-off","category":"","tags":["voice","voicemail","message"],"variants":{"outline":"f18b"}},"record-mail":{"name":"record-mail","category":"","tags":["voice","voicemail","message"],"variants":{"outline":"eb12"}},"rectangle-rounded-bottom":{"name":"rectangle-rounded-bottom","category":"Shapes","tags":[],"variants":{"outline":"faed"}},"rectangle-rounded-top":{"name":"rectangle-rounded-top","category":"Shapes","tags":[],"variants":{"outline":"faee"}},"rectangle-vertical":{"name":"rectangle-vertical","category":"Shapes","tags":["shape","geometric","math","upright"],"variants":{"outline":"ed36","filled":"f69b"}},"rectangle":{"name":"rectangle","category":"Shapes","tags":["shape","geometric","math"],"variants":{"outline":"ed37","filled":"f69a"}},"rectangular-prism-off":{"name":"rectangular-prism-off","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fab3"}},"rectangular-prism-plus":{"name":"rectangular-prism-plus","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fab4"}},"rectangular-prism":{"name":"rectangular-prism","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fab5"}},"recycle-off":{"name":"recycle-off","category":"Symbols","tags":["trash","rubbish","recyclable","reuse","waste"],"variants":{"outline":"f18c"}},"recycle":{"name":"recycle","category":"Symbols","tags":["trash","rubbish","recyclable","reuse","waste"],"variants":{"outline":"eb9b"}},"refresh-alert":{"name":"refresh-alert","category":"Arrows","tags":["synchronization","reload","restart","spinner","loader","ajax","update","arrows"],"variants":{"outline":"ed57"}},"refresh-dot":{"name":"refresh-dot","category":"Arrows","tags":["again","reload","arrows","loading","replay"],"variants":{"outline":"efbf"}},"refresh-off":{"name":"refresh-off","category":"Arrows","tags":["synchronization","reload","restart","spinner","loader","ajax","update","arrows"],"variants":{"outline":"f18d"}},"refresh":{"name":"refresh","category":"Arrows","tags":["synchronization","reload","restart","spinner","loader","ajax","update","arrows"],"variants":{"outline":"eb13"}},"regex-off":{"name":"regex-off","category":"Text","tags":["regular","expression","code","replace","programming","coding","variables"],"variants":{"outline":"f421"}},"regex":{"name":"regex","category":"Text","tags":["regular","expression","code","replace","programming","coding","variables"],"variants":{"outline":"f31f"}},"registered":{"name":"registered","category":"","tags":["copyright","trademark","rights"],"variants":{"outline":"eb14"}},"relation-many-to-many":{"name":"relation-many-to-many","category":"Database","tags":["data","model","analysis","multiple","connection","database","link"],"variants":{"outline":"ed7f","filled":"fe0c"}},"relation-one-to-many":{"name":"relation-one-to-many","category":"Database","tags":["data","model","analysis","multiple","connection","database","link"],"variants":{"outline":"ed80","filled":"fe0b"}},"relation-one-to-one":{"name":"relation-one-to-one","category":"Database","tags":["data","model","analysis","connection","database","link"],"variants":{"outline":"ed81","filled":"fe0a"}},"reload":{"name":"reload","category":"Arrows","tags":["refresh","repeat","update","sync","loading"],"variants":{"outline":"f3ae"}},"reorder":{"name":"reorder","category":"","tags":[],"variants":{"outline":"fc15"}},"repeat-off":{"name":"repeat-off","category":"Media","tags":["reuse","redo","action","replay","loop","flip"],"variants":{"outline":"f18e"}},"repeat-once":{"name":"repeat-once","category":"Media","tags":["reuse","redo","action","replay","loop"],"variants":{"outline":"eb71"}},"repeat":{"name":"repeat","category":"Media","tags":["reuse","redo","action","replay","loop","flip"],"variants":{"outline":"eb72"}},"replace-off":{"name":"replace-off","category":"","tags":["change","place","position","move","exchange"],"variants":{"outline":"f422"}},"replace":{"name":"replace","category":"","tags":["change","place","position","move","exchange"],"variants":{"outline":"ebc7","filled":"f69c"}},"report-analytics":{"name":"report-analytics","category":"Document","tags":["statistics","results","business","sales","analysis","analyse","bar","chart"],"variants":{"outline":"eecb"}},"report-medical":{"name":"report-medical","category":"Document","tags":["hospital","doctor","health","sickness","illness","test","results"],"variants":{"outline":"eecc"}},"report-money":{"name":"report-money","category":"Document","tags":["results","business","sales","analysis","analyse","finance","financial","total"],"variants":{"outline":"eecd"}},"report-off":{"name":"report-off","category":"Document","tags":["time","timesheet","analysis","analyse","results","business","company"],"variants":{"outline":"f18f"}},"report-search":{"name":"report-search","category":"Document","tags":["analytic","statistics","data","results","graph","document"],"variants":{"outline":"ef84"}},"report":{"name":"report","category":"Document","tags":["time","timesheet","analysis","analyse","results","business","company"],"variants":{"outline":"eece"}},"reserved-line":{"name":"reserved-line","category":"","tags":[],"variants":{"outline":"f9f6"}},"resize":{"name":"resize","category":"Design","tags":["picture","photo","alter","change","height","width"],"variants":{"outline":"eecf"}},"restore":{"name":"restore","category":"","tags":[],"variants":{"outline":"fafd"}},"rewind-backward-10":{"name":"rewind-backward-10","category":"Media","tags":[],"variants":{"outline":"faba"}},"rewind-backward-15":{"name":"rewind-backward-15","category":"Media","tags":[],"variants":{"outline":"fabb"}},"rewind-backward-20":{"name":"rewind-backward-20","category":"Media","tags":[],"variants":{"outline":"fabc"}},"rewind-backward-30":{"name":"rewind-backward-30","category":"Media","tags":[],"variants":{"outline":"fabd"}},"rewind-backward-40":{"name":"rewind-backward-40","category":"Media","tags":[],"variants":{"outline":"fabe"}},"rewind-backward-5":{"name":"rewind-backward-5","category":"Media","tags":[],"variants":{"outline":"fabf"}},"rewind-backward-50":{"name":"rewind-backward-50","category":"Media","tags":[],"variants":{"outline":"fac0"}},"rewind-backward-60":{"name":"rewind-backward-60","category":"Media","tags":[],"variants":{"outline":"fac1"}},"rewind-forward-10":{"name":"rewind-forward-10","category":"Media","tags":[],"variants":{"outline":"fac2"}},"rewind-forward-15":{"name":"rewind-forward-15","category":"Media","tags":[],"variants":{"outline":"fac3"}},"rewind-forward-20":{"name":"rewind-forward-20","category":"Media","tags":[],"variants":{"outline":"fac4"}},"rewind-forward-30":{"name":"rewind-forward-30","category":"Media","tags":[],"variants":{"outline":"fac5"}},"rewind-forward-40":{"name":"rewind-forward-40","category":"Media","tags":[],"variants":{"outline":"fac6"}},"rewind-forward-5":{"name":"rewind-forward-5","category":"Media","tags":[],"variants":{"outline":"fac7"}},"rewind-forward-50":{"name":"rewind-forward-50","category":"Media","tags":[],"variants":{"outline":"fac8"}},"rewind-forward-60":{"name":"rewind-forward-60","category":"Media","tags":[],"variants":{"outline":"fac9"}},"ribbon-health":{"name":"ribbon-health","category":"Symbols","tags":["medical","care","heatlh","medic","healthcare"],"variants":{"outline":"f58e"}},"rings":{"name":"rings","category":"Sport","tags":[],"variants":{"outline":"fa6a"}},"ripple-off":{"name":"ripple-off","category":"Nature","tags":["wave","water","breeze","ocean","sea"],"variants":{"outline":"f190"}},"ripple":{"name":"ripple","category":"Nature","tags":["wave","water","breeze","ocean","sea"],"variants":{"outline":"ed82"}},"road-off":{"name":"road-off","category":"Map","tags":["car","travel","journey","traffic","highway","route","racing"],"variants":{"outline":"f191"}},"road-sign":{"name":"road-sign","category":"Map","tags":["telltale","prohibitive","indicative","cautionary","codex","restrictions"],"variants":{"outline":"ecdd"}},"road":{"name":"road","category":"Map","tags":["car","travel","journey","traffic","highway","route","racing"],"variants":{"outline":"f018"}},"robot-face":{"name":"robot-face","category":"","tags":[],"variants":{"outline":"fcbe"}},"robot-off":{"name":"robot-off","category":"","tags":["technology","ai","machine","bot","android"],"variants":{"outline":"f192"}},"robot":{"name":"robot","category":"","tags":["technology","ai","machine","bot","android"],"variants":{"outline":"f00b"}},"rocket-off":{"name":"rocket-off","category":"Map","tags":["universe","galaxy","space","journey","discover","extraterrestrial","spaceship"],"variants":{"outline":"f193"}},"rocket":{"name":"rocket","category":"Map","tags":["universe","galaxy","space","journey","discover","extraterrestrial","spaceship"],"variants":{"outline":"ec45"}},"roller-skating":{"name":"roller-skating","category":"Sport","tags":["sport","hobby","fitness"],"variants":{"outline":"efd1"}},"rollercoaster-off":{"name":"rollercoaster-off","category":"Vehicles","tags":["adrenaline","height","speed","funfair","fun","attraction","extreme"],"variants":{"outline":"f423"}},"rollercoaster":{"name":"rollercoaster","category":"Vehicles","tags":["adrenaline","height","speed","funfair","fun","attraction","extreme"],"variants":{"outline":"f0a2"}},"rosette-discount-check-off":{"name":"rosette-discount-check-off","category":"E-commerce","tags":["reduction","price","cost","money","shopping","bargain","tick","done","verified","certificate","valid","official","success","invalid"],"variants":{"outline":"ff10"}},"rosette-discount-check":{"name":"rosette-discount-check","category":"E-commerce","tags":["reduction","price","cost","money","shopping","bargain","tick","done","verified","certificate","valid","official","success"],"variants":{"outline":"f1f8","filled":"f746"}},"rosette-discount-off":{"name":"rosette-discount-off","category":"E-commerce","tags":["sale","reduction","price","cost","money","shopping","bargain"],"variants":{"outline":"f3e6"}},"rosette-discount":{"name":"rosette-discount","category":"E-commerce","tags":["sale","reduction","price","cost","money","shopping","bargain"],"variants":{"outline":"ee7c","filled":"ff05"}},"rosette-number-0":{"name":"rosette-number-0","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f58f"}},"rosette-number-1":{"name":"rosette-number-1","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f590"}},"rosette-number-2":{"name":"rosette-number-2","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f591"}},"rosette-number-3":{"name":"rosette-number-3","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f592"}},"rosette-number-4":{"name":"rosette-number-4","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f593"}},"rosette-number-5":{"name":"rosette-number-5","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f594"}},"rosette-number-6":{"name":"rosette-number-6","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f595"}},"rosette-number-7":{"name":"rosette-number-7","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f596"}},"rosette-number-8":{"name":"rosette-number-8","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f597"}},"rosette-number-9":{"name":"rosette-number-9","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f598"}},"rosette":{"name":"rosette","category":"Shapes","tags":["shape","badge","star","medal"],"variants":{"outline":"f599","filled":"f69d"}},"rotate-2":{"name":"rotate-2","category":"Arrows","tags":["refresh","synchronization","reload","restart","spinner","loader","ajax","update","arrows"],"variants":{"outline":"ebb4"}},"rotate-360":{"name":"rotate-360","category":"Arrows","tags":["degree","circle","camera","spin","rotation"],"variants":{"outline":"ef85"}},"rotate-3d":{"name":"rotate-3d","category":"","tags":["rotation","geometry","3d","modeling"],"variants":{"outline":"f020"}},"rotate-clockwise-2":{"name":"rotate-clockwise-2","category":"Arrows","tags":["refresh","synchronization","reload","restart","spinner","loader","ajax","update","arrows"],"variants":{"outline":"ebb5"}},"rotate-clockwise":{"name":"rotate-clockwise","category":"Arrows","tags":["refresh","synchronization","reload","restart","spinner","loader","ajax","update","arrows"],"variants":{"outline":"eb15"}},"rotate-dot":{"name":"rotate-dot","category":"Arrows","tags":["direction","degree","circle","camera","spin","rotation"],"variants":{"outline":"efe5"}},"rotate-rectangle":{"name":"rotate-rectangle","category":"Arrows","tags":["refresh","synchronization","reload","restart","spinner","loader","ajax","update","arrows"],"variants":{"outline":"ec15"}},"rotate":{"name":"rotate","category":"Arrows","tags":["refresh","synchronization","reload","restart","spinner","loader","ajax","update","arrows"],"variants":{"outline":"eb16"}},"route-2":{"name":"route-2","category":"Map","tags":["path","journey","direction","trail","navigate","travel","way","road","route-two","2-direction"],"variants":{"outline":"f4b6"}},"route-alt-left":{"name":"route-alt-left","category":"Map","tags":["alternate-left","alternate-route","left-path","alternate-way","left-trail","alt-left-road","leftward-route","shift-left","change-left","left-road"],"variants":{"outline":"fca9"}},"route-alt-right":{"name":"route-alt-right","category":"Map","tags":["alternate-right","alternate-route","right-path","alternate-way","right-trail","alt-right-road","rightward-route","shift-right","change-right","right-road"],"variants":{"outline":"fcaa"}},"route-off":{"name":"route-off","category":"Map","tags":["path","navigation","map"],"variants":{"outline":"f194"}},"route-scan":{"name":"route-scan","category":"","tags":[],"variants":{"outline":"fcbf"}},"route-square-2":{"name":"route-square-2","category":"Map","tags":["square-route","route-square","path","journey","direction","trail","navigate","travel","way","square-direction"],"variants":{"outline":"fcab"}},"route-square":{"name":"route-square","category":"Map","tags":["path","journey","direction","trail","navigate","travel","way","square","geometric-route","square-path"],"variants":{"outline":"fcac"}},"route-x-2":{"name":"route-x-2","category":"Map","tags":["x-route","route-x","path","journey","direction","trail","navigate","travel","way","crossing"],"variants":{"outline":"fcad"}},"route-x":{"name":"route-x","category":"Map","tags":["path","journey","direction","trail","navigate","travel","way","cross","x-cross","cross-path"],"variants":{"outline":"fcae"}},"route":{"name":"route","category":"Map","tags":["path","journey","direction","trail","navigate","travel","way","road","travel-route","route-way"],"variants":{"outline":"eb17"}},"router-off":{"name":"router-off","category":"Devices","tags":["wifi","device","wireless","signal","station","cast"],"variants":{"outline":"f424"}},"router":{"name":"router","category":"Devices","tags":["wifi","device","wireless","signal","station","cast"],"variants":{"outline":"eb18"}},"row-insert-bottom":{"name":"row-insert-bottom","category":"Database","tags":["table","layout","add","below","macro","excel"],"variants":{"outline":"eed0"}},"row-insert-top":{"name":"row-insert-top","category":"Database","tags":["table","layout","add","below","macro","excel"],"variants":{"outline":"eed1"}},"row-remove":{"name":"row-remove","category":"Database","tags":[],"variants":{"outline":"fafe"}},"rss":{"name":"rss","category":"","tags":["feed","subscribe"],"variants":{"outline":"eb19"}},"rubber-stamp-off":{"name":"rubber-stamp-off","category":"Document","tags":["rubber","stamp","seal","letter","mail","document","signature"],"variants":{"outline":"f5aa"}},"rubber-stamp":{"name":"rubber-stamp","category":"Document","tags":["rubber","stamp","seal","letter","mail","document","signature"],"variants":{"outline":"f5ab"}},"ruler-2-off":{"name":"ruler-2-off","category":"Design","tags":["maths","dimensions","size","width","length","geometry","measure","technical"],"variants":{"outline":"f195"}},"ruler-2":{"name":"ruler-2","category":"Design","tags":["maths","dimensions","size","width","length","geometry","measure","technical"],"variants":{"outline":"eed2"}},"ruler-3":{"name":"ruler-3","category":"Design","tags":["maths","dimensions","size","width","length","geometry","measure","technical"],"variants":{"outline":"f290"}},"ruler-measure-2":{"name":"ruler-measure-2","category":"Design","tags":["maths","dimensions","size","width","length","geometry","measure","technical","distance"],"variants":{"outline":"ff0f"}},"ruler-measure":{"name":"ruler-measure","category":"Design","tags":["maths","dimensions","size","width","length","geometry","measure","technical","distance"],"variants":{"outline":"f291"}},"ruler-off":{"name":"ruler-off","category":"Design","tags":["maths","dimensions","size","width","length","geometry","measure","technical"],"variants":{"outline":"f196"}},"ruler":{"name":"ruler","category":"Design","tags":["maths","dimensions","size","width","length","geometry","measure","technical"],"variants":{"outline":"eb1a"}},"run":{"name":"run","category":"Sport","tags":["jog","dislocating","movement","motion","sprint"],"variants":{"outline":"ec82"}},"rv-truck":{"name":"rv-truck","category":"","tags":[],"variants":{"outline":"fcc0"}},"s-turn-down":{"name":"s-turn-down","category":"Arrows","tags":["arrow","direction","bottom","south"],"variants":{"outline":"f516"}},"s-turn-left":{"name":"s-turn-left","category":"Arrows","tags":["arrow","direction","west"],"variants":{"outline":"f517"}},"s-turn-right":{"name":"s-turn-right","category":"Arrows","tags":["arrow","direction","east"],"variants":{"outline":"f518"}},"s-turn-up":{"name":"s-turn-up","category":"Arrows","tags":["arrow","direction","top","north"],"variants":{"outline":"f519"}},"sailboat-2":{"name":"sailboat-2","category":"Vehicles","tags":["sailor","journey","sea","lake","ocean","river"],"variants":{"outline":"f5f7"}},"sailboat-off":{"name":"sailboat-off","category":"Vehicles","tags":["sailor","journey","sea","lake","ocean","river"],"variants":{"outline":"f425"}},"sailboat":{"name":"sailboat","category":"Vehicles","tags":["sailor","journey","sea","lake","ocean","river"],"variants":{"outline":"ec83"}},"salad":{"name":"salad","category":"Food","tags":["food","vegetable","vegan","healthy"],"variants":{"outline":"f50a"}},"salt":{"name":"salt","category":"Food","tags":["food","cooking","kitchen","spice","salty"],"variants":{"outline":"ef16"}},"sandbox":{"name":"sandbox","category":"System","tags":[],"variants":{"outline":"fd6c"}},"satellite-off":{"name":"satellite-off","category":"Map","tags":["orbit","space","moon","earth","planet","communication","information","celestial"],"variants":{"outline":"f197"}},"satellite":{"name":"satellite","category":"Map","tags":["orbit","space","moon","earth","planet","communication","information","celestial"],"variants":{"outline":"eed3"}},"sausage":{"name":"sausage","category":"Food","tags":["food","grill","bonfire","campfire","meat","hot-dog"],"variants":{"outline":"ef17"}},"scale-off":{"name":"scale-off","category":"","tags":["weigh","balance","amount","heavy","light","libra"],"variants":{"outline":"f198"}},"scale-outline-off":{"name":"scale-outline-off","category":"","tags":["weight","weigh","diet","healthy","measurement"],"variants":{"outline":"f199"}},"scale-outline":{"name":"scale-outline","category":"","tags":["weight","weigh","diet","healthy","measurement"],"variants":{"outline":"ef53"}},"scale":{"name":"scale","category":"","tags":["weigh","balance","amount","heavy","light","libra"],"variants":{"outline":"ebc2"}},"scan-eye":{"name":"scan-eye","category":"","tags":["technology","security","safety","safe","secure"],"variants":{"outline":"f1ff"}},"scan-position":{"name":"scan-position","category":"","tags":[],"variants":{"outline":"fdac"}},"scan":{"name":"scan","category":"","tags":["code","barcode","qr code","app","scanner","document"],"variants":{"outline":"ebc8"}},"schema-off":{"name":"schema-off","category":"Database","tags":["graph","data","infography"],"variants":{"outline":"f426"}},"schema":{"name":"schema","category":"Database","tags":["graph","data","infography"],"variants":{"outline":"f200"}},"school-bell":{"name":"school-bell","category":"","tags":["break","lesson","alarm","ring"],"variants":{"outline":"f64a"}},"school-off":{"name":"school-off","category":"Map","tags":["students","class","teachers","professors","doctors","hall","classroom","subject","science","break","lesson"],"variants":{"outline":"f19a"}},"school":{"name":"school","category":"Map","tags":["students","class","teachers","professors","doctors","hall","classroom","subject","science","break","lesson"],"variants":{"outline":"ecf7"}},"scissors-off":{"name":"scissors-off","category":"Design","tags":["cut","paper","file","document","hairdresser","blade","sharp"],"variants":{"outline":"f19b"}},"scissors":{"name":"scissors","category":"Design","tags":["cut","paper","file","document","hairdresser","blade","sharp"],"variants":{"outline":"eb1b"}},"scooter-electric":{"name":"scooter-electric","category":"Vehicles","tags":["vehicle","drive","driver","engine","motor","journey","trip"],"variants":{"outline":"ecc1"}},"scooter":{"name":"scooter","category":"Vehicles","tags":["vehicle","drive","driver","engine","motor","journey","trip"],"variants":{"outline":"ec6c"}},"scoreboard":{"name":"scoreboard","category":"Sport","tags":[],"variants":{"outline":"fa6b"}},"screen-share-off":{"name":"screen-share-off","category":"Devices","tags":["monitor","stream","tv","mirroring","cast","online"],"variants":{"outline":"ed17"}},"screen-share":{"name":"screen-share","category":"Devices","tags":["monitor","stream","tv","mirroring","cast","online"],"variants":{"outline":"ed18"}},"screenshot":{"name":"screenshot","category":"","tags":["image","capture","photo"],"variants":{"outline":"f201"}},"scribble-off":{"name":"scribble-off","category":"","tags":["kid","doodle","draw","drawing"],"variants":{"outline":"f427"}},"scribble":{"name":"scribble","category":"","tags":["kid","doodle","draw","drawing"],"variants":{"outline":"f0a3"}},"script-minus":{"name":"script-minus","category":"Document","tags":["code","programming","coding","remove","delete"],"variants":{"outline":"f2d7"}},"script-plus":{"name":"script-plus","category":"Document","tags":["code","programming","coding","add","new"],"variants":{"outline":"f2d8"}},"script-x":{"name":"script-x","category":"Document","tags":["code","programming","coding","remove","delete"],"variants":{"outline":"f2d9"}},"script":{"name":"script","category":"Document","tags":["code","programming","coding","document","development"],"variants":{"outline":"f2da"}},"scuba-diving-tank":{"name":"scuba-diving-tank","category":"Sport","tags":["dive","diving","water","open water","underwater","pressure","compressed air","air"],"variants":{"outline":"fefa","filled":"ff04"}},"scuba-diving":{"name":"scuba-diving","category":"Sport","tags":["dive","diving","water","open water","underwater"],"variants":{"outline":"fd4e"}},"scuba-mask-off":{"name":"scuba-mask-off","category":"Sport","tags":["dive","diving","water","holiday","underwater","snorkeling","equipment"],"variants":{"outline":"f428"}},"scuba-mask":{"name":"scuba-mask","category":"Sport","tags":["dive","diving","water","holiday","underwater","snorkeling","equipment"],"variants":{"outline":"eed4"}},"sdk":{"name":"sdk","category":"Development","tags":["development","programming","programmer","web","app"],"variants":{"outline":"f3af"}},"search-off":{"name":"search-off","category":"","tags":["find","magnifier","magnifying glass"],"variants":{"outline":"f19c"}},"search":{"name":"search","category":"","tags":["find","magnifier","magnifying glass"],"variants":{"outline":"eb1c"}},"section-sign":{"name":"section-sign","category":"","tags":["legal","paragraph","law"],"variants":{"outline":"f019"}},"section":{"name":"section","category":"Design","tags":["html","element","layout","divide","position","website"],"variants":{"outline":"eed5","filled":"fe09"}},"seeding-off":{"name":"seeding-off","category":"Nature","tags":["nature","greenery","grow","soil","harvest","plant","flower","tree","leaf"],"variants":{"outline":"f19d"}},"seeding":{"name":"seeding","category":"Nature","tags":["nature","greenery","grow","soil","harvest","plant","flower","tree","leaf"],"variants":{"outline":"ed51"}},"select-all":{"name":"select-all","category":"","tags":[],"variants":{"outline":"f9f7"}},"select":{"name":"select","category":"Arrows","tags":["arrows","select","dropdown","chevron","down","south","bottom","direction","input"],"variants":{"outline":"ec9e"}},"selector":{"name":"selector","category":"Arrows","tags":["arrows","select","dropdown","chevron","down","south","bottom","direction","input"],"variants":{"outline":"eb1d"}},"send-2":{"name":"send-2","category":"","tags":["transmit","dispatch","forward","deliver","message","communication","send-out","send-away","transfer","send-off"],"variants":{"outline":"fd5d"}},"send-off":{"name":"send-off","category":"Communication","tags":["message","mail","email","gmail","paper","airplane","aeroplane"],"variants":{"outline":"f429"}},"send":{"name":"send","category":"Communication","tags":["message","mail","email","gmail","paper","airplane","aeroplane"],"variants":{"outline":"eb1e"}},"seo":{"name":"seo","category":"Development","tags":["www","web","browser","search","result"],"variants":{"outline":"f26b"}},"separator-horizontal":{"name":"separator-horizontal","category":"Text","tags":["divider","space","separate","set apart","flat-lying"],"variants":{"outline":"ec79"}},"separator-vertical":{"name":"separator-vertical","category":"Text","tags":["divider","space","separate","set apart","upright"],"variants":{"outline":"ec7a"}},"separator":{"name":"separator","category":"Text","tags":["divider","space","separate","set apart"],"variants":{"outline":"ebda"}},"server-2":{"name":"server-2","category":"Devices","tags":["storage","hosting","www"],"variants":{"outline":"f07c"}},"server-bolt":{"name":"server-bolt","category":"Devices","tags":["data","database","storage","lighting","power","energy"],"variants":{"outline":"f320"}},"server-cog":{"name":"server-cog","category":"Devices","tags":["settings","storage","data","database"],"variants":{"outline":"f321"}},"server-off":{"name":"server-off","category":"Devices","tags":["storage","hosting","www"],"variants":{"outline":"f19e"}},"server":{"name":"server","category":"Devices","tags":["storage","hosting","www"],"variants":{"outline":"eb1f"}},"servicemark":{"name":"servicemark","category":"Symbols","tags":["trademark","sign","symbol","registration"],"variants":{"outline":"ec09"}},"settings-2":{"name":"settings-2","category":"System","tags":["cog","edit","gear","preferences","tools"],"variants":{"outline":"f5ac"}},"settings-automation":{"name":"settings-automation","category":"System","tags":["system","technology","automate","configure","device","program"],"variants":{"outline":"eed6"}},"settings-bolt":{"name":"settings-bolt","category":"System","tags":[],"variants":{"outline":"f9ad"}},"settings-cancel":{"name":"settings-cancel","category":"System","tags":[],"variants":{"outline":"f9ae"}},"settings-check":{"name":"settings-check","category":"System","tags":[],"variants":{"outline":"f9af"}},"settings-code":{"name":"settings-code","category":"System","tags":[],"variants":{"outline":"f9b0"}},"settings-cog":{"name":"settings-cog","category":"System","tags":[],"variants":{"outline":"f9b1"}},"settings-dollar":{"name":"settings-dollar","category":"System","tags":[],"variants":{"outline":"f9b2"}},"settings-down":{"name":"settings-down","category":"System","tags":[],"variants":{"outline":"f9b3"}},"settings-exclamation":{"name":"settings-exclamation","category":"System","tags":[],"variants":{"outline":"f9b4"}},"settings-heart":{"name":"settings-heart","category":"System","tags":[],"variants":{"outline":"f9b5"}},"settings-minus":{"name":"settings-minus","category":"System","tags":[],"variants":{"outline":"f9b6"}},"settings-off":{"name":"settings-off","category":"System","tags":["cog","edit","gear","preferences","tools"],"variants":{"outline":"f19f"}},"settings-pause":{"name":"settings-pause","category":"System","tags":[],"variants":{"outline":"f9b7"}},"settings-pin":{"name":"settings-pin","category":"System","tags":[],"variants":{"outline":"f9b8"}},"settings-plus":{"name":"settings-plus","category":"System","tags":[],"variants":{"outline":"f9b9"}},"settings-question":{"name":"settings-question","category":"System","tags":[],"variants":{"outline":"f9ba"}},"settings-search":{"name":"settings-search","category":"System","tags":[],"variants":{"outline":"f9bb"}},"settings-share":{"name":"settings-share","category":"System","tags":[],"variants":{"outline":"f9bc"}},"settings-star":{"name":"settings-star","category":"System","tags":[],"variants":{"outline":"f9bd"}},"settings-up":{"name":"settings-up","category":"System","tags":[],"variants":{"outline":"f9be"}},"settings-x":{"name":"settings-x","category":"System","tags":[],"variants":{"outline":"f9bf"}},"settings":{"name":"settings","category":"System","tags":["cog","edit","gear","preferences","tools"],"variants":{"outline":"eb20","filled":"f69e"}},"shadow-off":{"name":"shadow-off","category":"Photography","tags":["dark","sun","area","covered","dim","light","css","effect"],"variants":{"outline":"eed7"}},"shadow":{"name":"shadow","category":"Photography","tags":["dark","sun","area","covered","dim","light","css","effect"],"variants":{"outline":"eed8"}},"shape-2":{"name":"shape-2","category":"Design","tags":["draw","square","form","create","outline"],"variants":{"outline":"eed9"}},"shape-3":{"name":"shape-3","category":"Design","tags":["draw","square","form","create","outline"],"variants":{"outline":"eeda"}},"shape-off":{"name":"shape-off","category":"Design","tags":["draw","square","form","create","outline"],"variants":{"outline":"f1a0"}},"shape":{"name":"shape","category":"Design","tags":["draw","square","form","create","outline"],"variants":{"outline":"eb9c"}},"share-2":{"name":"share-2","category":"Arrows","tags":["network","link","connection"],"variants":{"outline":"f799"}},"share-3":{"name":"share-3","category":"Arrows","tags":["network","link","connection"],"variants":{"outline":"f7bd"}},"share-off":{"name":"share-off","category":"","tags":["network","link","connection"],"variants":{"outline":"f1a1"}},"share":{"name":"share","category":"","tags":["network","link","connection"],"variants":{"outline":"eb21"}},"shareplay":{"name":"shareplay","category":"Media","tags":[],"variants":{"outline":"fea5"}},"shield-bolt":{"name":"shield-bolt","category":"System","tags":[],"variants":{"outline":"f9c0"}},"shield-cancel":{"name":"shield-cancel","category":"System","tags":[],"variants":{"outline":"f9c1"}},"shield-check":{"name":"shield-check","category":"System","tags":["safety","protect","protection","yes","add"],"variants":{"outline":"eb22","filled":"f761"}},"shield-checkered":{"name":"shield-checkered","category":"System","tags":["knight","guard","defence","protect"],"variants":{"outline":"ef9a","filled":"f762"}},"shield-chevron":{"name":"shield-chevron","category":"System","tags":["knight","guard","defence","protect"],"variants":{"outline":"ef9b"}},"shield-code":{"name":"shield-code","category":"System","tags":[],"variants":{"outline":"f9c2"}},"shield-cog":{"name":"shield-cog","category":"System","tags":[],"variants":{"outline":"f9c3"}},"shield-dollar":{"name":"shield-dollar","category":"System","tags":[],"variants":{"outline":"f9c4"}},"shield-down":{"name":"shield-down","category":"System","tags":[],"variants":{"outline":"f9c5"}},"shield-exclamation":{"name":"shield-exclamation","category":"System","tags":[],"variants":{"outline":"f9c6"}},"shield-half":{"name":"shield-half","category":"System","tags":["safe","security","secure","safety","protect","protection"],"variants":{"outline":"f358","filled":"f357"}},"shield-heart":{"name":"shield-heart","category":"System","tags":[],"variants":{"outline":"f9c7"}},"shield-lock":{"name":"shield-lock","category":"System","tags":["secure","security","closed","key","safety"],"variants":{"outline":"ed58","filled":"f763"}},"shield-minus":{"name":"shield-minus","category":"System","tags":[],"variants":{"outline":"f9c8"}},"shield-off":{"name":"shield-off","category":"System","tags":["safety","protect","protection"],"variants":{"outline":"ecf8"}},"shield-pause":{"name":"shield-pause","category":"System","tags":[],"variants":{"outline":"f9c9"}},"shield-pin":{"name":"shield-pin","category":"System","tags":[],"variants":{"outline":"f9ca"}},"shield-plus":{"name":"shield-plus","category":"System","tags":[],"variants":{"outline":"f9cb"}},"shield-question":{"name":"shield-question","category":"System","tags":[],"variants":{"outline":"f9cc"}},"shield-search":{"name":"shield-search","category":"System","tags":[],"variants":{"outline":"f9cd"}},"shield-share":{"name":"shield-share","category":"System","tags":[],"variants":{"outline":"f9ce"}},"shield-star":{"name":"shield-star","category":"System","tags":[],"variants":{"outline":"f9cf"}},"shield-up":{"name":"shield-up","category":"System","tags":[],"variants":{"outline":"f9d0"}},"shield-x":{"name":"shield-x","category":"System","tags":["unprotected","protection","cancel","no"],"variants":{"outline":"eb23"}},"shield":{"name":"shield","category":"System","tags":["safety","protect","protection"],"variants":{"outline":"eb24","filled":"f69f"}},"ship-off":{"name":"ship-off","category":"Vehicles","tags":["sail","sail across","ocean","river","lake","sea","sailor","journey","transit","manufactures","containers"],"variants":{"outline":"f42a"}},"ship":{"name":"ship","category":"Vehicles","tags":["sail","sail across","ocean","river","lake","sea","sailor","journey","transit","manufactures","containers"],"variants":{"outline":"ec84"}},"shirt-off":{"name":"shirt-off","category":"","tags":["gear","outfit","mocker"],"variants":{"outline":"f1a2"}},"shirt-sport":{"name":"shirt-sport","category":"","tags":["basketball","soccer","football","player","clothes","game"],"variants":{"outline":"f26c"}},"shirt":{"name":"shirt","category":"","tags":["gear","outfit","mocker"],"variants":{"outline":"ec0a","filled":"f6a0"}},"shoe-off":{"name":"shoe-off","category":"","tags":["sport","boots","boot","footwear","sneaker","nike","adidas"],"variants":{"outline":"f1a4"}},"shoe":{"name":"shoe","category":"","tags":["sport","boots","boot","footwear","sneaker","nike","adidas"],"variants":{"outline":"efd2"}},"shopping-bag-check":{"name":"shopping-bag-check","category":"E-commerce","tags":[],"variants":{"outline":"fc16"}},"shopping-bag-discount":{"name":"shopping-bag-discount","category":"E-commerce","tags":[],"variants":{"outline":"fc17"}},"shopping-bag-edit":{"name":"shopping-bag-edit","category":"E-commerce","tags":[],"variants":{"outline":"fc18"}},"shopping-bag-exclamation":{"name":"shopping-bag-exclamation","category":"E-commerce","tags":[],"variants":{"outline":"fc19"}},"shopping-bag-heart":{"name":"shopping-bag-heart","category":"","tags":[],"variants":{"outline":"fda2"}},"shopping-bag-minus":{"name":"shopping-bag-minus","category":"E-commerce","tags":[],"variants":{"outline":"fc1a"}},"shopping-bag-plus":{"name":"shopping-bag-plus","category":"E-commerce","tags":[],"variants":{"outline":"fc1b"}},"shopping-bag-search":{"name":"shopping-bag-search","category":"E-commerce","tags":[],"variants":{"outline":"fc1c"}},"shopping-bag-x":{"name":"shopping-bag-x","category":"E-commerce","tags":[],"variants":{"outline":"fc1d"}},"shopping-bag":{"name":"shopping-bag","category":"E-commerce","tags":["shop","store","ecommerce","buy"],"variants":{"outline":"f5f8"}},"shopping-cart-bolt":{"name":"shopping-cart-bolt","category":"","tags":[],"variants":{"outline":"fb57"}},"shopping-cart-cancel":{"name":"shopping-cart-cancel","category":"","tags":[],"variants":{"outline":"fb58"}},"shopping-cart-check":{"name":"shopping-cart-check","category":"","tags":[],"variants":{"outline":"fb59"}},"shopping-cart-code":{"name":"shopping-cart-code","category":"","tags":[],"variants":{"outline":"fb5a"}},"shopping-cart-cog":{"name":"shopping-cart-cog","category":"","tags":[],"variants":{"outline":"fb5b"}},"shopping-cart-copy":{"name":"shopping-cart-copy","category":"","tags":[],"variants":{"outline":"fb5c"}},"shopping-cart-discount":{"name":"shopping-cart-discount","category":"","tags":[],"variants":{"outline":"fb5d"}},"shopping-cart-dollar":{"name":"shopping-cart-dollar","category":"","tags":[],"variants":{"outline":"fb5e"}},"shopping-cart-down":{"name":"shopping-cart-down","category":"","tags":[],"variants":{"outline":"fb5f"}},"shopping-cart-exclamation":{"name":"shopping-cart-exclamation","category":"","tags":[],"variants":{"outline":"fb60"}},"shopping-cart-heart":{"name":"shopping-cart-heart","category":"","tags":[],"variants":{"outline":"fb61"}},"shopping-cart-minus":{"name":"shopping-cart-minus","category":"","tags":[],"variants":{"outline":"fb62"}},"shopping-cart-off":{"name":"shopping-cart-off","category":"E-commerce","tags":["shop","store","buy","purchase","product","bag","trolley","supermarket","grocery"],"variants":{"outline":"eedc"}},"shopping-cart-pause":{"name":"shopping-cart-pause","category":"","tags":[],"variants":{"outline":"fb63"}},"shopping-cart-pin":{"name":"shopping-cart-pin","category":"","tags":[],"variants":{"outline":"fb64"}},"shopping-cart-plus":{"name":"shopping-cart-plus","category":"","tags":[],"variants":{"outline":"fb65"}},"shopping-cart-question":{"name":"shopping-cart-question","category":"","tags":[],"variants":{"outline":"fb66"}},"shopping-cart-search":{"name":"shopping-cart-search","category":"","tags":[],"variants":{"outline":"fb67"}},"shopping-cart-share":{"name":"shopping-cart-share","category":"","tags":[],"variants":{"outline":"fb68"}},"shopping-cart-star":{"name":"shopping-cart-star","category":"","tags":[],"variants":{"outline":"fb69"}},"shopping-cart-up":{"name":"shopping-cart-up","category":"","tags":[],"variants":{"outline":"fb6a"}},"shopping-cart-x":{"name":"shopping-cart-x","category":"","tags":[],"variants":{"outline":"fb6b"}},"shopping-cart":{"name":"shopping-cart","category":"E-commerce","tags":["shop","store","buy","purchase","product","bag","trolley","supermarket","grocery"],"variants":{"outline":"eb25","filled":"fc3f"}},"shovel-pitchforks":{"name":"shovel-pitchforks","category":"","tags":["shovel","pitchfork","digging-tool","gardening","agriculture","farm-tool","manual-labor","soil","gardening-implement","dig"],"variants":{"outline":"fd3a"}},"shovel":{"name":"shovel","category":"","tags":["garden","tool","digging","farm","dirt","gardening"],"variants":{"outline":"f1d9"}},"shredder":{"name":"shredder","category":"Devices","tags":["paper","document","destroy","device","office","confidential"],"variants":{"outline":"eedf"}},"sign-left":{"name":"sign-left","category":"Map","tags":["direction","west","navigation","arrow","navigate"],"variants":{"outline":"f06b","filled":"f6a1"}},"sign-right":{"name":"sign-right","category":"Map","tags":["direction","east","navigation","arrow","navigate"],"variants":{"outline":"f06c","filled":"f6a2"}},"signal-2g":{"name":"signal-2g","category":"Devices","tags":["mobile","network","phone","wifi","connection"],"variants":{"outline":"f79a"}},"signal-3g":{"name":"signal-3g","category":"Devices","tags":["mobile","network","connetion","wi-fi","wireless","smartphone","technology"],"variants":{"outline":"f1ee"}},"signal-4g-plus":{"name":"signal-4g-plus","category":"Devices","tags":["mobile","network","connetion","wi-fi","wireless","smartphone","technology"],"variants":{"outline":"f259"}},"signal-4g":{"name":"signal-4g","category":"Devices","tags":["mobile","network","connetion","wi-fi","wireless","smartphone","technology"],"variants":{"outline":"f1ef"}},"signal-5g":{"name":"signal-5g","category":"Devices","tags":["mobile","network","connetion","wi-fi","wireless","smartphone","technology"],"variants":{"outline":"f1f0"}},"signal-6g":{"name":"signal-6g","category":"Devices","tags":[],"variants":{"outline":"f9f8"}},"signal-e":{"name":"signal-e","category":"Devices","tags":[],"variants":{"outline":"f9f9"}},"signal-g":{"name":"signal-g","category":"Devices","tags":[],"variants":{"outline":"f9fa"}},"signal-h-plus":{"name":"signal-h-plus","category":"Devices","tags":[],"variants":{"outline":"f9fb"}},"signal-h":{"name":"signal-h","category":"Devices","tags":[],"variants":{"outline":"f9fc"}},"signal-lte":{"name":"signal-lte","category":"Devices","tags":[],"variants":{"outline":"f9fd"}},"signature-off":{"name":"signature-off","category":"Text","tags":["name","certficate","sign","edit","write","document","writing"],"variants":{"outline":"f1a5"}},"signature":{"name":"signature","category":"Text","tags":["name","certficate","sign","edit","write","document","writing"],"variants":{"outline":"eee0"}},"sitemap-off":{"name":"sitemap-off","category":"Development","tags":["page","webpage","website","list","roadmap","index"],"variants":{"outline":"f1a6"}},"sitemap":{"name":"sitemap","category":"Development","tags":["page","webpage","website","list","roadmap","index"],"variants":{"outline":"eb9d"}},"skateboard-off":{"name":"skateboard-off","category":"Vehicles","tags":["toy","vehicle","electrical"],"variants":{"outline":"f42b"}},"skateboard":{"name":"skateboard","category":"Vehicles","tags":["toy","vehicle","electrical"],"variants":{"outline":"ecc2"}},"skateboarding":{"name":"skateboarding","category":"Sport","tags":[],"variants":{"outline":"faca"}},"skew-x":{"name":"skew-x","category":"","tags":["skew-horizontal","tilt-x","slant-x","distort-horizontal","angled","slanted","tilted","diagonal","oblique","slope-x"],"variants":{"outline":"fd3b"}},"skew-y":{"name":"skew-y","category":"","tags":["skew-vertical","tilt-y","slant-y","distort-vertical","angled","slanted","tilted","diagonal","oblique","slope-y"],"variants":{"outline":"fd3c"}},"ski-jumping":{"name":"ski-jumping","category":"Sport","tags":[],"variants":{"outline":"fa6c"}},"skull":{"name":"skull","category":"Health","tags":["halloween","skeleton","dead","pirate","danger","horror"],"variants":{"outline":"f292"}},"slash":{"name":"slash","category":"Math","tags":["sign","divide","dash"],"variants":{"outline":"f4f9"}},"slashes":{"name":"slashes","category":"","tags":["sign","key","button","dash","divide"],"variants":{"outline":"f588"}},"sleigh":{"name":"sleigh","category":"Vehicles","tags":["winter","christmas","snow","santa","transport","sledge"],"variants":{"outline":"ef9c"}},"slice":{"name":"slice","category":"Design","tags":["knife","cut","chop","portion","kitchen","tool"],"variants":{"outline":"ebdb"}},"slideshow":{"name":"slideshow","category":"Text","tags":["photo","picture","video","presentation","camera","display","ad"],"variants":{"outline":"ebc9"}},"smart-home-off":{"name":"smart-home-off","category":"Buildings","tags":["apple","devices","connection","link","wifi","bluetooth"],"variants":{"outline":"f1a7"}},"smart-home":{"name":"smart-home","category":"Buildings","tags":["apple","devices","connection","link","wifi","bluetooth"],"variants":{"outline":"ecde"}},"smoking-no":{"name":"smoking-no","category":"Health","tags":["ban","prohibition","cigarette","public place"],"variants":{"outline":"ecc3"}},"smoking":{"name":"smoking","category":"Health","tags":["cigarette","public place"],"variants":{"outline":"ecc4"}},"snowboarding":{"name":"snowboarding","category":"","tags":[],"variants":{"outline":"fd4f"}},"snowflake-off":{"name":"snowflake-off","category":"Weather","tags":["winter","weather","cold","frost"],"variants":{"outline":"f1a8"}},"snowflake":{"name":"snowflake","category":"Weather","tags":["winter","weather","cold","frost"],"variants":{"outline":"ec0b"}},"snowman":{"name":"snowman","category":"","tags":["winter","christmas","snow","cold","frosty"],"variants":{"outline":"f26d"}},"soccer-field":{"name":"soccer-field","category":"Sport","tags":["football","pitch","player","vall","goal","goalkeeper","kick","ball","score","sport","sportsman"],"variants":{"outline":"ed92"}},"social-off":{"name":"social-off","category":"","tags":["society","community","collectivity"],"variants":{"outline":"f1a9"}},"social":{"name":"social","category":"","tags":["society","community","collectivity"],"variants":{"outline":"ebec"}},"sock":{"name":"sock","category":"","tags":["clothing","clothes","foot","feet","leg","knit","wool","cotton","ankle"],"variants":{"outline":"eee1"}},"sofa-off":{"name":"sofa-off","category":"","tags":["chair","seat","home","furniture","couch"],"variants":{"outline":"f42c"}},"sofa":{"name":"sofa","category":"","tags":["chair","seat","home","furniture","couch"],"variants":{"outline":"efaf"}},"solar-electricity":{"name":"solar-electricity","category":"","tags":[],"variants":{"outline":"fcc1"}},"solar-panel-2":{"name":"solar-panel-2","category":"","tags":["energy","sun","power","ecology","electricity"],"variants":{"outline":"f7be"}},"solar-panel":{"name":"solar-panel","category":"","tags":["energy","sun","power","ecology","electricity"],"variants":{"outline":"f7bf"}},"sort-0-9":{"name":"sort-0-9","category":"Text","tags":["numbers","one","two","three","four","five","numerical"],"variants":{"outline":"f54d"}},"sort-9-0":{"name":"sort-9-0","category":"Text","tags":["numbers","one","two","three","four","five","numerical"],"variants":{"outline":"f54e"}},"sort-a-z":{"name":"sort-a-z","category":"Text","tags":["alphabet","letters","alphabetical"],"variants":{"outline":"f54f"}},"sort-ascending-2":{"name":"sort-ascending-2","category":"Text","tags":["filter","classify","arrange","order"],"variants":{"outline":"eee2","filled":"ff5b"}},"sort-ascending-letters":{"name":"sort-ascending-letters","category":"Text","tags":["filter","classify","arrange","order"],"variants":{"outline":"ef18"}},"sort-ascending-numbers":{"name":"sort-ascending-numbers","category":"Text","tags":["filter","classify","arrange","order"],"variants":{"outline":"ef19"}},"sort-ascending-shapes":{"name":"sort-ascending-shapes","category":"","tags":[],"variants":{"outline":"fd94","filled":"ff5a"}},"sort-ascending-small-big":{"name":"sort-ascending-small-big","category":"","tags":[],"variants":{"outline":"fd95"}},"sort-ascending":{"name":"sort-ascending","category":"Text","tags":["filter","classify","arrange","order"],"variants":{"outline":"eb26"}},"sort-descending-2":{"name":"sort-descending-2","category":"Text","tags":["filter","classify","arrange","order"],"variants":{"outline":"eee3","filled":"ff59"}},"sort-descending-letters":{"name":"sort-descending-letters","category":"Text","tags":["filter","classify","arrange","order"],"variants":{"outline":"ef1a"}},"sort-descending-numbers":{"name":"sort-descending-numbers","category":"Text","tags":["filter","classify","arrange","order"],"variants":{"outline":"ef1b"}},"sort-descending-shapes":{"name":"sort-descending-shapes","category":"","tags":[],"variants":{"outline":"fd97","filled":"ff58"}},"sort-descending-small-big":{"name":"sort-descending-small-big","category":"","tags":[],"variants":{"outline":"fd96"}},"sort-descending":{"name":"sort-descending","category":"Text","tags":["filter","classify","arrange","order"],"variants":{"outline":"eb27"}},"sort-z-a":{"name":"sort-z-a","category":"Text","tags":["alphabet","letters","alphabetical"],"variants":{"outline":"f550"}},"sos":{"name":"sos","category":"","tags":["help","emergency","signal","message","alert"],"variants":{"outline":"f24a"}},"soup-off":{"name":"soup-off","category":"Food","tags":["food","cooking","restaurant","bowl","hot","kitchen"],"variants":{"outline":"f42d"}},"soup":{"name":"soup","category":"Food","tags":["food","cooking","restaurant","bowl","hot","kitchen"],"variants":{"outline":"ef2e","filled":"fe08"}},"source-code":{"name":"source-code","category":"","tags":["programming","coding","html","development"],"variants":{"outline":"f4a2"}},"space-off":{"name":"space-off","category":"Text","tags":["keyboard","type","gap"],"variants":{"outline":"f1aa"}},"space":{"name":"space","category":"Text","tags":["keyboard","type","gap"],"variants":{"outline":"ec0c"}},"spaces":{"name":"spaces","category":"","tags":[],"variants":{"outline":"fea4"}},"spacing-horizontal":{"name":"spacing-horizontal","category":"Document","tags":["align","between","text","gap"],"variants":{"outline":"ef54"}},"spacing-vertical":{"name":"spacing-vertical","category":"Document","tags":["align","between","text","gap"],"variants":{"outline":"ef55"}},"spade":{"name":"spade","category":"Shapes","tags":["cards","casino","poker","shapes","gamble"],"variants":{"outline":"effa","filled":"f6a3"}},"sparkles":{"name":"sparkles","category":"","tags":["star","light","fire","shine"],"variants":{"outline":"f6d7"}},"speakerphone":{"name":"speakerphone","category":"Media","tags":["voice","loud","microphone","loudspeaker","event","protest","speaker","shout","listen"],"variants":{"outline":"ed61"}},"speedboat":{"name":"speedboat","category":"Vehicles","tags":["motorboat","holiday","sea","ocean","engine","travel","lake","summer"],"variants":{"outline":"ed93"}},"sphere-off":{"name":"sphere-off","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fab6"}},"sphere-plus":{"name":"sphere-plus","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fab7"}},"sphere":{"name":"sphere","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fab8"}},"spider":{"name":"spider","category":"Animals","tags":["halloween","animal","scary","horror","cobweb","insect"],"variants":{"outline":"f293"}},"spiral-off":{"name":"spiral-off","category":"","tags":["hypnosis","rotation","growth"],"variants":{"outline":"f42e"}},"spiral":{"name":"spiral","category":"","tags":["hypnosis","rotation","growth"],"variants":{"outline":"f294"}},"sport-billard":{"name":"sport-billard","category":"Sport","tags":["pool","game","ball","pub","entertainment"],"variants":{"outline":"eee4"}},"spray":{"name":"spray","category":"","tags":["paint","clean","hygiene","graffiti"],"variants":{"outline":"f50b"}},"spy-off":{"name":"spy-off","category":"","tags":["security","incognito","privacy","browser","web"],"variants":{"outline":"f42f"}},"spy":{"name":"spy","category":"","tags":["security","incognito","privacy","browser","web"],"variants":{"outline":"f227"}},"sql":{"name":"sql","category":"Extensions","tags":["file","document","type","format","extencion"],"variants":{"outline":"f7c0"}},"square-arrow-down":{"name":"square-arrow-down","category":"Arrows","tags":["direction","shape","bottom","south"],"variants":{"outline":"f4b7","filled":"fb31"}},"square-arrow-left":{"name":"square-arrow-left","category":"Arrows","tags":["direction","shape","west"],"variants":{"outline":"f4b8","filled":"fb32"}},"square-arrow-right":{"name":"square-arrow-right","category":"Arrows","tags":["direction","shape","east"],"variants":{"outline":"f4b9","filled":"fb33"}},"square-arrow-up":{"name":"square-arrow-up","category":"Arrows","tags":["direction","shape","north","top"],"variants":{"outline":"f4ba","filled":"fb34"}},"square-asterisk":{"name":"square-asterisk","category":"","tags":["shapes","star","password","security"],"variants":{"outline":"f01a","filled":"fb35"}},"square-check":{"name":"square-check","category":"Shapes","tags":["checkbox","yes"],"variants":{"outline":"eb28","filled":"f76d"}},"square-chevron-down":{"name":"square-chevron-down","category":"Arrows","tags":["shape","south","bottom","direction"],"variants":{"outline":"f627","filled":"fb36"}},"square-chevron-left":{"name":"square-chevron-left","category":"Arrows","tags":["shape","direction","west"],"variants":{"outline":"f628","filled":"fb37"}},"square-chevron-right":{"name":"square-chevron-right","category":"Arrows","tags":["shape","direction","east"],"variants":{"outline":"f629","filled":"fb38"}},"square-chevron-up":{"name":"square-chevron-up","category":"Arrows","tags":["shape","direction","north","top"],"variants":{"outline":"f62a","filled":"fb39"}},"square-chevrons-down":{"name":"square-chevrons-down","category":"Arrows","tags":["shape","south","bottom","direction"],"variants":{"outline":"f64b","filled":"fb3a"}},"square-chevrons-left":{"name":"square-chevrons-left","category":"Arrows","tags":["shape","direction","west"],"variants":{"outline":"f64c","filled":"fb3b"}},"square-chevrons-right":{"name":"square-chevrons-right","category":"Arrows","tags":["shape","direction","east"],"variants":{"outline":"f64d","filled":"fb3c"}},"square-chevrons-up":{"name":"square-chevrons-up","category":"Arrows","tags":["shape","direction","north","top"],"variants":{"outline":"f64e","filled":"fb3d"}},"square-dot":{"name":"square-dot","category":"Shapes","tags":["corner","shape","element","point"],"variants":{"outline":"ed59","filled":"fb3e"}},"square-f0":{"name":"square-f0","category":"System","tags":["shape","keyboard","button","key","hotkey"],"variants":{"outline":"f526","filled":"f76e"}},"square-f1":{"name":"square-f1","category":"System","tags":["shape","keyboard","button","key","hotkey"],"variants":{"outline":"f527","filled":"f76f"}},"square-f2":{"name":"square-f2","category":"System","tags":["shape","keyboard","button","key","hotkey"],"variants":{"outline":"f528","filled":"f770"}},"square-f3":{"name":"square-f3","category":"System","tags":["shape","keyboard","button","key","hotkey"],"variants":{"outline":"f529","filled":"f771"}},"square-f4":{"name":"square-f4","category":"System","tags":["shape","keyboard","button","key","hotkey"],"variants":{"outline":"f52a","filled":"f772"}},"square-f5":{"name":"square-f5","category":"System","tags":["shape","keyboard","button","key","hotkey"],"variants":{"outline":"f52b","filled":"f773"}},"square-f6":{"name":"square-f6","category":"System","tags":["shape","keyboard","button","key","hotkey"],"variants":{"outline":"f52c","filled":"f774"}},"square-f7":{"name":"square-f7","category":"System","tags":["shape","keyboard","button","key","hotkey"],"variants":{"outline":"f52d","filled":"f775"}},"square-f8":{"name":"square-f8","category":"System","tags":["shape","keyboard","button","key","hotkey"],"variants":{"outline":"f52e","filled":"f776"}},"square-f9":{"name":"square-f9","category":"System","tags":["shape","keyboard","button","key","hotkey"],"variants":{"outline":"f52f","filled":"f777"}},"square-forbid-2":{"name":"square-forbid-2","category":"","tags":["box","disabled","off","block"],"variants":{"outline":"ed5a"}},"square-forbid":{"name":"square-forbid","category":"","tags":["box","disabled","off","block"],"variants":{"outline":"ed5b"}},"square-half":{"name":"square-half","category":"Design","tags":["shapes","pattern","geometric","highlight","geometry"],"variants":{"outline":"effb"}},"square-key":{"name":"square-key","category":"","tags":["shape","lock","door","acsses"],"variants":{"outline":"f638"}},"square-letter-a":{"name":"square-letter-a","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f47c","filled":"fe07"}},"square-letter-b":{"name":"square-letter-b","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f47d","filled":"fe06"}},"square-letter-c":{"name":"square-letter-c","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f47e","filled":"fe05"}},"square-letter-d":{"name":"square-letter-d","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f47f","filled":"fe04"}},"square-letter-e":{"name":"square-letter-e","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f480","filled":"fe03"}},"square-letter-f":{"name":"square-letter-f","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f481","filled":"fe02"}},"square-letter-g":{"name":"square-letter-g","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f482","filled":"fe01"}},"square-letter-h":{"name":"square-letter-h","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f483","filled":"fe00"}},"square-letter-i":{"name":"square-letter-i","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f484","filled":"fdff"}},"square-letter-j":{"name":"square-letter-j","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f485","filled":"fdfe"}},"square-letter-k":{"name":"square-letter-k","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f486","filled":"fdfd"}},"square-letter-l":{"name":"square-letter-l","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f487","filled":"fdfc"}},"square-letter-m":{"name":"square-letter-m","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f488","filled":"fdfb"}},"square-letter-n":{"name":"square-letter-n","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f489","filled":"fdfa"}},"square-letter-o":{"name":"square-letter-o","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f48a","filled":"fdf9"}},"square-letter-p":{"name":"square-letter-p","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f48b","filled":"fdf8"}},"square-letter-q":{"name":"square-letter-q","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f48c","filled":"fdf7"}},"square-letter-r":{"name":"square-letter-r","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f48d","filled":"fdf6"}},"square-letter-s":{"name":"square-letter-s","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f48e","filled":"fdf5"}},"square-letter-t":{"name":"square-letter-t","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f48f","filled":"fdf4"}},"square-letter-u":{"name":"square-letter-u","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f490","filled":"fdf3"}},"square-letter-v":{"name":"square-letter-v","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f4bb","filled":"fdf2"}},"square-letter-w":{"name":"square-letter-w","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f491","filled":"fdf1"}},"square-letter-x":{"name":"square-letter-x","category":"Letters","tags":["cancel","close","delete","remove","times","clear","no"],"variants":{"outline":"f4bc","filled":"fdf0"}},"square-letter-y":{"name":"square-letter-y","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f492","filled":"fdef"}},"square-letter-z":{"name":"square-letter-z","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f493","filled":"fdee"}},"square-minus":{"name":"square-minus","category":"Shapes","tags":["remove","indeterminate"],"variants":{"outline":"eb29","filled":"fb3f"}},"square-number-0":{"name":"square-number-0","category":"Numbers","tags":["zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"eee5","filled":"f764"}},"square-number-1":{"name":"square-number-1","category":"Numbers","tags":["one","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"eee6","filled":"f765"}},"square-number-2":{"name":"square-number-2","category":"Numbers","tags":["two","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"eee7","filled":"f7fa"}},"square-number-3":{"name":"square-number-3","category":"Numbers","tags":["three","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"eee8","filled":"f766"}},"square-number-4":{"name":"square-number-4","category":"Numbers","tags":["four","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"eee9","filled":"f767"}},"square-number-5":{"name":"square-number-5","category":"Numbers","tags":["five","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"eeea","filled":"f768"}},"square-number-6":{"name":"square-number-6","category":"Numbers","tags":["six","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"eeeb","filled":"f769"}},"square-number-7":{"name":"square-number-7","category":"Numbers","tags":["seven","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"eeec","filled":"f76a"}},"square-number-8":{"name":"square-number-8","category":"Numbers","tags":["eight","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"eeed","filled":"f76b"}},"square-number-9":{"name":"square-number-9","category":"Numbers","tags":["nine","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"eeee","filled":"f76c"}},"square-off":{"name":"square-off","category":"Shapes","tags":["checkbox","box","shape"],"variants":{"outline":"eeef"}},"square-percentage":{"name":"square-percentage","category":"","tags":[],"variants":{"outline":"fd83"}},"square-plus-2":{"name":"square-plus-2","category":"Shapes","tags":[],"variants":{"outline":"fc96"}},"square-plus":{"name":"square-plus","category":"Shapes","tags":["add","create","new"],"variants":{"outline":"eb2a"}},"square-root-2":{"name":"square-root-2","category":"Math","tags":["mathematics","maths","science","calculate","calculator","algebra"],"variants":{"outline":"eef0"}},"square-root":{"name":"square-root","category":"Math","tags":["mathematics","maths","science","calculate","calculator","algebra"],"variants":{"outline":"eef1"}},"square-rotated-forbid-2":{"name":"square-rotated-forbid-2","category":"","tags":["shape","geometry","rhombus","ban","restricted"],"variants":{"outline":"f01b"}},"square-rotated-forbid":{"name":"square-rotated-forbid","category":"","tags":["shape","geometry","rhombus","ban","restricted"],"variants":{"outline":"f01c"}},"square-rotated-off":{"name":"square-rotated-off","category":"Shapes","tags":["shape","sign","geometry","geometric","quadrilateral","rhombus"],"variants":{"outline":"eef2"}},"square-rotated":{"name":"square-rotated","category":"Shapes","tags":["shape","sign","geometry","geometric","quadrilateral","rhombus"],"variants":{"outline":"ecdf","filled":"f6a4"}},"square-rounded-arrow-down":{"name":"square-rounded-arrow-down","category":"Arrows","tags":["shape","south","bottom","direction"],"variants":{"outline":"f639","filled":"f6db"}},"square-rounded-arrow-left":{"name":"square-rounded-arrow-left","category":"Arrows","tags":["shape","direction","west"],"variants":{"outline":"f63a","filled":"f6dc"}},"square-rounded-arrow-right":{"name":"square-rounded-arrow-right","category":"Arrows","tags":["shape","direction","east"],"variants":{"outline":"f63b","filled":"f6dd"}},"square-rounded-arrow-up":{"name":"square-rounded-arrow-up","category":"Arrows","tags":["shape","direction","north","top"],"variants":{"outline":"f63c","filled":"f6de"}},"square-rounded-check":{"name":"square-rounded-check","category":"Shapes","tags":["shape","tick","accpet","done","yes"],"variants":{"outline":"f63d","filled":"f6df"}},"square-rounded-chevron-down":{"name":"square-rounded-chevron-down","category":"Arrows","tags":["shape","south","bottom","direction"],"variants":{"outline":"f62b","filled":"f6e0"}},"square-rounded-chevron-left":{"name":"square-rounded-chevron-left","category":"Arrows","tags":["shape","direction","west"],"variants":{"outline":"f62c","filled":"f6e1"}},"square-rounded-chevron-right":{"name":"square-rounded-chevron-right","category":"Arrows","tags":["shape","direction","east"],"variants":{"outline":"f62d","filled":"f6e2"}},"square-rounded-chevron-up":{"name":"square-rounded-chevron-up","category":"Arrows","tags":["shape","direction","north","top"],"variants":{"outline":"f62e","filled":"f6e3"}},"square-rounded-chevrons-down":{"name":"square-rounded-chevrons-down","category":"Arrows","tags":["shape","south","bottom","direction"],"variants":{"outline":"f64f","filled":"f6e4"}},"square-rounded-chevrons-left":{"name":"square-rounded-chevrons-left","category":"Arrows","tags":["shape","direction","west"],"variants":{"outline":"f650","filled":"f6e5"}},"square-rounded-chevrons-right":{"name":"square-rounded-chevrons-right","category":"Arrows","tags":["shape","direction","east"],"variants":{"outline":"f651","filled":"f6e6"}},"square-rounded-chevrons-up":{"name":"square-rounded-chevrons-up","category":"Arrows","tags":["shape","direction","north","top"],"variants":{"outline":"f652","filled":"f6e7"}},"square-rounded-letter-a":{"name":"square-rounded-letter-a","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5ae","filled":"fded"}},"square-rounded-letter-b":{"name":"square-rounded-letter-b","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5af","filled":"fdec"}},"square-rounded-letter-c":{"name":"square-rounded-letter-c","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5b0","filled":"fdeb"}},"square-rounded-letter-d":{"name":"square-rounded-letter-d","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5b1","filled":"fdea"}},"square-rounded-letter-e":{"name":"square-rounded-letter-e","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5b2","filled":"fde9"}},"square-rounded-letter-f":{"name":"square-rounded-letter-f","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5b3","filled":"fde8"}},"square-rounded-letter-g":{"name":"square-rounded-letter-g","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5b4","filled":"fde7"}},"square-rounded-letter-h":{"name":"square-rounded-letter-h","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5b5","filled":"fde6"}},"square-rounded-letter-i":{"name":"square-rounded-letter-i","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5b6","filled":"fde5"}},"square-rounded-letter-j":{"name":"square-rounded-letter-j","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5b7","filled":"fde4"}},"square-rounded-letter-k":{"name":"square-rounded-letter-k","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5b8","filled":"fde3"}},"square-rounded-letter-l":{"name":"square-rounded-letter-l","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5b9","filled":"fde2"}},"square-rounded-letter-m":{"name":"square-rounded-letter-m","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5ba","filled":"fde1"}},"square-rounded-letter-n":{"name":"square-rounded-letter-n","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5bb","filled":"fde0"}},"square-rounded-letter-o":{"name":"square-rounded-letter-o","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5bc","filled":"fddf"}},"square-rounded-letter-p":{"name":"square-rounded-letter-p","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5bd","filled":"fdde"}},"square-rounded-letter-q":{"name":"square-rounded-letter-q","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5be","filled":"fddd"}},"square-rounded-letter-r":{"name":"square-rounded-letter-r","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5bf","filled":"fddc"}},"square-rounded-letter-s":{"name":"square-rounded-letter-s","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5c0","filled":"fddb"}},"square-rounded-letter-t":{"name":"square-rounded-letter-t","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5c1","filled":"fdda"}},"square-rounded-letter-u":{"name":"square-rounded-letter-u","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5c2","filled":"fdd9"}},"square-rounded-letter-v":{"name":"square-rounded-letter-v","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5c3","filled":"fdd8"}},"square-rounded-letter-w":{"name":"square-rounded-letter-w","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5c4","filled":"fdd7"}},"square-rounded-letter-x":{"name":"square-rounded-letter-x","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5c5","filled":"fdd6"}},"square-rounded-letter-y":{"name":"square-rounded-letter-y","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5c6","filled":"fdd5"}},"square-rounded-letter-z":{"name":"square-rounded-letter-z","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5c7","filled":"fdd4"}},"square-rounded-minus-2":{"name":"square-rounded-minus-2","category":"Shapes","tags":[],"variants":{"outline":"fc97"}},"square-rounded-minus":{"name":"square-rounded-minus","category":"Shapes","tags":["shape","delete","remove","close","cancel"],"variants":{"outline":"f63e","filled":"fb40"}},"square-rounded-number-0":{"name":"square-rounded-number-0","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f5c8","filled":"f778"}},"square-rounded-number-1":{"name":"square-rounded-number-1","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f5c9","filled":"f779"}},"square-rounded-number-2":{"name":"square-rounded-number-2","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f5ca","filled":"f77a"}},"square-rounded-number-3":{"name":"square-rounded-number-3","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f5cb","filled":"f77b"}},"square-rounded-number-4":{"name":"square-rounded-number-4","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f5cc","filled":"f77c"}},"square-rounded-number-5":{"name":"square-rounded-number-5","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f5cd","filled":"f77d"}},"square-rounded-number-6":{"name":"square-rounded-number-6","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f5ce","filled":"f77e"}},"square-rounded-number-7":{"name":"square-rounded-number-7","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f5cf","filled":"f77f"}},"square-rounded-number-8":{"name":"square-rounded-number-8","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f5d0","filled":"f780"}},"square-rounded-number-9":{"name":"square-rounded-number-9","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f5d1","filled":"f781"}},"square-rounded-percentage":{"name":"square-rounded-percentage","category":"","tags":[],"variants":{"outline":"fd84"}},"square-rounded-plus-2":{"name":"square-rounded-plus-2","category":"Shapes","tags":[],"variants":{"outline":"fc98"}},"square-rounded-plus":{"name":"square-rounded-plus","category":"Shapes","tags":["shape","add","new","create"],"variants":{"outline":"f63f","filled":"f6e8"}},"square-rounded-x":{"name":"square-rounded-x","category":"Shapes","tags":["shape","close","delete","cross"],"variants":{"outline":"f640","filled":"f6e9"}},"square-rounded":{"name":"square-rounded","category":"Shapes","tags":["shape","box","figure","geometry"],"variants":{"outline":"f59a","filled":"f6a5"}},"square-toggle-horizontal":{"name":"square-toggle-horizontal","category":"Design","tags":["box","clone","move"],"variants":{"outline":"eef3"}},"square-toggle":{"name":"square-toggle","category":"Design","tags":["box","clone","move"],"variants":{"outline":"eef4"}},"square-x":{"name":"square-x","category":"Shapes","tags":["cancel","close","delete","remove","times","clear","no"],"variants":{"outline":"eb2b","filled":"fb41"}},"square":{"name":"square","category":"Shapes","tags":["checkbox","box","shape"],"variants":{"outline":"eb2c","filled":"fc40"}},"squares-diagonal":{"name":"squares-diagonal","category":"Design","tags":["boxes","layers"],"variants":{"outline":"eef5"}},"squares-selected":{"name":"squares-selected","category":"","tags":[],"variants":{"outline":"fea3"}},"squares":{"name":"squares","category":"Design","tags":["boxes","layers"],"variants":{"outline":"eef6","filled":"fe9f"}},"stack-2":{"name":"stack-2","category":"Design","tags":["pile","elements","layout","wrap"],"variants":{"outline":"eef7","filled":"fdd3"}},"stack-3":{"name":"stack-3","category":"Design","tags":["pile","elements","layout","wrap"],"variants":{"outline":"ef9d","filled":"fdd2"}},"stack-back":{"name":"stack-back","category":"","tags":[],"variants":{"outline":"fd26"}},"stack-backward":{"name":"stack-backward","category":"","tags":[],"variants":{"outline":"fd27"}},"stack-forward":{"name":"stack-forward","category":"","tags":[],"variants":{"outline":"fd28"}},"stack-front":{"name":"stack-front","category":"","tags":[],"variants":{"outline":"fd29"}},"stack-middle":{"name":"stack-middle","category":"","tags":[],"variants":{"outline":"fd2a"}},"stack-pop":{"name":"stack-pop","category":"Design","tags":["data","level","layout","arrow","out"],"variants":{"outline":"f234"}},"stack-push":{"name":"stack-push","category":"Design","tags":["arrange","data","level","layout","arrow"],"variants":{"outline":"f235"}},"stack":{"name":"stack","category":"Design","tags":["pile","elements","layout","wrap"],"variants":{"outline":"eb2d","filled":"fdd1"}},"stairs-down":{"name":"stairs-down","category":"Map","tags":["building","step","floor","staircase","clamber"],"variants":{"outline":"eca4"}},"stairs-up":{"name":"stairs-up","category":"Map","tags":["building","step","floor","staircase","entryway"],"variants":{"outline":"eca5"}},"stairs":{"name":"stairs","category":"Map","tags":["building","step","floor","staircase"],"variants":{"outline":"eca6"}},"star-half":{"name":"star-half","category":"System","tags":["favorite","like","mark","bookmark","grade"],"variants":{"outline":"ed19","filled":"f6a7"}},"star-off":{"name":"star-off","category":"System","tags":["favorite","like","mark","bookmark","grade"],"variants":{"outline":"ed62"}},"star":{"name":"star","category":"System","tags":["favorite","like","mark","bookmark","grade"],"variants":{"outline":"eb2e","filled":"f6a6"}},"stars-off":{"name":"stars-off","category":"System","tags":["favorite","like","mark","grade","bookmark","space","universe","extraterrestrial","galaxy"],"variants":{"outline":"f430"}},"stars":{"name":"stars","category":"System","tags":["favorite","like","mark","grade","bookmark","space","universe","extraterrestrial","galaxy"],"variants":{"outline":"ed38","filled":"f6a8"}},"status-change":{"name":"status-change","category":"","tags":["available","unavailable","switch"],"variants":{"outline":"f3b0"}},"steam":{"name":"steam","category":"","tags":["app","social","games","platform","software"],"variants":{"outline":"f24b"}},"steering-wheel-off":{"name":"steering-wheel-off","category":"Vehicles","tags":["drive","vehicle","direction","turn","holding","racing"],"variants":{"outline":"f431"}},"steering-wheel":{"name":"steering-wheel","category":"Vehicles","tags":["drive","vehicle","direction","turn","holding","racing"],"variants":{"outline":"ec7b","filled":"ff03"}},"step-into":{"name":"step-into","category":"Arrows","tags":["vector","placement","among","within"],"variants":{"outline":"ece0"}},"step-out":{"name":"step-out","category":"Arrows","tags":["vector","placement","outside","except"],"variants":{"outline":"ece1"}},"stereo-glasses":{"name":"stereo-glasses","category":"","tags":["cinema","3d","eyewear","film","movie"],"variants":{"outline":"f4cb"}},"stethoscope-off":{"name":"stethoscope-off","category":"Health","tags":["doctor","medical","physician","test","examination","health","illness","sickness","scrutiny","hospital"],"variants":{"outline":"f432"}},"stethoscope":{"name":"stethoscope","category":"Health","tags":["doctor","medical","physician","test","examination","health","illness","sickness","scrutiny","hospital"],"variants":{"outline":"edbe"}},"sticker-2":{"name":"sticker-2","category":"","tags":["label-2","adhesive","decorative-label","tag-2","sticky-note","decal","post-it","sticker-label","paper-sticker","2nd-sticker"],"variants":{"outline":"fd3d"}},"sticker":{"name":"sticker","category":"","tags":["label","stamp","adhesive"],"variants":{"outline":"eb2f"}},"storm-off":{"name":"storm-off","category":"Weather","tags":["weather","cloud","lighting","rain","wind","tornado"],"variants":{"outline":"f433"}},"storm":{"name":"storm","category":"Weather","tags":["weather","cloud","lighting","rain","wind","tornado"],"variants":{"outline":"f24c"}},"stretching-2":{"name":"stretching-2","category":"Sport","tags":[],"variants":{"outline":"fa6d"}},"stretching":{"name":"stretching","category":"Sport","tags":["exercise","yoga","workout","fitness","gym","body"],"variants":{"outline":"f2db"}},"strikethrough":{"name":"strikethrough","category":"Text","tags":["typography","horizontal","deleted","removed","unimportant"],"variants":{"outline":"eb9e"}},"submarine":{"name":"submarine","category":"Vehicles","tags":["sea","ocean","underwater","shipwater","war"],"variants":{"outline":"ed94"}},"subscript":{"name":"subscript","category":"Text","tags":["typography","below","formula","maths","fraction"],"variants":{"outline":"eb9f"}},"subtask":{"name":"subtask","category":"","tags":["management","break down","work"],"variants":{"outline":"ec9f"}},"sum-off":{"name":"sum-off","category":"Math","tags":["equation","add","plus","amount","total"],"variants":{"outline":"f1ab"}},"sum":{"name":"sum","category":"Math","tags":["equation","add","plus","amount","total"],"variants":{"outline":"eb73"}},"sun-electricity":{"name":"sun-electricity","category":"","tags":[],"variants":{"outline":"fcc2"}},"sun-high":{"name":"sun-high","category":"Weather","tags":["temperature","hot","wheater","thermometer","forecast"],"variants":{"outline":"f236"}},"sun-low":{"name":"sun-low","category":"Weather","tags":["temperature","cold","wheater","thermometer","forecast"],"variants":{"outline":"f237"}},"sun-moon":{"name":"sun-moon","category":"Weather","tags":["weather","day","night","hot","cold"],"variants":{"outline":"f4a3"}},"sun-off":{"name":"sun-off","category":"Weather","tags":["weather","light","mode","brightness"],"variants":{"outline":"ed63"}},"sun-wind":{"name":"sun-wind","category":"Weather","tags":["temperature","wheater","thermometer","forecast","windy"],"variants":{"outline":"f238"}},"sun":{"name":"sun","category":"Weather","tags":["weather","light","mode","brightness"],"variants":{"outline":"eb30","filled":"f6a9"}},"sunglasses":{"name":"sunglasses","category":"Health","tags":["summer","sun","look","shades","eyewear"],"variants":{"outline":"f239","filled":"fec8"}},"sunrise":{"name":"sunrise","category":"Weather","tags":["west","horizon","landscape","evening"],"variants":{"outline":"ef1c"}},"sunset-2":{"name":"sunset-2","category":"Weather","tags":["east","horizon","landscape","morning"],"variants":{"outline":"f23a"}},"sunset":{"name":"sunset","category":"Weather","tags":["east","horizon","landscape","morning"],"variants":{"outline":"ec31"}},"superscript":{"name":"superscript","category":"Text","tags":["typography","above","maths","fraction","trademark","footer"],"variants":{"outline":"eba0"}},"svg":{"name":"svg","category":"Extensions","tags":["file","format","extension","graphic","filetype"],"variants":{"outline":"f25a"}},"swimming":{"name":"swimming","category":"Sport","tags":["sport","water","pool","style","athletics","competitive"],"variants":{"outline":"ec92"}},"swipe-down":{"name":"swipe-down","category":"Arrows","tags":["gesture","swipe","downward-swipe","scroll-down","slide-down","touch-gesture","screen-swipe","gesture-control","interaction","user-swipe"],"variants":{"outline":"fd5e","filled":"ff57"}},"swipe-left":{"name":"swipe-left","category":"Arrows","tags":["gesture","swipe","leftward-swipe","scroll-left","slide-left","touch-gesture","screen-swipe","gesture-control","interaction","user-swipe"],"variants":{"outline":"fd5f","filled":"ff56"}},"swipe-right":{"name":"swipe-right","category":"Arrows","tags":["gesture","swipe","rightward-swipe","scroll-right","slide-right","touch-gesture","screen-swipe","gesture-control","interaction","user-swipe"],"variants":{"outline":"fd60","filled":"ff55"}},"swipe-up":{"name":"swipe-up","category":"Arrows","tags":["gesture","swipe","upward-swipe","scroll-up","slide-up","touch-gesture","screen-swipe","gesture-control","interaction","user-swipe"],"variants":{"outline":"fd61","filled":"ff54"}},"swipe":{"name":"swipe","category":"","tags":["right","left","gesture","scroll"],"variants":{"outline":"f551"}},"switch-2":{"name":"switch-2","category":"Arrows","tags":["arrows","direction","music","spotify","change"],"variants":{"outline":"edbf"}},"switch-3":{"name":"switch-3","category":"Arrows","tags":["arrows","direction","music","spotify","change"],"variants":{"outline":"edc0"}},"switch-horizontal":{"name":"switch-horizontal","category":"Arrows","tags":["toggle","left","right","arrows"],"variants":{"outline":"eb31"}},"switch-vertical":{"name":"switch-vertical","category":"Arrows","tags":["toggle","up","down","arrows"],"variants":{"outline":"eb32"}},"switch":{"name":"switch","category":"Arrows","tags":["toggle","arrows"],"variants":{"outline":"eb33"}},"sword-off":{"name":"sword-off","category":"","tags":["weapon","knight","blade","war","minecraft","warrior"],"variants":{"outline":"f434"}},"sword":{"name":"sword","category":"","tags":["weapon","knight","blade","war","minecraft","warrior"],"variants":{"outline":"f030"}},"swords":{"name":"swords","category":"","tags":["weapon","knight","blade","war","minecraft","warrior"],"variants":{"outline":"f132"}},"table-alias":{"name":"table-alias","category":"Database","tags":["data","database","chart"],"variants":{"outline":"f25b"}},"table-column":{"name":"table-column","category":"Database","tags":["table","column","data-table","spreadsheet","table-structure","columnar","information","grid","table-columnar","dataset"],"variants":{"outline":"faff"}},"table-down":{"name":"table-down","category":"Database","tags":["table","down","arrow-down","table-arrow","descending","sort-down","data-table","directional","arrange-down","table-order"],"variants":{"outline":"fa1c"}},"table-export":{"name":"table-export","category":"Database","tags":["spreadsheet","layout","grid","arrange","row","column","cells","sheet","arrow"],"variants":{"outline":"eef8"}},"table-heart":{"name":"table-heart","category":"Database","tags":["table","heart","like","favorite","love","data-table","table-icon","heart-symbol","table-like","table-favorite"],"variants":{"outline":"fa1d"}},"table-import":{"name":"table-import","category":"Database","tags":["spreadsheet","layout","grid","arrange","row","column","cells","sheet","arrow"],"variants":{"outline":"eef9"}},"table-minus":{"name":"table-minus","category":"Database","tags":["table","minus","remove","subtract","delete","data-table","table-operation","table-remove","subtract-from-table","exclude"],"variants":{"outline":"fa1e"}},"table-off":{"name":"table-off","category":"Database","tags":["spreadsheet","layout","grid","arrange","row","column"],"variants":{"outline":"eefa"}},"table-options":{"name":"table-options","category":"Database","tags":["edit","chart","customization","repair","settings"],"variants":{"outline":"f25c"}},"table-plus":{"name":"table-plus","category":"Database","tags":["table","plus","add","insert","include","data-table","table-operation","table-add","add-to-table","include-in-table"],"variants":{"outline":"fa1f"}},"table-row":{"name":"table-row","category":"Database","tags":["table","row","data-table","spreadsheet","table-structure","row-wise","information","grid","table-row-wise","dataset"],"variants":{"outline":"fb00"}},"table-share":{"name":"table-share","category":"Database","tags":["table","share","share-table","data-sharing","collaboration","data-table","table-collaboration","table-cooperation","share-data","spreadsheet"],"variants":{"outline":"fa20"}},"table-shortcut":{"name":"table-shortcut","category":"Database","tags":["data","database","chart","network","server"],"variants":{"outline":"f25d"}},"table":{"name":"table","category":"Database","tags":["spreadsheet","layout","grid","arrange","row","column"],"variants":{"outline":"eba1","filled":"f782"}},"tag-off":{"name":"tag-off","category":"E-commerce","tags":["label","price"],"variants":{"outline":"efc0"}},"tag-starred":{"name":"tag-starred","category":"E-commerce","tags":["tag","starred","star","favorite","label","tagging","tagged-star","marked","tag-star","highlighted"],"variants":{"outline":"fc99"}},"tag":{"name":"tag","category":"E-commerce","tags":["label","price"],"variants":{"outline":"eb34","filled":"ff02"}},"tags-off":{"name":"tags-off","category":"E-commerce","tags":["label","price","shopping","promotion"],"variants":{"outline":"efc1"}},"tags":{"name":"tags","category":"E-commerce","tags":["label","price","shopping","promotion"],"variants":{"outline":"ef86","filled":"ff01"}},"tallymark-1":{"name":"tallymark-1","category":"Math","tags":["sign","symbol","numerical","consistent","system","counting"],"variants":{"outline":"ec46"}},"tallymark-2":{"name":"tallymark-2","category":"Math","tags":["sign","symbol","numerical","consistent","system","counting"],"variants":{"outline":"ec47"}},"tallymark-3":{"name":"tallymark-3","category":"Math","tags":["sign","symbol","numerical","consistent","system","counting"],"variants":{"outline":"ec48"}},"tallymark-4":{"name":"tallymark-4","category":"Math","tags":["sign","symbol","numerical","consistent","system","counting"],"variants":{"outline":"ec49"}},"tallymarks":{"name":"tallymarks","category":"Math","tags":["sign","symbol","numerical","consistent","system","counting"],"variants":{"outline":"ec4a"}},"tank":{"name":"tank","category":"Vehicles","tags":["war","military","armour","vehicle","gun","attack","shoot","battle","battlefield"],"variants":{"outline":"ed95"}},"target-arrow":{"name":"target-arrow","category":"Sport","tags":["goal","aim","archery","archer"],"variants":{"outline":"f51a"}},"target-off":{"name":"target-off","category":"Map","tags":["focus","bullseye","aim"],"variants":{"outline":"f1ad"}},"target":{"name":"target","category":"Map","tags":["focus","bullseye","aim"],"variants":{"outline":"eb35"}},"tax-euro":{"name":"tax-euro","category":"","tags":[],"variants":{"outline":"fef0"}},"tax-pound":{"name":"tax-pound","category":"","tags":[],"variants":{"outline":"feef"}},"tax":{"name":"tax","category":"","tags":[],"variants":{"outline":"feee"}},"teapot":{"name":"teapot","category":"","tags":["kettle","kitchen","hot","coffee","kitchenware"],"variants":{"outline":"f552"}},"telescope-off":{"name":"telescope-off","category":"","tags":["astronomy","moon","observation","vision","space","astrology"],"variants":{"outline":"f1ae"}},"telescope":{"name":"telescope","category":"","tags":["astronomy","moon","observation","vision","space","astrology"],"variants":{"outline":"f07d"}},"temperature-celsius":{"name":"temperature-celsius","category":"Weather","tags":["weather","celcius","fahrenheit","cold","hot"],"variants":{"outline":"eb36"}},"temperature-fahrenheit":{"name":"temperature-fahrenheit","category":"Weather","tags":["weather","celcius","fahrenheit","cold","hot"],"variants":{"outline":"eb37"}},"temperature-minus":{"name":"temperature-minus","category":"Weather","tags":["weather","celcius","fahrenheit","cold","hot"],"variants":{"outline":"ebed"}},"temperature-off":{"name":"temperature-off","category":"Weather","tags":["weather","celcius","fahrenheit","cold","hot"],"variants":{"outline":"f1af"}},"temperature-plus":{"name":"temperature-plus","category":"Weather","tags":["weather","celcius","fahrenheit","cold","hot"],"variants":{"outline":"ebee"}},"temperature-snow":{"name":"temperature-snow","category":"","tags":[],"variants":{"outline":"fda3"}},"temperature-sun":{"name":"temperature-sun","category":"","tags":[],"variants":{"outline":"fda4"}},"temperature":{"name":"temperature","category":"Weather","tags":["weather","celcius","fahrenheit","cold","hot"],"variants":{"outline":"eb38"}},"template-off":{"name":"template-off","category":"Design","tags":["grid","columns","masonry","collage"],"variants":{"outline":"f1b0"}},"template":{"name":"template","category":"Design","tags":["grid","columns","masonry","collage"],"variants":{"outline":"eb39"}},"tent-off":{"name":"tent-off","category":"Map","tags":["camping","holiday","vacation","outdoor","survival","travel","adventure"],"variants":{"outline":"f435"}},"tent":{"name":"tent","category":"Map","tags":["camping","holiday","vacation","outdoor","survival","travel","adventure"],"variants":{"outline":"eefb"}},"terminal-2":{"name":"terminal-2","category":"","tags":["console","command","git","command line","command prompt"],"variants":{"outline":"ebef"}},"terminal":{"name":"terminal","category":"","tags":["console","command","git","command line","command prompt"],"variants":{"outline":"ebdc"}},"test-pipe-2":{"name":"test-pipe-2","category":"","tags":["sample","color","flask","liquid","container","glass","chemistry","test","laboratory","experimental","beta"],"variants":{"outline":"f0a4","filled":"ff53"}},"test-pipe-off":{"name":"test-pipe-off","category":"","tags":["sample","color","flask","liquid","container","glass","chemistry","test","laboratory","experimental","beta"],"variants":{"outline":"f1b1"}},"test-pipe":{"name":"test-pipe","category":"","tags":["sample","color","flask","liquid","container","glass","chemistry","test","laboratory","experimental","beta"],"variants":{"outline":"eb3a"}},"tex":{"name":"tex","category":"Text","tags":["file","document","type","format","filetype"],"variants":{"outline":"f4e0"}},"text-caption":{"name":"text-caption","category":"Text","tags":["document","file","lettering","image","picture"],"variants":{"outline":"f4a4"}},"text-color":{"name":"text-color","category":"Text","tags":["format","document","file","edit"],"variants":{"outline":"f2dc"}},"text-decrease":{"name":"text-decrease","category":"Text","tags":["indent","minimalize","smaller","editor","size","edit"],"variants":{"outline":"f202"}},"text-direction-ltr":{"name":"text-direction-ltr","category":"Text","tags":["left","right","bidi"],"variants":{"outline":"eefc"}},"text-direction-rtl":{"name":"text-direction-rtl","category":"Text","tags":["left","right","bidi"],"variants":{"outline":"eefd"}},"text-grammar":{"name":"text-grammar","category":"","tags":[],"variants":{"outline":"fd6d"}},"text-increase":{"name":"text-increase","category":"Text","tags":["expand","margin","size","editor","edit"],"variants":{"outline":"f203"}},"text-orientation":{"name":"text-orientation","category":"Text","tags":["aglinment","file","document","edit","right"],"variants":{"outline":"f2a4"}},"text-plus":{"name":"text-plus","category":"Text","tags":["add","new","document","file","edit"],"variants":{"outline":"f2a5"}},"text-recognition":{"name":"text-recognition","category":"Text","tags":["language","processing","detection"],"variants":{"outline":"f204"}},"text-resize":{"name":"text-resize","category":"Design","tags":["edit","editor","scale","font","bigger","smaller"],"variants":{"outline":"ef87"}},"text-scan-2":{"name":"text-scan-2","category":"","tags":[],"variants":{"outline":"fcc3"}},"text-size":{"name":"text-size","category":"Text","tags":["font","edit","document","type","letter"],"variants":{"outline":"f2b1"}},"text-spellcheck":{"name":"text-spellcheck","category":"Text","tags":["grammar","spelling","ortography"],"variants":{"outline":"f2a6"}},"text-wrap-column":{"name":"text-wrap-column","category":"Text","tags":["wrap","column","text","typography","writing"],"variants":{"outline":"feb2"}},"text-wrap-disabled":{"name":"text-wrap-disabled","category":"Text","tags":["text","alignment","position"],"variants":{"outline":"eca7"}},"text-wrap":{"name":"text-wrap","category":"Text","tags":["wrap","column","text","typography","writing"],"variants":{"outline":"ebdd"}},"texture":{"name":"texture","category":"","tags":["pattern","abstract","decoration","background","fashion"],"variants":{"outline":"f51b"}},"theater":{"name":"theater","category":"Map","tags":["movie","film","show","mask","entertainment"],"variants":{"outline":"f79b"}},"thermometer":{"name":"thermometer","category":"Health","tags":["temperature","hot","cold","weather","medical","fever","celsius"],"variants":{"outline":"ef67"}},"thumb-down-off":{"name":"thumb-down-off","category":"System","tags":["dislike","bad","emotion"],"variants":{"outline":"f436"}},"thumb-down":{"name":"thumb-down","category":"System","tags":["dislike","bad","emotion"],"variants":{"outline":"eb3b","filled":"f6aa"}},"thumb-up-off":{"name":"thumb-up-off","category":"System","tags":["like","emotion","good","love"],"variants":{"outline":"f437"}},"thumb-up":{"name":"thumb-up","category":"System","tags":["like","emotion","good","love"],"variants":{"outline":"eb3c","filled":"f6ab"}},"tic-tac":{"name":"tic-tac","category":"Sport","tags":["toe","game","strategy","cross","circle"],"variants":{"outline":"f51c"}},"ticket-off":{"name":"ticket-off","category":"","tags":["cinema","event","theatre","entry","fine","coupon","pass"],"variants":{"outline":"f1b2"}},"ticket":{"name":"ticket","category":"","tags":["cinema","event","theatre","entry","fine","coupon","pass"],"variants":{"outline":"eb3d"}},"tie":{"name":"tie","category":"","tags":["suit","buisness","fashion","clothes","accessory","clothing"],"variants":{"outline":"f07e"}},"tilde":{"name":"tilde","category":"","tags":["key","sign","about","rounding","math"],"variants":{"outline":"f4a5"}},"tilt-shift-off":{"name":"tilt-shift-off","category":"Photography","tags":["filter","shift","photography","photo"],"variants":{"outline":"f1b3"}},"tilt-shift":{"name":"tilt-shift","category":"Photography","tags":["filter","shift","photography","photo"],"variants":{"outline":"eefe","filled":"fec7"}},"time-duration-0":{"name":"time-duration-0","category":"System","tags":[],"variants":{"outline":"fad4"}},"time-duration-10":{"name":"time-duration-10","category":"System","tags":[],"variants":{"outline":"fad5"}},"time-duration-15":{"name":"time-duration-15","category":"System","tags":[],"variants":{"outline":"fad6"}},"time-duration-30":{"name":"time-duration-30","category":"System","tags":[],"variants":{"outline":"fad7"}},"time-duration-45":{"name":"time-duration-45","category":"System","tags":[],"variants":{"outline":"fad8"}},"time-duration-5":{"name":"time-duration-5","category":"System","tags":[],"variants":{"outline":"fad9"}},"time-duration-60":{"name":"time-duration-60","category":"System","tags":[],"variants":{"outline":"fada"}},"time-duration-90":{"name":"time-duration-90","category":"System","tags":[],"variants":{"outline":"fadb"}},"time-duration-off":{"name":"time-duration-off","category":"System","tags":[],"variants":{"outline":"fadc"}},"timeline-event-exclamation":{"name":"timeline-event-exclamation","category":"Development","tags":["calendar","schedule","date","error","warring"],"variants":{"outline":"f662"}},"timeline-event-minus":{"name":"timeline-event-minus","category":"Development","tags":["calendar","schedule","date","delete","remove"],"variants":{"outline":"f663"}},"timeline-event-plus":{"name":"timeline-event-plus","category":"Development","tags":["calendar","schedule","date","add","new"],"variants":{"outline":"f664"}},"timeline-event-text":{"name":"timeline-event-text","category":"Development","tags":["calendar","schedule","date","message","chat"],"variants":{"outline":"f665"}},"timeline-event-x":{"name":"timeline-event-x","category":"Development","tags":["calendar","schedule","date","remove","cross","delete"],"variants":{"outline":"f666"}},"timeline-event":{"name":"timeline-event","category":"Development","tags":["process","plan","planning","diagram","chart","roadmap"],"variants":{"outline":"f553","filled":"fd18"}},"timeline":{"name":"timeline","category":"","tags":["process","plan","planning","diagram","chart","roadmap"],"variants":{"outline":"f031"}},"timezone":{"name":"timezone","category":"","tags":[],"variants":{"outline":"feed"}},"tip-jar-euro":{"name":"tip-jar-euro","category":"","tags":[],"variants":{"outline":"feec"}},"tip-jar-pound":{"name":"tip-jar-pound","category":"","tags":[],"variants":{"outline":"feeb"}},"tip-jar":{"name":"tip-jar","category":"","tags":[],"variants":{"outline":"feea"}},"tir":{"name":"tir","category":"Vehicles","tags":["delivery","transportation","transport","logistics","vehicle","goods"],"variants":{"outline":"ebf0"}},"toggle-left":{"name":"toggle-left","category":"System","tags":["on","off","switch"],"variants":{"outline":"eb3e","filled":"fec0"}},"toggle-right":{"name":"toggle-right","category":"System","tags":["on","off","switch"],"variants":{"outline":"eb3f","filled":"febf"}},"toilet-paper-off":{"name":"toilet-paper-off","category":"","tags":["bathroom","hygiene","wc","cleaning","rubbing"],"variants":{"outline":"f1b4"}},"toilet-paper":{"name":"toilet-paper","category":"","tags":["bathroom","hygiene","wc","cleaning","rubbing"],"variants":{"outline":"efd3"}},"toml":{"name":"toml","category":"Extensions","tags":[],"variants":{"outline":"fa5d"}},"tool":{"name":"tool","category":"System","tags":["preferences","edit","settings"],"variants":{"outline":"eb40"}},"tools-kitchen-2-off":{"name":"tools-kitchen-2-off","category":"Map","tags":["knife","fork","spoon","cutlery","eat","restaurant","menu","cafe","cook","cut","soup","dinner","breakfast","dining","plate","dish"],"variants":{"outline":"f1b5"}},"tools-kitchen-2":{"name":"tools-kitchen-2","category":"Map","tags":["knife","fork","spoon","cutlery","eat","restaurant","menu","cafe","cook","cut","soup","dinner","breakfast","dining","plate","dish"],"variants":{"outline":"eeff"}},"tools-kitchen-3":{"name":"tools-kitchen-3","category":"","tags":[],"variants":{"outline":"fd2b"}},"tools-kitchen-off":{"name":"tools-kitchen-off","category":"Map","tags":["knife","fork","spoon","cutlery","eat","restaurant","menu","cafe","cook","cut","soup","dinner","breakfast","dining","plate","dish"],"variants":{"outline":"f1b6"}},"tools-kitchen":{"name":"tools-kitchen","category":"Map","tags":["knife","fork","spoon","cutlery","eat","restaurant","menu","cafe","cook","cut","soup","dinner","breakfast","dining","plate","dish"],"variants":{"outline":"ed64"}},"tools-off":{"name":"tools-off","category":"Design","tags":["preferences","edit","settings"],"variants":{"outline":"f1b7"}},"tools":{"name":"tools","category":"Design","tags":["preferences","edit","settings"],"variants":{"outline":"ebca"}},"tooltip":{"name":"tooltip","category":"System","tags":["info","help","information","advise"],"variants":{"outline":"f2dd"}},"topology-bus":{"name":"topology-bus","category":"Computers","tags":["hierarchy","network","structure","connection"],"variants":{"outline":"f5d9"}},"topology-complex":{"name":"topology-complex","category":"Computers","tags":["hierarchy","network","structure","connection"],"variants":{"outline":"f5da"}},"topology-full-hierarchy":{"name":"topology-full-hierarchy","category":"Computers","tags":["hierarchy","network","structure","connection"],"variants":{"outline":"f5db"}},"topology-full":{"name":"topology-full","category":"Computers","tags":["hierarchy","network","structure","connection"],"variants":{"outline":"f5dc"}},"topology-ring-2":{"name":"topology-ring-2","category":"Computers","tags":["hierarchy","network","structure","connection"],"variants":{"outline":"f5dd"}},"topology-ring-3":{"name":"topology-ring-3","category":"Computers","tags":["hierarchy","network","structure","connection"],"variants":{"outline":"f5de"}},"topology-ring":{"name":"topology-ring","category":"Computers","tags":["hierarchy","network","structure","connection"],"variants":{"outline":"f5df"}},"topology-star-2":{"name":"topology-star-2","category":"Computers","tags":["hierarchy","network","structure","connection"],"variants":{"outline":"f5e0"}},"topology-star-3":{"name":"topology-star-3","category":"Computers","tags":["hierarchy","network","structure","connection"],"variants":{"outline":"f5e1"}},"topology-star-ring-2":{"name":"topology-star-ring-2","category":"Computers","tags":["hierarchy","network","structure","connection"],"variants":{"outline":"f5e2"}},"topology-star-ring-3":{"name":"topology-star-ring-3","category":"Computers","tags":["hierarchy","network","structure","connection"],"variants":{"outline":"f5e3"}},"topology-star-ring":{"name":"topology-star-ring","category":"Computers","tags":["hierarchy","network","structure","connection"],"variants":{"outline":"f5e4"}},"topology-star":{"name":"topology-star","category":"Computers","tags":["hierarchy","network","structure","connection"],"variants":{"outline":"f5e5"}},"torii":{"name":"torii","category":"Symbols","tags":["japan","gate","asia","building","monument"],"variants":{"outline":"f59b"}},"tornado":{"name":"tornado","category":"Weather","tags":["wind","rotate","storm","spin","spinning","air","catastrophe","vortex"],"variants":{"outline":"ece2"}},"tournament":{"name":"tournament","category":"Sport","tags":["competition","competitor","sport","game","play","champion"],"variants":{"outline":"ecd0"}},"tower-off":{"name":"tower-off","category":"Buildings","tags":["building","castle","fortress","palace"],"variants":{"outline":"f2ca"}},"tower":{"name":"tower","category":"Buildings","tags":["building","castle","fortress","palace"],"variants":{"outline":"f2cb"}},"track":{"name":"track","category":"Vehicles","tags":["trail","path","route","train","railway","railroad"],"variants":{"outline":"ef00"}},"tractor":{"name":"tractor","category":"Vehicles","tags":["countryside","vehicle","harvest","machine","motor","farm","trailer"],"variants":{"outline":"ec0d"}},"trademark":{"name":"trademark","category":"Symbols","tags":["legal","product","company","own","ownership","brand","law","right","certificate"],"variants":{"outline":"ec0e"}},"traffic-cone-off":{"name":"traffic-cone-off","category":"Map","tags":["street","road","vehicle","repair","warning","lane","drive"],"variants":{"outline":"f1b8"}},"traffic-cone":{"name":"traffic-cone","category":"Map","tags":["street","road","vehicle","repair","warning","lane","drive"],"variants":{"outline":"ec0f"}},"traffic-lights-off":{"name":"traffic-lights-off","category":"Map","tags":["street","road","green","red","yellow","vehicle","stop","drive","crossing","pedestrian","crossroads","junction","intersection"],"variants":{"outline":"f1b9"}},"traffic-lights":{"name":"traffic-lights","category":"Map","tags":["street","road","green","red","yellow","vehicle","stop","drive","crossing","pedestrian","crossroads","junction","intersection"],"variants":{"outline":"ed39"}},"train":{"name":"train","category":"Vehicles","tags":["railway","rails","tgv","journey","travel","network","route","passenger"],"variants":{"outline":"ed96"}},"transaction-bitcoin":{"name":"transaction-bitcoin","category":"","tags":[],"variants":{"outline":"fd6e"}},"transaction-dollar":{"name":"transaction-dollar","category":"E-commerce","tags":[],"variants":{"outline":"fd6f"}},"transaction-euro":{"name":"transaction-euro","category":"E-commerce","tags":[],"variants":{"outline":"fd70"}},"transaction-pound":{"name":"transaction-pound","category":"E-commerce","tags":[],"variants":{"outline":"fd71"}},"transaction-rupee":{"name":"transaction-rupee","category":"","tags":[],"variants":{"outline":"fd85"}},"transaction-yen":{"name":"transaction-yen","category":"E-commerce","tags":[],"variants":{"outline":"fd72"}},"transaction-yuan":{"name":"transaction-yuan","category":"E-commerce","tags":[],"variants":{"outline":"fd73"}},"transfer-in":{"name":"transfer-in","category":"E-commerce","tags":["input","insert","import","send"],"variants":{"outline":"ef2f"}},"transfer-out":{"name":"transfer-out","category":"E-commerce","tags":["output","export","send"],"variants":{"outline":"ef30"}},"transfer-vertical":{"name":"transfer-vertical","category":"","tags":[],"variants":{"outline":"fc1e"}},"transfer":{"name":"transfer","category":"","tags":[],"variants":{"outline":"fc1f"}},"transform-point-bottom-left":{"name":"transform-point-bottom-left","category":"","tags":[],"variants":{"outline":"fda5"}},"transform-point-bottom-right":{"name":"transform-point-bottom-right","category":"","tags":[],"variants":{"outline":"fda6"}},"transform-point-top-left":{"name":"transform-point-top-left","category":"","tags":[],"variants":{"outline":"fda7"}},"transform-point-top-right":{"name":"transform-point-top-right","category":"","tags":[],"variants":{"outline":"fda8"}},"transform-point":{"name":"transform-point","category":"","tags":[],"variants":{"outline":"fda9"}},"transform":{"name":"transform","category":"","tags":["change","convert","adaptation","direction"],"variants":{"outline":"f38e","filled":"f6ac"}},"transition-bottom":{"name":"transition-bottom","category":"Arrows","tags":["direction","south","down","moving"],"variants":{"outline":"f2b2","filled":"fdd0"}},"transition-left":{"name":"transition-left","category":"Arrows","tags":["direction","west","moving"],"variants":{"outline":"f2b3","filled":"fdcf"}},"transition-right":{"name":"transition-right","category":"Arrows","tags":["direction","east","moving"],"variants":{"outline":"f2b4","filled":"fdce"}},"transition-top":{"name":"transition-top","category":"Arrows","tags":["direction","north","up","moving"],"variants":{"outline":"f2b5","filled":"fdcd"}},"trash-off":{"name":"trash-off","category":"System","tags":["garbage","delete","remove","bin","ash-bin","uninstall","dustbin"],"variants":{"outline":"ed65"}},"trash-x":{"name":"trash-x","category":"System","tags":["bin","litter","recycle","remove","delete","throw","away","waste"],"variants":{"outline":"ef88","filled":"f784"}},"trash":{"name":"trash","category":"System","tags":["garbage","delete","remove","bin","ash-bin","uninstall","dustbin"],"variants":{"outline":"eb41","filled":"f783"}},"treadmill":{"name":"treadmill","category":"Sport","tags":[],"variants":{"outline":"fa6e"}},"tree":{"name":"tree","category":"Map","tags":["nature","greenery","park","leaf","trunk","stem","root","forest","garden"],"variants":{"outline":"ef01"}},"trees":{"name":"trees","category":"Map","tags":["nature","greenery","park","leaf","trunk","stem","root","forest","garden"],"variants":{"outline":"ec10"}},"trekking":{"name":"trekking","category":"Sport","tags":["adventure","travel","walking","hiking","activity"],"variants":{"outline":"f5ad"}},"trending-down-2":{"name":"trending-down-2","category":"Arrows","tags":["arrow","decrease","fall","progress"],"variants":{"outline":"edc1"}},"trending-down-3":{"name":"trending-down-3","category":"Arrows","tags":["arrow","decrease","fall","progress"],"variants":{"outline":"edc2"}},"trending-down":{"name":"trending-down","category":"Arrows","tags":["arrow","decrease","fall","progress"],"variants":{"outline":"eb42"}},"trending-up-2":{"name":"trending-up-2","category":"Arrows","tags":["arrow","grow","increase","progress"],"variants":{"outline":"edc3"}},"trending-up-3":{"name":"trending-up-3","category":"Arrows","tags":["arrow","grow","increase","progress"],"variants":{"outline":"edc4"}},"trending-up":{"name":"trending-up","category":"Arrows","tags":["arrow","grow","increase","progress"],"variants":{"outline":"eb43"}},"triangle-inverted":{"name":"triangle-inverted","category":"Shapes","tags":["shape","geometry","geometric","graphic","pyramid","design"],"variants":{"outline":"f01d","filled":"f6ae"}},"triangle-minus-2":{"name":"triangle-minus-2","category":"Shapes","tags":[],"variants":{"outline":"fc9a"}},"triangle-minus":{"name":"triangle-minus","category":"Shapes","tags":[],"variants":{"outline":"fc9b"}},"triangle-off":{"name":"triangle-off","category":"Shapes","tags":["delta","shape"],"variants":{"outline":"ef02"}},"triangle-plus-2":{"name":"triangle-plus-2","category":"Shapes","tags":[],"variants":{"outline":"fc9c"}},"triangle-plus":{"name":"triangle-plus","category":"Shapes","tags":[],"variants":{"outline":"fc9d"}},"triangle-square-circle":{"name":"triangle-square-circle","category":"Shapes","tags":["shape","geometry","round","angle"],"variants":{"outline":"ece8","filled":"fb42"}},"triangle":{"name":"triangle","category":"Shapes","tags":["delta","shape"],"variants":{"outline":"eb44","filled":"f6ad"}},"triangles":{"name":"triangles","category":"Shapes","tags":["shapes","figure","geometry","geometric","pyramid","design"],"variants":{"outline":"f0a5"}},"trident":{"name":"trident","category":"","tags":["three","spear","weapon","sharp","tool"],"variants":{"outline":"ecc5"}},"trolley":{"name":"trolley","category":"Vehicles","tags":["shopping","market","shop","delivery"],"variants":{"outline":"f4cc"}},"trophy-off":{"name":"trophy-off","category":"","tags":["success","win","prize","winner"],"variants":{"outline":"f438"}},"trophy":{"name":"trophy","category":"","tags":["success","win","prize","winner"],"variants":{"outline":"eb45","filled":"f6af"}},"trowel":{"name":"trowel","category":"","tags":["tool","garden","equipment","mason","cement"],"variants":{"outline":"f368"}},"truck-delivery":{"name":"truck-delivery","category":"E-commerce","tags":["order","purchase","online","shop","store","e-commerce","lorry"],"variants":{"outline":"ec4b"}},"truck-loading":{"name":"truck-loading","category":"E-commerce","tags":["transport","delivery","logistics","vehicle"],"variants":{"outline":"f1da"}},"truck-off":{"name":"truck-off","category":"Vehicles","tags":["transport","vahicle","van","lorry","cargo","delivery"],"variants":{"outline":"ef03"}},"truck-return":{"name":"truck-return","category":"E-commerce","tags":["order","purchase","online","shop","store","e-commerce","lorry"],"variants":{"outline":"ec4c"}},"truck":{"name":"truck","category":"Vehicles","tags":["transport","vahicle","van","lorry","cargo","delivery"],"variants":{"outline":"ebc4"}},"txt":{"name":"txt","category":"Extensions","tags":["file","format","type","document","filetype"],"variants":{"outline":"f3b1"}},"typeface":{"name":"typeface","category":"","tags":[],"variants":{"outline":"fdab"}},"typography-off":{"name":"typography-off","category":"Text","tags":["type","display","typeface","point size","line length","line-spacing","letter-spacing","font"],"variants":{"outline":"f1ba"}},"typography":{"name":"typography","category":"Text","tags":["type","display","typeface","point size","line length","line-spacing","letter-spacing","font"],"variants":{"outline":"ebc5"}},"u-turn-left":{"name":"u-turn-left","category":"Arrows","tags":[],"variants":{"outline":"fea2"}},"u-turn-right":{"name":"u-turn-right","category":"Arrows","tags":[],"variants":{"outline":"fea1"}},"ufo-off":{"name":"ufo-off","category":"","tags":["alien","space","astronomy","spaceship","galaxy"],"variants":{"outline":"f26e"}},"ufo":{"name":"ufo","category":"","tags":["alien","space","astronomy","spaceship","galaxy"],"variants":{"outline":"f26f"}},"umbrella-2":{"name":"umbrella-2","category":"","tags":["rain","weather","storm","wet","autumn","fall"],"variants":{"outline":"ff0e"}},"umbrella-closed-2":{"name":"umbrella-closed-2","category":"","tags":[],"variants":{"outline":"ff0d"}},"umbrella-closed":{"name":"umbrella-closed","category":"","tags":["rain","weather","storm","wet","autumn","fall"],"variants":{"outline":"ff0c"}},"umbrella-off":{"name":"umbrella-off","category":"","tags":["rain","weather","storm","wet","autumn","fall"],"variants":{"outline":"f1bb"}},"umbrella":{"name":"umbrella","category":"","tags":["rain","weather","storm","wet","autumn","fall"],"variants":{"outline":"ebf1","filled":"f6b0"}},"underline":{"name":"underline","category":"Text","tags":["underscore","emphasis","horizontal","typography"],"variants":{"outline":"eba2"}},"universe":{"name":"universe","category":"","tags":[],"variants":{"outline":"fcc4"}},"unlink":{"name":"unlink","category":"Text","tags":["chain","url","address","remove","broke","unconnect"],"variants":{"outline":"eb46"}},"upload":{"name":"upload","category":"Arrows","tags":["file","arrow"],"variants":{"outline":"eb47"}},"urgent":{"name":"urgent","category":"","tags":["alert","important"],"variants":{"outline":"eb48"}},"usb":{"name":"usb","category":"","tags":["drive","cable","plug","device","technology","connect"],"variants":{"outline":"f00c"}},"user-bitcoin":{"name":"user-bitcoin","category":"","tags":[],"variants":{"outline":"ff30"}},"user-bolt":{"name":"user-bolt","category":"System","tags":[],"variants":{"outline":"f9d1"}},"user-cancel":{"name":"user-cancel","category":"System","tags":[],"variants":{"outline":"f9d2"}},"user-check":{"name":"user-check","category":"System","tags":["tick","person","account","role"],"variants":{"outline":"eb49"}},"user-circle":{"name":"user-circle","category":"System","tags":["account","avatar","profile","role"],"variants":{"outline":"ef68"}},"user-code":{"name":"user-code","category":"System","tags":[],"variants":{"outline":"f9d3"}},"user-cog":{"name":"user-cog","category":"System","tags":[],"variants":{"outline":"f9d4"}},"user-dollar":{"name":"user-dollar","category":"System","tags":[],"variants":{"outline":"f9d5"}},"user-down":{"name":"user-down","category":"System","tags":[],"variants":{"outline":"f9d6"}},"user-edit":{"name":"user-edit","category":"System","tags":[],"variants":{"outline":"f7cc"}},"user-exclamation":{"name":"user-exclamation","category":"System","tags":["user","account","note","excitement","admiration","mark"],"variants":{"outline":"ec12"}},"user-heart":{"name":"user-heart","category":"System","tags":[],"variants":{"outline":"f7cd"}},"user-hexagon":{"name":"user-hexagon","category":"","tags":[],"variants":{"outline":"fc4e"}},"user-minus":{"name":"user-minus","category":"System","tags":["remove","cancel","person","account","unsubscribe","role"],"variants":{"outline":"eb4a"}},"user-off":{"name":"user-off","category":"System","tags":["person","account"],"variants":{"outline":"ecf9"}},"user-pause":{"name":"user-pause","category":"System","tags":[],"variants":{"outline":"f9d7"}},"user-pentagon":{"name":"user-pentagon","category":"","tags":[],"variants":{"outline":"fc4f"}},"user-pin":{"name":"user-pin","category":"System","tags":[],"variants":{"outline":"f7ce"}},"user-plus":{"name":"user-plus","category":"System","tags":["add","create","new","person","people","follow","subscribe","role"],"variants":{"outline":"eb4b"}},"user-question":{"name":"user-question","category":"System","tags":[],"variants":{"outline":"f7cf"}},"user-scan":{"name":"user-scan","category":"System","tags":["identity","biometric","authentication","recognition","profile","verification","user-data","user-profile","scan-identity","identity-verification"],"variants":{"outline":"fcaf"}},"user-screen":{"name":"user-screen","category":"Media","tags":[],"variants":{"outline":"fea0"}},"user-search":{"name":"user-search","category":"System","tags":["find","account","profile","magnifier"],"variants":{"outline":"ef89"}},"user-share":{"name":"user-share","category":"System","tags":[],"variants":{"outline":"f9d8"}},"user-shield":{"name":"user-shield","category":"System","tags":[],"variants":{"outline":"f7d0"}},"user-square-rounded":{"name":"user-square-rounded","category":"","tags":[],"variants":{"outline":"fc50"}},"user-square":{"name":"user-square","category":"","tags":[],"variants":{"outline":"fc51"}},"user-star":{"name":"user-star","category":"System","tags":[],"variants":{"outline":"f7d1"}},"user-up":{"name":"user-up","category":"System","tags":[],"variants":{"outline":"f7d2"}},"user-x":{"name":"user-x","category":"System","tags":["cancel","remove","person","account","unsubscribe"],"variants":{"outline":"eb4c"}},"user":{"name":"user","category":"System","tags":["person","account"],"variants":{"outline":"eb4d","filled":"fd19"}},"users-group":{"name":"users-group","category":"System","tags":[],"variants":{"outline":"fa21"}},"users-minus":{"name":"users-minus","category":"System","tags":[],"variants":{"outline":"fa0e"}},"users-plus":{"name":"users-plus","category":"System","tags":[],"variants":{"outline":"fa0f"}},"users":{"name":"users","category":"System","tags":["people","persons","accounts"],"variants":{"outline":"ebf2"}},"uv-index":{"name":"uv-index","category":"Weather","tags":["sun","ultraviolet","radiation"],"variants":{"outline":"f3b2"}},"ux-circle":{"name":"ux-circle","category":"Design","tags":["user","experience"],"variants":{"outline":"f369"}},"vaccine-bottle-off":{"name":"vaccine-bottle-off","category":"Health","tags":["medical","medicine","pharmacy","covid","virus","drug"],"variants":{"outline":"f439"}},"vaccine-bottle":{"name":"vaccine-bottle","category":"Health","tags":["medical","medicine","pharmacy","covid","virus","drug"],"variants":{"outline":"ef69"}},"vaccine-off":{"name":"vaccine-off","category":"Health","tags":["illness","sickness","disease","injection","medicine","medical","doctor","nurse"],"variants":{"outline":"f1bc"}},"vaccine":{"name":"vaccine","category":"Health","tags":["illness","sickness","disease","injection","medicine","medical","doctor","nurse"],"variants":{"outline":"ef04"}},"vacuum-cleaner":{"name":"vacuum-cleaner","category":"","tags":["robot","clean","hoover","home","electronics"],"variants":{"outline":"f5e6"}},"variable-minus":{"name":"variable-minus","category":"Math","tags":["off","delete","maths","mathematics","science","calculate","function"],"variants":{"outline":"f36a"}},"variable-off":{"name":"variable-off","category":"Math","tags":["maths","mathematics","science","calculate","function"],"variants":{"outline":"f1bd"}},"variable-plus":{"name":"variable-plus","category":"Math","tags":["add","new","maths","mathematics","science","calculate","function"],"variants":{"outline":"f36b"}},"variable":{"name":"variable","category":"Math","tags":["maths","mathematics","science","calculate","function"],"variants":{"outline":"ef05"}},"vector-bezier-2":{"name":"vector-bezier-2","category":"Design","tags":["curve","parametric","design","vector graphics","representation"],"variants":{"outline":"f1a3"}},"vector-bezier-arc":{"name":"vector-bezier-arc","category":"Design","tags":["curve","drafting","reshape","shape"],"variants":{"outline":"f4cd"}},"vector-bezier-circle":{"name":"vector-bezier-circle","category":"Design","tags":["curve","drafting","reshape","shape"],"variants":{"outline":"f4ce"}},"vector-bezier":{"name":"vector-bezier","category":"Design","tags":["curve","parametric","design","vector graphics","representation"],"variants":{"outline":"ef1d"}},"vector-off":{"name":"vector-off","category":"Design","tags":["curve","parametric","design","vector graphics","placement"],"variants":{"outline":"f1be"}},"vector-spline":{"name":"vector-spline","category":"Design","tags":["math","line","curve","geometry"],"variants":{"outline":"f565"}},"vector-triangle-off":{"name":"vector-triangle-off","category":"Design","tags":["curve","parametric","design","vector graphics","placement"],"variants":{"outline":"f1bf"}},"vector-triangle":{"name":"vector-triangle","category":"Design","tags":["curve","parametric","design","vector graphics","placement"],"variants":{"outline":"eca8"}},"vector":{"name":"vector","category":"Design","tags":["curve","parametric","design","vector graphics","placement"],"variants":{"outline":"eca9"}},"venus":{"name":"venus","category":"Symbols","tags":["female"],"variants":{"outline":"ec86"}},"versions-off":{"name":"versions-off","category":"Development","tags":["app","variation","different","variant","alternative"],"variants":{"outline":"f1c0"}},"versions":{"name":"versions","category":"Development","tags":["app","variation","different","variant","alternative"],"variants":{"outline":"ed52","filled":"f6b1"}},"video-minus":{"name":"video-minus","category":"Media","tags":["film","shoot","recording","taping","camera","remotion"],"variants":{"outline":"ed1f"}},"video-off":{"name":"video-off","category":"Media","tags":["film","shoot","recording","taping","camera"],"variants":{"outline":"ed20"}},"video-plus":{"name":"video-plus","category":"Media","tags":["film","shoot","recording","taping","camera","closeup"],"variants":{"outline":"ed21"}},"video":{"name":"video","category":"Media","tags":["film","shoot","recording","taping","camera"],"variants":{"outline":"ed22"}},"view-360-arrow":{"name":"view-360-arrow","category":"","tags":["rotate","view","degree","virtual","vr"],"variants":{"outline":"f62f"}},"view-360-number":{"name":"view-360-number","category":"","tags":["degree","rotation","reality","camera"],"variants":{"outline":"f566"}},"view-360-off":{"name":"view-360-off","category":"","tags":["panoramic","degrees","image","around"],"variants":{"outline":"f1c1"}},"view-360":{"name":"view-360","category":"","tags":["panoramic","degrees","image","around"],"variants":{"outline":"ed84"}},"viewfinder-off":{"name":"viewfinder-off","category":"Map","tags":["target","aim","focus"],"variants":{"outline":"f1c2"}},"viewfinder":{"name":"viewfinder","category":"Map","tags":["target","aim","focus"],"variants":{"outline":"eb4e"}},"viewport-narrow":{"name":"viewport-narrow","category":"Devices","tags":["data","account","excel","tight"],"variants":{"outline":"ebf3"}},"viewport-short":{"name":"viewport-short","category":"","tags":[],"variants":{"outline":"fee9"}},"viewport-tall":{"name":"viewport-tall","category":"","tags":[],"variants":{"outline":"fee8"}},"viewport-wide":{"name":"viewport-wide","category":"Devices","tags":["data","account","broad","excel"],"variants":{"outline":"ebf4"}},"vinyl":{"name":"vinyl","category":"Devices","tags":["music","audio","dj","sound","retro","musical"],"variants":{"outline":"f00d"}},"vip-off":{"name":"vip-off","category":"","tags":["premium","exclusive","staff","expensive"],"variants":{"outline":"f43a"}},"vip":{"name":"vip","category":"","tags":["premium","exclusive","staff","expensive"],"variants":{"outline":"f3b3"}},"virus-off":{"name":"virus-off","category":"Health","tags":["infection","illness","cell","infectious","health"],"variants":{"outline":"ed66"}},"virus-search":{"name":"virus-search","category":"Health","tags":["covid","coronavirus","biology","infection","infected","cell","viral","infectious","disease"],"variants":{"outline":"ed67"}},"virus":{"name":"virus","category":"Health","tags":["infection","illness","cell","infectious","health"],"variants":{"outline":"eb74"}},"vocabulary-off":{"name":"vocabulary-off","category":"Text","tags":["language","traffic","text","book","study","dictionary"],"variants":{"outline":"f43b"}},"vocabulary":{"name":"vocabulary","category":"Text","tags":["language","traffic","text","book","study","dictionary"],"variants":{"outline":"ef1e"}},"volcano":{"name":"volcano","category":"Map","tags":["erumption","lava","nature","danger","explosion"],"variants":{"outline":"f79c"}},"volume-2":{"name":"volume-2","category":"Media","tags":["music","sound","speaker"],"variants":{"outline":"eb4f"}},"volume-3":{"name":"volume-3","category":"Media","tags":["mute","music","sound","off","speaker"],"variants":{"outline":"eb50"}},"volume-off":{"name":"volume-off","category":"Media","tags":["music","sound","speaker"],"variants":{"outline":"f1c3"}},"volume":{"name":"volume","category":"Media","tags":["music","sound","speaker"],"variants":{"outline":"eb51"}},"vs":{"name":"vs","category":"","tags":[],"variants":{"outline":"fc52"}},"walk":{"name":"walk","category":"Sport","tags":["ambulation","dislocating","movement","motion","destination"],"variants":{"outline":"ec87"}},"wall-off":{"name":"wall-off","category":"","tags":["brick","security","firewall","building","renovation","construction"],"variants":{"outline":"f43c"}},"wall":{"name":"wall","category":"","tags":["brick","security","firewall","building","renovation","construction"],"variants":{"outline":"ef7a"}},"wallet-off":{"name":"wallet-off","category":"","tags":["money","pay","banknote","coin","payment","bank"],"variants":{"outline":"f1c4"}},"wallet":{"name":"wallet","category":"","tags":["money","pay","banknote","coin","payment","bank"],"variants":{"outline":"eb75"}},"wallpaper-off":{"name":"wallpaper-off","category":"","tags":["picture","image","photo","decoration","house","room","decor"],"variants":{"outline":"f1c5"}},"wallpaper":{"name":"wallpaper","category":"","tags":["picture","image","photo","decoration","house","room","decor"],"variants":{"outline":"ef56"}},"wand-off":{"name":"wand-off","category":"","tags":["magic","tool","color","pixel","design"],"variants":{"outline":"f1c6"}},"wand":{"name":"wand","category":"","tags":["magic","tool","color","pixel","design"],"variants":{"outline":"ebcb"}},"wash-dry-1":{"name":"wash-dry-1","category":"Laundry","tags":["laundry","clean","clear","clothes"],"variants":{"outline":"f2fa"}},"wash-dry-2":{"name":"wash-dry-2","category":"Laundry","tags":["laundry","clean","clear","clothes"],"variants":{"outline":"f2fb"}},"wash-dry-3":{"name":"wash-dry-3","category":"Laundry","tags":["laundry","clean","clear","clothes"],"variants":{"outline":"f2fc"}},"wash-dry-a":{"name":"wash-dry-a","category":"Laundry","tags":["laundry","clean","clear","clothes"],"variants":{"outline":"f2fd"}},"wash-dry-dip":{"name":"wash-dry-dip","category":"Laundry","tags":["laundry","clean","clear","clothes"],"variants":{"outline":"f2fe"}},"wash-dry-f":{"name":"wash-dry-f","category":"Laundry","tags":["laundry","clean","clear","clothes"],"variants":{"outline":"f2ff"}},"wash-dry-flat":{"name":"wash-dry-flat","category":"Laundry","tags":[],"variants":{"outline":"fa7f"}},"wash-dry-hang":{"name":"wash-dry-hang","category":"Laundry","tags":["laundry","clean","clear","clothes"],"variants":{"outline":"f300"}},"wash-dry-off":{"name":"wash-dry-off","category":"Laundry","tags":["laundry","clean","clear","clothes"],"variants":{"outline":"f301"}},"wash-dry-p":{"name":"wash-dry-p","category":"Laundry","tags":["laundry","clean","clear","clothes"],"variants":{"outline":"f302"}},"wash-dry-shade":{"name":"wash-dry-shade","category":"Laundry","tags":["laundry","clean","clear","clothes"],"variants":{"outline":"f303"}},"wash-dry-w":{"name":"wash-dry-w","category":"Laundry","tags":["laundry","clean","clear","clothes"],"variants":{"outline":"f322"}},"wash-dry":{"name":"wash-dry","category":"Laundry","tags":["laundry","clean","clear","clothes"],"variants":{"outline":"f304"}},"wash-dryclean-off":{"name":"wash-dryclean-off","category":"Laundry","tags":["laundry","clean","clear","clothes"],"variants":{"outline":"f323"}},"wash-dryclean":{"name":"wash-dryclean","category":"Laundry","tags":["laundry","clean","clear","clothes"],"variants":{"outline":"f305"}},"wash-eco":{"name":"wash-eco","category":"Laundry","tags":[],"variants":{"outline":"fa80"}},"wash-gentle":{"name":"wash-gentle","category":"Laundry","tags":["laundry","clean","clear","clothes","machine","delicate"],"variants":{"outline":"f306"}},"wash-hand":{"name":"wash-hand","category":"Laundry","tags":[],"variants":{"outline":"fa81"}},"wash-machine":{"name":"wash-machine","category":"Devices","tags":["bathroom","clean","cleaning","laundry","machine","clothes"],"variants":{"outline":"f25e"}},"wash-off":{"name":"wash-off","category":"Laundry","tags":["clean","cleaning","hygiene","laundry","clothes"],"variants":{"outline":"f307"}},"wash-press":{"name":"wash-press","category":"Laundry","tags":["laundry","clean","clear","clothes","machine","permanent"],"variants":{"outline":"f308"}},"wash-temperature-1":{"name":"wash-temperature-1","category":"Laundry","tags":["laundry","clean","clear","clothes","low","cold"],"variants":{"outline":"f309"}},"wash-temperature-2":{"name":"wash-temperature-2","category":"Laundry","tags":["laundry","clean","clear","clothes","low","cold"],"variants":{"outline":"f30a"}},"wash-temperature-3":{"name":"wash-temperature-3","category":"Laundry","tags":["laundry","clean","clear","clothes","medium"],"variants":{"outline":"f30b"}},"wash-temperature-4":{"name":"wash-temperature-4","category":"Laundry","tags":["laundry","clean","clear","clothes","high","hot"],"variants":{"outline":"f30c"}},"wash-temperature-5":{"name":"wash-temperature-5","category":"Laundry","tags":["laundry","clean","clear","clothes","high","hot"],"variants":{"outline":"f30d"}},"wash-temperature-6":{"name":"wash-temperature-6","category":"Laundry","tags":["laundry","clean","clear","clothes","high","hot"],"variants":{"outline":"f30e"}},"wash-tumble-dry":{"name":"wash-tumble-dry","category":"Laundry","tags":["laundry","clean","clear","clothes"],"variants":{"outline":"f30f"}},"wash-tumble-off":{"name":"wash-tumble-off","category":"Laundry","tags":["laundry","clean","clear","clothes"],"variants":{"outline":"f310"}},"wash":{"name":"wash","category":"Laundry","tags":["clean","cleaning","hygiene","laundry","clothes"],"variants":{"outline":"f311"}},"waterpolo":{"name":"waterpolo","category":"Sport","tags":[],"variants":{"outline":"fa6f"}},"wave-saw-tool":{"name":"wave-saw-tool","category":"","tags":["pulse","signal","ratio","rate","volume"],"variants":{"outline":"ecd3"}},"wave-sine":{"name":"wave-sine","category":"","tags":["pulse","signal","ratio","rate","volume"],"variants":{"outline":"ecd4"}},"wave-square":{"name":"wave-square","category":"","tags":["pulse","signal","ratio","rate","volume"],"variants":{"outline":"ecd5"}},"waves-electricity":{"name":"waves-electricity","category":"","tags":[],"variants":{"outline":"fcc5"}},"webhook-off":{"name":"webhook-off","category":"Development","tags":["communication","interaction","comunity","browser"],"variants":{"outline":"f43d"}},"webhook":{"name":"webhook","category":"Development","tags":["communication","interaction","comunity","browser"],"variants":{"outline":"f01e"}},"weight":{"name":"weight","category":"","tags":["gym","fitness","balance","exercise","sport"],"variants":{"outline":"f589"}},"wheel":{"name":"wheel","category":"","tags":[],"variants":{"outline":"fc64"}},"wheelchair-off":{"name":"wheelchair-off","category":"Vehicles","tags":["disabled","disability","patient","medical","handicapped"],"variants":{"outline":"f43e"}},"wheelchair":{"name":"wheelchair","category":"Vehicles","tags":["disabled","disability","patient","medical","handicapped"],"variants":{"outline":"f1db"}},"whirl":{"name":"whirl","category":"Weather","tags":["cosmos","galaxy","space","spin","spiral","hypnosis"],"variants":{"outline":"f51d"}},"wifi-0":{"name":"wifi-0","category":"Devices","tags":["online","connection","signal","wireless"],"variants":{"outline":"eba3"}},"wifi-1":{"name":"wifi-1","category":"Devices","tags":["online","connection","signal","wireless"],"variants":{"outline":"eba4"}},"wifi-2":{"name":"wifi-2","category":"Devices","tags":["online","connection","signal","wireless"],"variants":{"outline":"eba5"}},"wifi-off":{"name":"wifi-off","category":"Devices","tags":["online","connection","signal","wireless"],"variants":{"outline":"ecfa"}},"wifi":{"name":"wifi","category":"Devices","tags":["online","connection","signal","wireless"],"variants":{"outline":"eb52"}},"wind-electricity":{"name":"wind-electricity","category":"","tags":[],"variants":{"outline":"fcc6"}},"wind-off":{"name":"wind-off","category":"Weather","tags":["weather","breeze","tornado","typhoon","cyclone","hurricane"],"variants":{"outline":"f1c7"}},"wind":{"name":"wind","category":"Weather","tags":["weather","breeze","tornado","typhoon","cyclone","hurricane"],"variants":{"outline":"ec34"}},"windmill-off":{"name":"windmill-off","category":"Map","tags":["generate","power","blade","energy","electricity"],"variants":{"outline":"f1c8"}},"windmill":{"name":"windmill","category":"Map","tags":["generate","power","blade","energy","electricity"],"variants":{"outline":"ed85","filled":"f6b2"}},"window-maximize":{"name":"window-maximize","category":"System","tags":["fullscreen","browser","size","full","resize"],"variants":{"outline":"f1f1"}},"window-minimize":{"name":"window-minimize","category":"System","tags":["screen","browser","size","resize","minimum"],"variants":{"outline":"f1f2"}},"window-off":{"name":"window-off","category":"","tags":["house","view","glass","apartment","vehicle","light","frame","home","building"],"variants":{"outline":"f1c9"}},"window":{"name":"window","category":"","tags":["house","view","glass","apartment","vehicle","light","frame","home","building"],"variants":{"outline":"ef06"}},"windsock":{"name":"windsock","category":"Map","tags":["weather","meteorology","windy","storm","wind"],"variants":{"outline":"f06d"}},"wiper-wash":{"name":"wiper-wash","category":"Vehicles","tags":["car","pane","vehicle","sprinkler","scour"],"variants":{"outline":"ecaa"}},"wiper":{"name":"wiper","category":"Vehicles","tags":["car","pane","vehicle","sprinkler","scour"],"variants":{"outline":"ecab"}},"woman":{"name":"woman","category":"","tags":["girl","female","gender"],"variants":{"outline":"eb53","filled":"fdcc"}},"wood":{"name":"wood","category":"","tags":["tree","forest","natural","timber","log"],"variants":{"outline":"f359"}},"world-bolt":{"name":"world-bolt","category":"Map","tags":[],"variants":{"outline":"f9d9"}},"world-cancel":{"name":"world-cancel","category":"Map","tags":[],"variants":{"outline":"f9da"}},"world-check":{"name":"world-check","category":"Map","tags":[],"variants":{"outline":"f9db"}},"world-code":{"name":"world-code","category":"Map","tags":[],"variants":{"outline":"f9dc"}},"world-cog":{"name":"world-cog","category":"Map","tags":[],"variants":{"outline":"f9dd"}},"world-dollar":{"name":"world-dollar","category":"Map","tags":[],"variants":{"outline":"f9de"}},"world-down":{"name":"world-down","category":"Map","tags":[],"variants":{"outline":"f9df"}},"world-download":{"name":"world-download","category":"Map","tags":["global","down","globe","arrow","earth"],"variants":{"outline":"ef8a"}},"world-exclamation":{"name":"world-exclamation","category":"Map","tags":[],"variants":{"outline":"f9e0"}},"world-heart":{"name":"world-heart","category":"Map","tags":[],"variants":{"outline":"f9e1"}},"world-latitude":{"name":"world-latitude","category":"Map","tags":["earth","globe","global","language","union"],"variants":{"outline":"ed2e"}},"world-longitude":{"name":"world-longitude","category":"Map","tags":["earth","globe","global","language","union"],"variants":{"outline":"ed2f"}},"world-minus":{"name":"world-minus","category":"Map","tags":[],"variants":{"outline":"f9e2"}},"world-off":{"name":"world-off","category":"Map","tags":["earth","globe","global","language","union"],"variants":{"outline":"f1ca"}},"world-pause":{"name":"world-pause","category":"Map","tags":[],"variants":{"outline":"f9e3"}},"world-pin":{"name":"world-pin","category":"Map","tags":[],"variants":{"outline":"f9e4"}},"world-plus":{"name":"world-plus","category":"Map","tags":[],"variants":{"outline":"f9e5"}},"world-question":{"name":"world-question","category":"Map","tags":[],"variants":{"outline":"f9e6"}},"world-search":{"name":"world-search","category":"Map","tags":[],"variants":{"outline":"f9e7"}},"world-share":{"name":"world-share","category":"Map","tags":[],"variants":{"outline":"f9e8"}},"world-star":{"name":"world-star","category":"Map","tags":[],"variants":{"outline":"f9e9"}},"world-up":{"name":"world-up","category":"Map","tags":[],"variants":{"outline":"f9ea"}},"world-upload":{"name":"world-upload","category":"Map","tags":["earth","global","up","globe","arrow","internet"],"variants":{"outline":"ef8b"}},"world-www":{"name":"world-www","category":"Map","tags":["internet","online","web","website","browser"],"variants":{"outline":"f38f"}},"world-x":{"name":"world-x","category":"Map","tags":[],"variants":{"outline":"f9eb"}},"world":{"name":"world","category":"Map","tags":["earth","globe","global","language","union"],"variants":{"outline":"eb54"}},"wrecking-ball":{"name":"wrecking-ball","category":"Vehicles","tags":["demolish","building","wrecker","metal","swing","knock","down"],"variants":{"outline":"ed97"}},"writing-off":{"name":"writing-off","category":"Text","tags":["name","certficate","sign","edit","write","document","pen","drawing","contract","signature"],"variants":{"outline":"f1cb"}},"writing-sign-off":{"name":"writing-sign-off","category":"Text","tags":["name","certficate","sign","edit","write","document","writing","pen"],"variants":{"outline":"f1cc"}},"writing-sign":{"name":"writing-sign","category":"Text","tags":["name","certficate","sign","edit","write","document","writing","pen"],"variants":{"outline":"ef07"}},"writing":{"name":"writing","category":"Text","tags":["name","certficate","sign","edit","write","document","pen","drawing","contract","signature"],"variants":{"outline":"ef08"}},"x":{"name":"x","category":"","tags":["cancel","remove","delete","empty","close"],"variants":{"outline":"eb55"}},"xbox-a":{"name":"xbox-a","category":"Devices","tags":["controller","joystick","button"],"variants":{"outline":"f2b6","filled":"fdcb"}},"xbox-b":{"name":"xbox-b","category":"Devices","tags":["controller","joystick","button"],"variants":{"outline":"f2b7","filled":"fdca"}},"xbox-x":{"name":"xbox-x","category":"Devices","tags":["controller","joystick","button"],"variants":{"outline":"f2b8","filled":"fdc9"}},"xbox-y":{"name":"xbox-y","category":"Devices","tags":["controller","joystick","button"],"variants":{"outline":"f2b9","filled":"fdc8"}},"xd":{"name":"xd","category":"","tags":[],"variants":{"outline":"fa33"}},"xxx":{"name":"xxx","category":"","tags":[],"variants":{"outline":"fc20"}},"yin-yang":{"name":"yin-yang","category":"Symbols","tags":["equality","good","evil","balance","peace"],"variants":{"outline":"ec35","filled":"f785"}},"yoga":{"name":"yoga","category":"Sport","tags":["pose","sport","meditation","fitness"],"variants":{"outline":"f01f"}},"zeppelin-off":{"name":"zeppelin-off","category":"Vehicles","tags":["airship","transport","ballon","flying","travel"],"variants":{"outline":"f43f"}},"zeppelin":{"name":"zeppelin","category":"Vehicles","tags":["airship","transport","ballon","flying","travel"],"variants":{"outline":"f270","filled":"fdc7"}},"zip":{"name":"zip","category":"Extensions","tags":["file","document","folder","compress","archive","filetype"],"variants":{"outline":"f3b4"}},"zodiac-aquarius":{"name":"zodiac-aquarius","category":"Zodiac","tags":["sign","horoscope","constellation","stars"],"variants":{"outline":"ecac"}},"zodiac-aries":{"name":"zodiac-aries","category":"Zodiac","tags":["sign","horoscope","constellation","stars"],"variants":{"outline":"ecad"}},"zodiac-cancer":{"name":"zodiac-cancer","category":"Zodiac","tags":["sign","horoscope","constellation","stars"],"variants":{"outline":"ecae"}},"zodiac-capricorn":{"name":"zodiac-capricorn","category":"Zodiac","tags":["sign","horoscope","constellation","stars"],"variants":{"outline":"ecaf"}},"zodiac-gemini":{"name":"zodiac-gemini","category":"Zodiac","tags":["sign","horoscope","constellation","stars"],"variants":{"outline":"ecb0"}},"zodiac-leo":{"name":"zodiac-leo","category":"Zodiac","tags":["sign","horoscope","constellation","stars"],"variants":{"outline":"ecb1"}},"zodiac-libra":{"name":"zodiac-libra","category":"Zodiac","tags":["sign","horoscope","constellation","stars"],"variants":{"outline":"ecb2"}},"zodiac-pisces":{"name":"zodiac-pisces","category":"Zodiac","tags":["sign","horoscope","constellation","stars"],"variants":{"outline":"ecb3"}},"zodiac-sagittarius":{"name":"zodiac-sagittarius","category":"Zodiac","tags":["sign","horoscope","constellation","stars"],"variants":{"outline":"ecb4"}},"zodiac-scorpio":{"name":"zodiac-scorpio","category":"Zodiac","tags":["sign","horoscope","constellation","stars"],"variants":{"outline":"ecb5"}},"zodiac-taurus":{"name":"zodiac-taurus","category":"Zodiac","tags":["sign","horoscope","constellation","stars"],"variants":{"outline":"ecb6"}},"zodiac-virgo":{"name":"zodiac-virgo","category":"Zodiac","tags":["sign","horoscope","constellation","stars"],"variants":{"outline":"ecb7"}},"zoom-cancel":{"name":"zoom-cancel","category":"Map","tags":["magnifying glass"],"variants":{"outline":"ec4d","filled":"fdc6"}},"zoom-check":{"name":"zoom-check","category":"Map","tags":["verify","magnifying","glass","magnifier","ok","done"],"variants":{"outline":"ef09","filled":"f786"}},"zoom-code":{"name":"zoom-code","category":"Map","tags":["inspect","marketing","search","markup","coding","magnifier"],"variants":{"outline":"f07f","filled":"fdc5"}},"zoom-exclamation":{"name":"zoom-exclamation","category":"Map","tags":["alert","caution","error","search","warning"],"variants":{"outline":"f080","filled":"fdc4"}},"zoom-in-area":{"name":"zoom-in-area","category":"Map","tags":["selected","square","magnifier","enlargement"],"variants":{"outline":"f1dc","filled":"f788"}},"zoom-in":{"name":"zoom-in","category":"Map","tags":["magnifying glass"],"variants":{"outline":"eb56","filled":"f789"}},"zoom-money":{"name":"zoom-money","category":"Map","tags":["magnifying","glass","magnifier","earn","pay","sum","total","finance","financial"],"variants":{"outline":"ef0a","filled":"fdc3"}},"zoom-out-area":{"name":"zoom-out-area","category":"Map","tags":["selected","square","magnifier","diminishing"],"variants":{"outline":"f1dd","filled":"fdc2"}},"zoom-out":{"name":"zoom-out","category":"Map","tags":["magnifying glass"],"variants":{"outline":"eb57","filled":"f78a"}},"zoom-pan":{"name":"zoom-pan","category":"Map","tags":["enlargement","shifting","magnifier"],"variants":{"outline":"f1de","filled":"fdc1"}},"zoom-question":{"name":"zoom-question","category":"Map","tags":["ask","help","support","cue","?"],"variants":{"outline":"edeb","filled":"fdc0"}},"zoom-replace":{"name":"zoom-replace","category":"Map","tags":["find","change","switch","swap"],"variants":{"outline":"f2a7"}},"zoom-reset":{"name":"zoom-reset","category":"Map","tags":["refresh","default","settings","vision"],"variants":{"outline":"f295"}},"zoom-scan":{"name":"zoom-scan","category":"System","tags":["magnify","enlarge","analyze","focus","enhance","view","magnification","zoom-in","scan-zoom","magnify-scan"],"variants":{"outline":"fcb0","filled":"fdbf"}},"zoom":{"name":"zoom","category":"","tags":["find","magnifier","magnifying glass"],"variants":{"outline":"fdaa","filled":"f787"}},"zzz-off":{"name":"zzz-off","category":"","tags":["sleep","sleeping","bed","dream","snooze","rest"],"variants":{"outline":"f440"}},"zzz":{"name":"zzz","category":"","tags":["sleep","sleeping","bed","dream","snooze","rest"],"variants":{"outline":"f228"}}} \ No newline at end of file diff --git a/src/backend/InvenTree/InvenTree/static/tabler-icons/tabler-icons.ttf b/src/backend/InvenTree/InvenTree/static/tabler-icons/tabler-icons.ttf new file mode 100644 index 0000000000000000000000000000000000000000..24ccd00e9e73f18ccd9b7ffd1b95b92fe8d07d89 GIT binary patch literal 2386168 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

R*((ZUxCuhIRbr9}-zGw2NOhN9g?&la66 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

pJ7|(1+_~q>5#U&PV-}~HI`0r163)-z!5U*@ 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%0A6UCYNFeK@U2^?cpF> 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%0D^;yCg&P+)b8@bV1!pPl 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 z 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

E|ZZa~+lcbLbKpA)7@TmBLT9*a%Ua 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 z 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

48@TIOJ!2{SE7T4yO<~y%Tt= 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

G4=L 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�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�VE18f6H64yy_T}q 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 jm->6+sqDh+ z!hGMr_am{+o|*Z{u?*%M4D{YNK3&f6ubMvINUV%cP0iFBjq-StpP9a^fa$P;2usd;bLpP)Z` zp;5I{nTc${+B7;buXgi)u2wQ#u{5e(UOZpzpPimu!RS(sxBI&8Y>uXp$JQoqDuHx~ ztRwfmPW5#`R^ynaxmfZ(( z1vII8dx2k-Wi&kow)~$MAB&&NiLv3`K(fL2DEBV_+*`_D4|2BYlcQ0)QK=7(jSOxx zEo?+2S3XpMEoujL^<5bn1dp%qJy4H(ut1uEkLM( z;TMEI^zd77N*LJ?@0g-PE_n2rXAn#P z#bPP%!PHA=`$LD>gBxdM3w+qp+P;9Uqf9KruaGN5+kgd+^aJ<3VoC)-H^C+DxK;7S zCIad2045VeSGhg9-ElR?K;x*8RNnlER5(?A{EaH;;o)57On*EJ_WVcEC;bSDqlk~0 zEWax3W|-Rx&MDTMwSX%GB7?PVI3+wmEkrg?g_fVd!`Bnm6^#-Lz{)3b9hdd z_FlW^$n@5iUAKA0tuY#;V&CGv8^3er-ZNB=5x5W6GO2_NBf7I#3G8IFoaKJ|;pGV* zluOG)`=V10y3izPZhUoMc4F&O2}#0l=frqyzSKx3b=Rw=^1b=AX@qk47WNcH5p6j{ zTq>9%l!W{t52iq{`vK*qtwWz4i$Nt9Zf~tt?iYX{!kDN0jvd+lk^aH1da0M^qmCD( z%k|E_&SG&|a75Q_c*^-ZlqlhVxTF%pgyAj>5SDzmVJqBA6fpL3UeW*pv66Gai${9& zd&1p9H!yx|uQN4DVrtjjHWulN+a`}SHwi*d=k(-_vt#|m^3LG_&vWC~bdT)7Tv97G zIDhlCcbz+WXekq^?Z5r(*;BJ8`r^9N-h)uE?-In0O8fgW%R&(~+X@}D8}MD}i??ag z7I#dHfQr7?di+5*jj_pbj4@h}dvv|4cVNEWvu#|})1@)KC3kh+w`pm@ee?k*E%6dq z8M#??WMSszT|JT&T9%R~| zMN4V2phkVy#r^ z9GG0&U*8oThTV91xW6bM2sbl6Ccx?VJZuGty&=alRTT0Lg&rn(p3n!>cTOLj4j>%< zwqg#K7h4e;Av7(_vWJ%scPRGfCv7Wg!As}3W}g`!cg22mr^K9|uC5*@=5k8E=#3e~uCxd$+_cE&g=%j!o<~g-pxsn2;EM?3>ZS*98{P;t%Iv0oD*!Pw=$Ii^=A(TYKH6qz zeOmo+o#R7vlo{P_d)b+B>EoC^W{_8U90@07fE^HkH$o%uS7Y6sRb6kmK_(57Ka*$@ zV!8R{BL|-zn{tp+f%l18StU_$VBF_M>N(%W=gKB}doedP-904Kyo{AP{`*EtRAXmTrhIG!*D(TJw7-vwzqPa!2&YmPRFZ*8qD7*rD zr#IX??7OVFmH$6)ZvrRRRh^0J?R&koUhR8VRd-kKySk-bBz0?7w{}^JZG>z~w!F&N z21CFQX8=1k5U>rwhOmaP4J1GoCnOnQ5;6or2n3Q0$z+9K2+V&H!apkJJNLb6ZFb9s z{KgHf?&@0Za_+fj`ObHkDx!246Ls2tJQ6v8FfG3M%Il7_dJS{)$XgB^-gjiF0$_rX zFjHPSwRK_RHLeFg*;E2cYzR$#>%vW^&falk@t|&GbMwV|5yYvU1ptj`q*Ev778aJ) zTbAL#m1JXj2D!oLZb)$J2&9GhCoWUA=nU4%Rxiq17DW_FC( zH9?+oM6N+bB9yaBflqcAh_o80+fzwbICT@033;umeB+)ps^WPyyYxRaL35NZiWJ)9 zb?J-LslA%HW)lv&VDqPL3^c2jIsP*tkhJQJdr|;2ve<_%eo=AoQm)Ki|0Oij##?vJ z`acqoZyn%tIOY-ab7WjZ7a8}h?Juu48eOv+A6-})8j_@?`Nab;Xl_1o-9KG>WMa(e z={s@qp4`lQf_3?Ebecp8FuQ@ihes04T z_z%hht=H|?v#_NCqWms!zwJA;xOrQQZF(!>PQ$3fJBX?c=uCPm0yeROKsp01z)*B7 znDV6hi`mYB3R1%eI-$I0mR*XZYGsO^#qSa8UWVR_AR!FuA05Gt?SKy>5oTU9eL}QX z_=h&@N9Y2cDh-b0vs^YmkWT0PB$dpFiE?pku4M3q?4A;E-iE_-?SJel6>D7I+(Efb649tiIYKu%ckuhVlL}ooqH$a_|wtA_bQ)Ns`ShKZ~oDvN$ zER;l{{fB%myVBD)r`K!bo!7!FZw&U{TJO$AMDN`hA2EnmjdnK z0FQu^fCc3jbj50a6bz&WdS1vM`Dln_xF`gUc=QMX)LbVFIiN#@2GxHh-i&;Rb5XK)#2D-B2ALq1)<{psTd|-|A>gj)BJ{6*%~ZK zpZtg^HuH#GF3f>hRW3^HzcBnhXd}lyeO3&oi~6UYPGqYn<4}vXrT+GB%IQpZLHdRg z+w8DeZ%6!(`LA3G@m3Z_j&Ge+u0~wb(P?GF!JR$FhpRqSt;!$pZSB>|<(8(EfbkH} zNy}_(SY8&1!&lz3vY}z=67Fp+EX(LKT6|5aglfqE;K|V za|Ek7%8;BG`$momoMC`Wjv+Jv@Tg4+tfgJqafHz3T2^P$Gle=MR`ehkn` zpbhCZlT5=(D5{uhe;Ts*Dqgx z#TCd#Bt6c5QVcwe-}VLA+|s`X$o?p}je&>xW?l4*5Isc9O#44x@gT?pHLm?(!K+hR zxb6x2zm=5GOxG0*uW~NsAo~Cmy<0g~awyN#$v0$yA1y$~vW~D64sEF zGr@2`eF^=+WdlZ$35E+n!I)k4G}4Tu6tAf{SsSSa&8f)RK*PzPqcBj1-8nVSHByPJ z7X4+m;+kOs%g6o`c{Bh?bOi6>3Xc;nukdphfWmj62Zj8UN0X}OuBkCmk2 zD0auChU+p67T6E5?SK!Z4`en&KEtXV(&#CQVcB3Umqy75o^ zP?16nU~m58XvhFg8?Ajn9Zw*VVWH2B6vW5ie;5!7PMGQ3jz{I6hQ zNaG1y^DDEiCGcc=kkSygK&C65{bDqQq~As*+OpL(WOYu(X0Z%Olid8MQs&+YbQM9+ zWIH$W=Py3T|CyA{x4`20Un)v2)q_6(N}C^2D%?xUN-^00tcyO51*V1H;lBaf2iC7o zCdfJ%4l&spgIPPP%QH!`7^@}7;|Zzhirfm1tQr!+|FTbX>G*yNIXB5nTBwTI4*C`> zj3l&w6?^z=$b<9PI@L$`O>@4Cwqsr(^GkFy8Ry@Z6?nKE1r10%q%09h=n|B8e2+oi z!Z@#pQw|Nv&I80PI>%B_gNe+xlqptHS@b8$0x|YS?wy_m`WdC{2<=a5rYXMv)dj$g zxz7MG-Ts(BKtyaV#(IEv$`Qg1SyZ684cR{bKFLO57)EAxnZg_I%HVa71)=>7Fq89A zh<>_)(Eb{SFdf9yoBdO+F4`JMOQQw;Jbyhq&m>|L$EP-s_`-SNzR}ZYrStjhHD`u< z^F0DTKe3)aET^+QgZB>hkBjMKZFKAGP1zjw3Gani(J#UuxCg&LHzdH`#VixdoP|-M zY(B0P1jLyIkH=XvAC~2Z4B>uZ5<~!AJd5H?^eDy>`Mr_hh;fmXLE&lWMXKOst{ODO zFV@$aBEL9*^NMlEfEM- z0KYqBiTgKX3=dcY5Xpt6tNUryf%l{|v#2M<(*d|m@p?G9sJp|J?YX?hZ<+{ogtG)5 zA@q7KLl{i9N8sY6d*tGJCl+>J2#=XzxL4E z`9Bjk_G#@SK!M|eQoYis#{IIEO#@v>Cyn+mifdyxna@H;n|7d#?TF4b-9u$A*UjEw zriWf1z1d8U+CB)wi9Y)L5Bn5G(AgOX`;FC?JcIZe#hFinG2qjf%}C5}fi5|nPEah{ z%PI!hrq?H+S{PZdjhG`F4spT}q5|=ALi<7*81lTv{wPP>ACQnpXy_7+v#A|%!V5Yq zn{h!RycN8qOx_F(oOlFdac^;g+0gK2A`gj`91lkx<-0j~v>V89IaQ%`2Qlqa6)9E0 zqKlkb1Kl&T=Om}PYei!0WxPl!SI7zeQ$5jqbPRE2zU&dr)g3bE$N0@trh5L50X9il zaI$IlG(3&EzzWp1h>@*;OA*g}P%uhKPEB^+oS#Sn4nYw{bQY+*BXm-@+oej1lB3{WVw;Yt;SyB z7IJtmAzPMgATb5XRS1fd^a3xmaw-&wCVN35nbUGYL$ZuC@&|a4XpGdWJM4|syldxLIxRK5wcuIw)`=S85V$P#@rD!t5eq&?d}=fzl)C$Ysk#NXkPX2Q zisykN*G+=okX^I*27ZsXAdY$)P^MJ>MK?Qg4}e}1=pOeM^9Ja#PSpn1ot;l+j<9ot zZ_yg!2Zr6JdybtOtZgT=j%6pUf>*D4YZR94Tt3XN;NG8IuGSN(joe$>tGp&rEw=ofn`smc77H3=@v;cnvKsVY{PR z7Ufd%N_`?D%e}KT(=K|MY_eJuq`cuL`>%X|B~cnEWSVv~BCj^58LK180gchR@+GPj zy#!-R)f=@@S@uQ5Eghr<{*Tz2ua!nn0j)o=8>a_ulW1nfdOXslg4c^~rn@Ma`+~ zuEo7uvd|1})vH)AcF`<0)3xn^`Rle{JE}S;fyp&5%mrRmH5( zanlo`o!oJor~&M7kVm7=YSLG;Im?0Qch)(J{PQ-N2d@ONxf0EXR6f2?Wfw&_@C(r; zu?#NR8$^+SiIS;FIs`@tEkD1Y0nl>h4CGQg#7h!?0P!d_<1O4ArdcZ^@$dp=apA(H z%uM(od?K1TTFK1Maf)gq6k{UDSnYucA>4|FGOBnp%83LH_|^!K3=AEL*K**J*Z~Ns zDSw#(AO;7Zt}o1~2ema!ce30x+aX+Iu|FS&ixh?(!p+->zeO_|j#MVItuP@nuEqz1 zI6*zPAQ0RF#;Bm$52ivLy@db=la$QjVUcxeN{63wL`4fS1GtJr{t&!K>C72Wp(LX` z^}ry_RycdYLCF>9m)f5MeqR)HA~wL?1-vzG(j8b5C0(2rRWwpNi>r_8E~%(XC&*=d zKJI{>3C{@#o(s1E+c4}CY6z1Qi;h$aLM>y^O=AcXKo}#%6rB|0Y!(kJ6$8?+s2fG%7|+{tWXIB4;6T zreVyno-(hgM&-7Jp@x{r$nCEw$#J1Bg~DSmMSD1nuOKZ0 zyFXCTK>;<;w=N7LxPGjnay_C=>V>V}KVuv%^x}-{Ji^&x0JMCOK4G3WNdWidb8qTt zx^_Bq?=AVkBRg)I-B2x}DRVG5{87Zlhew8%m+pMs^1*9Bnu3eJRG1vzHTR`Nz#o6+ra4A!SVnZGi7k5~u~mhvSDvvrd~t)*KR7|BSAp z8^^eFPlz6zwl@@f*m5o?K>qpem)hhEi9J8FBs*sN2WJuhBBGp1GLTxe%vYS|LAs-K zyW&Fy|G@_oKZB&o{Tt^McuuIh%6yl|n zP4L}SVfwdlR@5$=KX?oOvp0aVN8&w1G3PgK-oS}jUwPoc(o?+Ktu(j3zx`Em68!ONp~~5v|9h~@N5E45F3fm>e6Pr|>eLzFhR03bA>e4nGbU?! z1RKYZWyJs@>`rGsFV+Ca9kRn9bJ+lwGc0^oeU zTn1)UZzjdfYQCf=0PIbZ%F^HiqJ>r}n;OPDBWfmu9_Ol!BnlaTYBst8N#4-Y3nxMK z-M~grCFdzUtqro|*V2f=Wt!(R{49DU7hN-jjDW~l&2A*))sY<14TBj`E|f-dimqf0 zLqV!gkzE&71$R!ejdIeJ(Rx8QoggJtO5F`C0=gp9KnQ{kl)RXBWxFt(57A7f;>)sx zH&#V8=5c!~bbyZt`sBJDsBb@us_i$fdnfjv8Od?4a=GR5989AdSHGG(Qjaaa*@~F~qXwpeMAgmz}1Pk_IsYJ1Gx> zd5Uyz6gMM$a(dlP>?)~UP|;%Zh+Yf-W7p*{18>Hi_F&ZG(9%~FX+gxFn*ZY2WZZO4 zU=^j(0DUL(xg6MRFwl%L3Wr8A&S9Z2ViY^#PK4uvrkDdXSaWOqqKG4W1=zr`tc4`AtON zQCZ#o{1{41HJdw|fx3@)Ii3NQmCou4>ha%!xC!P6*9qfgBWFAFEP)buXh9SxX^eMB z7M>$YGDMVMM7K{%2h)jdcjT&Fh>=8k`;r(5jRVUU;VdX?!N&4ZuTpFF_w=PhE)5L* z!ZCFIr?}S21;8(gN6!Kjj-NcE!SP7mZ4zjRhUJ?gE!M4ud3^J6o z>kW2aw~xB7jx>AtZx%qBC?-?A-Nzd}LB=xoj;+7{(#S`jywr!#ux}I$9YVw^aAFb3Cf6=AWJ~S;DtPu(x5OR!*BwdF&r}C>M{0jWwET)N z&gVk;{FjujUDO{3r%9jKT2c8?3F#na_x+XdY3KvQ_k2P?tz(;wE%ZGYUGx!yT)q4_ zy6J%7X1AA2<;wX==0m98;KW2`P;bAd{mcA+$P?Qu^7*e66E;{Y;Aj=OtduS|xl}hO z2WToRj`##VXCH2rn=!$mVQ7$vQOFmF`z9huqZ5Y@q@sN?0*LyH;s`(_LxKoiPP}1E z45SR}__C;%#k*TH<8s8b^&Jf9UYqUsw7`#=90XgI)-=uT8iS~@pscY)wf z^ZG`%>$3}j?U#S$L+IcR+~fS5IeIvoLu5^I#;YaN4G*CGAYf&xj?-BLXH2Qim#G6$ z4RZr4@L#ibm>{1xh0sa0biCeefVGX&o2BW#5mz{fHd82pgcc8r$X_26j7@{1(+-|n z&L64wFwO*CcrE%uf)LUOLv0&7$U5 zG=HoCdHv%|T}OCr7*^k`hnw$Qb`)7gliN4H5t5+gGMmedAud(P5D?ht0>{uB-z)^? z-fg?D*CzP$BB&_t*qob9q3P~zJJPn=$fj*zhMH*Elk{}~WHE~5eT@@y{{E-NCK0+? zt$+C{EQo1lDM#!$sgS5yk#wW98;uUT2+S(bBS>{%qln%mj>uy8P1qN}Q$#{Q)*t@r z;3eEM`j7NRsiq*uHc~Uw;h8*6Y_oB>2bYHr!roAeI%--+E+uba-r`Vg(wn)&|B#)(;eXTLF@U z;(PxD{6-&af+l9es@yyl%S+I#C@zlC;&!4hb`=!4VVCvqm9 zC4K2L-HFtgSkbk?!EH*C|8dSkdZYc-V1C!hJ==H7%GAKm?do2sXk6Eq!s>2ye(U1+ zWB>r}^{aAzE!GqnTJi}AKA%Kjf?d-wPLG5d$vl!DO7h@Vrc!5!OA{X96G^1Qv8z*q zX&pdm-Vq;uR7qw)n#1{svU256OAk!)Qq~o~lbYOeL}-ZlK!xYr{xQIfJ(*ludiYT> z;VB$!{#>S8#VJjtB_DiYcv~p4$bPyOev!qz*SPkQ6`cV=icP0@(HaAeL!MRcZWOrt zZUU-VO4@cnR?^zT=6Ddepzk*Xoj9(j7X4nT-nseoa}E9U%@ml4hK%)HCq(1Ufn%K^ zBra6aM9S1d1&^WOuv z4WVf!NN+O>lzt#GTt;;p{Qx13d|8H=TZdHBrB2Q}lau`_fBFnHbH;y&51u*A^KOtX zCT;Q2n@YqEjY)7B?(+~QVlE(WL9FoKwE0RwpV~kogbwmlOSSq9VENn@~|-FQ+JwCe!bdrY9jfR>my6 zv1l|+ZbK7TnL?QZ>$VTOk3@1MbO8kN_EovU9IG#6j&EXtg69-0$QAPF$A#?0`5RIJWW`ZWPjaZ}JKUv+ zyOPYe*vjX=k7V3K&^3H9qnn9dv~>qxQxS#mdv+GVS%;EaXq!TXx5f5%w2TmPmi*A8 zVrsmHOq}*JXbY?QXmkMY8xW>4G@05r$;1)p9VSyheuj;$C&H?b7YQWFCAw*~D=#zN zSOOK*t{6T=0w8Nu?vMPSoJHnXyhz!IKVAoD31px*fi}oR4Dg{x_5`+_WID$4aGxQ| zBZf@sCi^PYCyY@IS^pwJzyOQ)xq3AV~~>A z;^^KXy}e5x+?UCc>8<4l4{6zcut~bzGjNZw6h?o^oBib{`V&9~adco*v z*n>~qa&AJdvR(IJ)}yKfM5SCnAvRQ3pyvmBgqJG9ItL~^U)wd=6CkseOlU^X2Pdg9 zxJ605 z&UfY%0>NUo2kdJ!-nRvg6DUVy7|^^H$Va-+ir~U;sO4WhOLxLPtVCytPBrd(S~}b! zEZ!DrX1eSrCvd|n!zhrTzZW<^3PX)IxxY-1ulSb7K*Wef&g~yea7F>k7(F0x-uTqe zt6xKnQMf;D|A#3Ov`feVplgXg^9pL`ofQ4{!#jALcU|$7FK3VF+&y2}vw#m&P2s>k z4pms_FOhgEI{)88onbd(0A=v9;M}uuu-3#dm?{`se8F&_GOq|*)N20x57Rap^mgUs z8u#`obhHsc8)2URZBUTA6S;;g8$sRRA2D)-Ho|}43a~&B|H1Yr`8Shze3fdJZ|l(BYW@u_w0Y~d!N_9E*@N@6DS7IM1PfA&|eyNe;mgo5o7B`OGfIMA)g># z6tYJTZi>K-LxIr3Qm6oI^%No`Hw9%8EaJkV1QcS&Q(>Yp+H^)Lg(MdFS5YvOnL%+) zKW!5W0+T{wxC|0#`l?m=KTv9@;X=$!=_a!NZmK@kTi_@FCMNA`maQ4-;QZ%?PvlEs z3Gg9s6&@KbTZUn4_TaHXnRo4`B2D!VjU~|^*cJZ2L@TB1VT|7dQTJNCTeBS107D5(6=cg28vl(h)kq~#!zk&!t54B%PeZ~m8k!Ka z|Mx`S&}1^r`+)I`^|!`33`3QMdk3e=3Bv@wW9&pej{%EZAB{jsw1621`)s7>TcQ3< z(Nr8CJvlLqJ``*NEp4dCU|*O$ni#<<0)#k{|Gz

j3bp<#o8fF77H6BhRq%NN{zs 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

dv1G1=2 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 z zDi0rc&Fd7cW+s#`QH-vk0Mb_~mc5`DH>*7>Dp)#3olV7ja*@4ne5wZXRjO2vu4m72 zT#W`+U_3_Z8VoK7Xi7G5u{(U9vV52-SBDT^oN%XG_0CbD9CBLa)ZHhmD(@61$%c5M z81QQKb-iuCs%2_G*{+{g?DxK+i!8EK+gDx(zG*>Lt(zo|#1)*N* zv^Ju6?m$nf5cmLqBsXLA(Z3OhCu%TuHKt&`3q8NE7Sz*%wS!|7V@w{|2GUzNvCL>N z>p&1KGM{+F3rMqIJQ-6ORk~qqP%zzrQcRiPujq0We!b^fM(rPgUp$ZDEB+hTF zEy`t^u65q$O&%G&7A_x~PKTCo+{2Sb^8qPvFN**37iXxar8Wik2N`rv+FRnP1Go)mk2gsHh2O`|(8UC|u}Q@BHQd}g|XQk#r& z`jvT&j5p>R^1|@XhaZrlNa3e_Tp|jo@GZ(^n0!#a6{@v5uO#S$JI)=^OUd|QA_%j* z9YZyBz|?{3G|jABDwx3Ia&4~8h}$^s05!zP81|#6Ma_xobH!@fKDyze{oOIa)q>GI z7H;6Hi!ER$ZhrxW^mT-j$3Q@r*pbTL*T)E!GVu6JC%(aSVi{-bFO9vAF^bXzm4|8s z7J+SRwyNiJVpAn9$O{sG-eb@T=n$y|d1_4KU@cHa#fFAwH?nA?K5X~XbMr$); zDCR_|ocwt(P?Bnp%E}Rk(I>ZE{}sJOW1&ee_|{ZZE7!l~&F*cr-jWB?}e3rU2W zqvyeeJSq6Gk)nRZ%I6xuyXO>yODkqAqrB}yG-MYi$54=CTy+7aFLgXdBKPm>$g#4f zhJjLvk_a$z0aKxcqnryzhq7^Yo_fmBnh(XVwB|4gfBXPaC4-F>Awd zxstUjB>-k+y6ur#A*u&5Rs)XhF&C{Me~z`YWjwfBpwhoo`-o}NGqDa=wdbn z_{my5RX5@y$RmF&Dj_LO+%Ti=JO<6Xm_7=Z(BXwvmm*bA6L66uN}68Ae4O#B?x1*s z4QI{PCQO`g2k}8E|B#fjghSKm?p;(I+TlM2v4@+AkAH( z8Wr7vk|3I)!NhEE&@|8%7ihydSKIU4n1|`X zn{qv1e1h1mn=U0*fSGJ81oI_{F?WW7H9X)ESm1}y12#>N*#Vk!nJ@o^^B2#LTzvSN ze?>3EZHC%^3_ikRJq(Vy7%O>3s5S&lS__4#arE7l%fM5PPvws^s=^r_BUIgotuHTo zrP(LW^ozAXz8mRW+S6-`$e!xDt&Y4v zai*e!iq!|CEN(-$;%Y#7e0aZZ(y#rACqF57v9NV8t(Y zqhe@y$;6($-C3VseP8v6YoQEST^`-TT1}= zz~m?at;va7w^B{QwCX>^dLz3CLZRVa?#NqZANvU`%<=Hslk@W8VHy*S)bi>yINv8f z_d&-!V0IDdSCjGhtm( zwV*JIIX`gwAnH6%21o=0nJfaxM#&!pQwX+_{MmGb=8+jvg?SkgTar#)IbT7<=LyOZ zWH=cLXTVsU>v$5hpq|$~6s93LZgzP<*;%}tp=uGF(?#H4pdeZDjzM5qYNFZrX{A=V zbaJ}sh4|Wnf=TQm_YOgARz?0h=IRa?kG?~=*X(w#n?`b5F9Fj?emjpGL&rdyX{p+5 zwu=>A_&dv+E>>p6DCq`nX-yG>v;R^+J3I0`WB;>`F|qbNiH{(-bon+X2FD8ckN}7} zvgT#F8X~*31+%n=FD5dswQ*o4A8N;t%)lo zS4V^8SHfB$#Q5o?ocQ5xV9M-N6m7-AP!g0`t~?x!|jJ2ebi44T;o=Bi%Ld@0d7Fg9$oWL3BVPrrbeB(8TnDBCdS1kzuC1@aEqa^WX~) zvltyq$Iz?<7+UPo$Yv}xQ~>pq&6@(YI)!hfN(?Ja`<^vEqxKxr+5=37TmqIJ6BJ4P zmS7+d)lZWklb;Hu9`vj zib}0otTd|`EU7BL zcO6A1KS{^;?9A{3kXzeHl8(2V=z*@eU=s^<&njB=#(Z_f0|?Nw97BBFYik}Rdm{Ve zITZzc*_^d|+IaS}e^IPfUD%^W3MTf^t>M=&xHrbLRo!=WbaWJY&8inQ`t6-A@==-{ z%Cdx>`TQE`YX32hQMpscImNZ9u>OwY$Tw<;LhwISu93wfUHKdIGi>V0+Y!$ZO8$w} zm1%x)kn2Y>!dIoI{^d1=MlL+ixPo#S2>0GVg zg|31oY`Iox+E%=^Ye<0)Vi~Pbj4&2iM@m6PQ#=?QOIgwNVREv9CI(2dVBR-S_P|S? z==GimwK%)M6*`R~AkZ4BeJ7%%*WN$J0($7E074r#1qfaYMEN-HIEC`X<$`1LB>*TQ zh1>dw zW9#w)9TF9s=+j*N{7qsrr=KXKLxhF$6rVFdBNC0HG*6d#>MR!w2LMKeesZl@fJZ?e zfXUv)>3Yd9!%asY_vU;O;56|Iv`J@ z8^f<6eNatHu>p`(#&y%lB}p*#W(7l8F^v@AI$Rb^9%$-hMNAL{(7YO3L1HOwxt0-; z3r988G2sou91x1c750|%>$`a(oIeio6?zQk0d``(!1-yw&V_(tbHG(8Swr(zN9&D; zphT4C$Ko|vWQM~(2T3=ns*h6%iooJ?O5f1(<|bb&q^J8+*=TtW1d%EzR#KgOlm))P zq{1YbTjey6)S}18)TG!NeHB1;iX}4dCKTe^wCEk`d@KM%W`Y z+jnG%=Zp1-7uuyN7MI!gxqiFsg@b%`o2~Yw%V?wdD; zUk#IvVVC!!KwJh19ENt_AK9p6xJsdl5u=u)Ns?A%6ffiTK=FZNfu9fvrKCD=9ERcf z7S?ta6KVFMKFXplNRm0&ByHAfLjD?d5IODy&S9IB_R&&TCV4Zj0JVO$)1(eN+&k^j zZ>%$U15Hv4tRf;TGR3rBK$KCuMOzcEq{ItLz`;s4ml*m7hM_-cRnmc+8ccb6ILZ{Ifb9KS*MLuy76GRSM1^a^qOel?Q-lm-fYslQ(ysAmlnDfdP z15naNC8RC7`=8TXsg=E~TR4a5Tp=g3M3dey=mj0RZpr zFMC~0)q4i#Qs?G(C56EFkg~db=_OZQb7(0EaOer({X$Tz zhLaQ5_gtWzr0Aj+K>9f3JYCn?1GH($n0>&3qLqCks8{ZVj6cQF$7B~fvVD4?uQ#YkZkCW)Ab%gy; zxWL|p>=og4IB`@4^*}P-Ag-O#jeBE9z$G!I4 zbR`9gL>%|#THRWAB19InZxSJo>^vC&QC?6K$fDBQ?y6qG(eQ7->VhCaQBp`>_AMta zWU18dh`b-BmCSAzQG{((rVx$5)$p|4OCeJ4HsJcQvZXS3dEY2kt@iVlO56FD_p0+- zrw&ZbyT&KiO7i-k_OA8PL@awrZ*uEO(M))LvNBKDBMg zniVvhpWIp~VA6Kj{DnilXC`}I-H!^J{=*l5$65h4?`}4CbikGg#o>Gz>Dk=?6j)*Fcv4! z6J%sc5yrC5T%wExVK7FTl4Bp>7jl1a=QD43nQkniZflo{otm#=)Su%f*?3*Y=n@bM z?JPQk{Fk&asE?zqbjCEQjiW2C;=a^5arkpjx_W)pomM3@f5_k|ZB$c?4aKuX)whd{ zN^1G4D2qIpgk8T}b{);a4w5~kEDo>U|DsCGwT`a2re56AJFrn&Ts~v#72TTMRRBc< zG)q*MW?IcoR#v4ftd|pmKdWsWeBrsb-)7W(&5`7p%nNj1L9%1c*6f0n0QyxkV8jmX-gj)rQH*E@IPLD&54P;%5KMSg^cNKXUz9n`?z;UcWT8-F z#;D@CPAzm1PrA$wzE0?)Cu14tqf_X1R0U==4g5gP!^k?AVt87#51kAhNpiw> z(JwgNm=vmCL0DV7M$jemiX*ldf-pz?eZ1i8cKIIJf)gugE=ZjX3~Im_N^VM?>zvL% z6N*g860pUS_k$3ZTcnq;D-}Fbd><9Mas8t!I6(yowEdg%FDdlCpzUMtOAeDR>zD6| zOqm1H+C=9ZNTt#1gD;l9j|P_r8mZhPqZoUX_&ARr|1v7fqp!k#K`0ojD@nMf_dr5` zA44jUXum2nr8RoN7qP_3+lfAozOHZJ`e<+@*wRG%$Q8H(dKk?jSM0$6WzGf<3%fuj zQMzmemmMBGfq%yP09Mjj_HF*ZLw|e7qyh~Cg#p1COI@<*F)Sg*0EA7MmLKbk^R7i9 zPI;6!rIcB&K6KVG$9N%T)DNS^-WELI*XWsoydB&bt^AF@q0v#e<7x)RM(K_J`Z5ga zGP!-jkE@!SKdExM7jYdUA0z>*J2YE1= z{HE|h;W%=M{|htCn7JP1d1;sAhkO2;>Aei0A>*_WRQjV?bOa9_+^mF3;b90)QXL0YdtAij-%By*TpO`$3)cv6Dp9$ z4x_P1h$^t~hA5EU(<^a^Kf8 z6fDt0h)zlg?}WE^P&d&r>^0Wl4J}OsvWA>vBUQbEVWrSMM6-!zM}duzFesUzADIUl z0X1i@9A{|Tv2p%(4XdT8vhG`PwUJN^jDa?~f~jDIT7RNi1}cjO#zIAJE%emD-u(vZ zAd_Pb*jZM_4vsw?Jaaz{9^ZG3eSGY9^WDtmNl^6y$!BFSN_*$3p~&z(iGB;(LkC6f zSwJaRD-@j2IjAP-9#fk3V6&_NdQkL5(TnL2V$RF5G{9uKX`VWm8Cr?y9(#MGLpBBX zDYt^p$~O{y9^RSsQKG-o6_KV==tbAWGAE-#8oiKyxWA2FSaekk&MB-H;*9rR>|=(6 zUCEr#k~P&UfnohR?q`MAi{t64p2kQ+CV+?O%Gr0Sm5Pld0w7PIArb&6JZoh@yNhzX z?=D})T39Izs-zY_TEfVP;osY!(=JuvH2j^YM1ZLX28s_(Csu9ayF#T0J^%opZQUNu z=uyGb6hujGf>^ihyQMn+WUr3BvAB_8nBJ_N#ya>*{6O_;t1CU!O*FSs_KGf=u)9*? zsMQJ%3p=V7G7)XLW+Gv(CJZ}Zm{G%tH(uz1eJ`EcOK&!9XNhiH>S?IpESIak5P5D~ zSl(I_t<0ioNxc7+9#U)qeH~fRN*_aVpEE5!s}+T`_WHn}+^Fv!Zgx#at$XeH%j2RH z=q2627LB{0f5!l+EQ$kPQ(EIH@(Xc1TP9f=a;mzarXJy|O^pI0^tz(&PeTF;x(Jxm z1wB<%hdBd}hct`n*7=C$Q8;*obK1p{XBTJ}0G4RXgRcQ?fnq{2(Afg_=y7#dea=Zu zw!EK-!7$F-DX@W(TKXNN!G_Bvw_Dbwj+BXahnD5Y$^(TlZ#yQd^ zqkxZgCiOnzCh|<|0eJZI6c%w)`z)S`dGqwQe4n8m3!=l_rA6AT*jjiJ1HuoM8P1fB z`n-pWf)}Pj-At^q><9jO3XfuNa<(%-|xD?h1}x)vN(G>Pn!o#{f=IL&*p8 z8N8ulY4E%~8?_y@ySl2IfwmM@J*PCozH=r!*n_r@niCG^{!=?h5=rHC916LWm+670KLvI8S68UUDK8rc+E)(S8H*zIyi>%e9Kw5Ck#BSV+1`(H^bKEsP5v zeQ^1@P;8D-QOu2|@(k`mQr+BtU+OY()B3U6&X05{5N%wg$#D(e+-L;l(##BK3|)D! zq{qZ{D~bTB8ENGNn6-Zt!naY~gB&WczOEpphZsdhHi!O6K5eNItb9+vgU+tr%%TpWoh}(qwf@ch%pJDnL92jr7}j?@M*ui zTy84Lv8~4Ojc3$BwS$dj3_n+J3Z9LwZZ9f)0NqX3IuIHXXU<&Paw&v~kOVc-BDa&< zoonCln#yG`viPPhz6r9lQ<%C5x+Dj??==%N1j* zq^8k)Ul)XT46g+*?X|A1;P?fa)}3!zSPNb#$3SqG^Mqj;@NPS!qBzO)Tf*yplrn_@ zX8WLC!&<!WyoY21M=63fRrg4=+=0-9?xN0S-So`~(sEp$}w(+eHGT za}6Gldm~Y^(1P7a0x|vrLKRDHEIfd3sXr-JaOx? zS@84>Q#)`dAkAd$w;3a!8|#8mthctB0>X(%kQ(JO;)H5(v(@zFKlQ{z6{ThqdXMCr z?tu{9g_!}wmV$p1scA`etOH~dU}n+?xjB8MgKBM3_Bq2wl!X(SDlixF1X9lGAS&Ni zQ+A4`n2Z=YM%_yua~Wv$a~@1&^FiA}CX;Ae$S1GM5*&?q6Yd0GVl$+``oeqZ5Ml;R zP}AIhSNS9A#C9B7()J1M?5}8(t8{d0wMv(W@L)bevBwJ?P$J+k#wp)9JM42mXM*mG zIc`^M-z~ar^b!q+{~}gp?NI)vD)=BuIcg{a$2f*&r!)d8kDjucxK0EA* z^hpAustzyYces1yiYLgjUOcn9OEhUr=l6S* zM=kjp#9Dc_gftoQ$)k8C6bOcN8G;H%(qbbc@Gw0O!zD@g<6y8EPo4L8;k}W&%Z4yu z&ye&+-Y)mqdp7f18376_;Hu_s`I{BPIY-bh*MmXWz_#JP2`nFwrZQC@LX2$pJ z-FN5Kde^ViD}$Zic&P8|qL-S#;~C`nenaq3@inb#8?E7+jxS=8g|%%rPj7wNiCdTI zUF1nbJ6ej<$&E{Hzk2ofT)%&|V%d9ltv>z9tK0YZC=&}(Gu(U2>6?GDUUq!$n}U^H z;0g;~)fQj&3|F1?fCyA-H9Pnfxwq*CvpO!F{hN3khQ-OH_;8d3L`-BHFc`pO&EdG; zj0+)X66iz0T{hwEHo;n?g(CQxRyCu zO=h7+V0(6bd8HSre*Oy=ROR!kU#v*Fq1e?@XiuyHh=r}^*^dt9s%<&@wMT|(U4bcd zkx}`r-)3^+=_~`j*B$=g?Uf;IzKVV6?nMjg=$rVi|=6 z@L7r_hddSdN6byJiTaQ$Le%RKd?S~&I3v3q>>hu)0YJ}0H8{8>yrAX$XQ?}+> zeCKu(6j}uxm67UPenoR26)^ui1D;i#ojr2u#-y=x`^mMbQfd;JG2^ioCi<^De)_~z zYp!S_ql@vva~Nw0yqb0B6!Om+*S*~Wv6ra_L<}+exi5&JhnngaJ~vCe2rmNTWApN( z#}~Jt#3m%wwaJyK`F1N+V#f~!|M*3FE|uke+?-x7?JOmj3q&r+IXO*&0qT0l39$zY z8`17h$rF5k&^40jq41A--;q&-h>*Lbz>!?Dr7j+LoWh!ba3Bs64jSqtj)Y@CUYNx_ zcR40-!Bc`;3ZUX$w*3CbCo}F>Kw65NVRa7jiCwUdf8lfBjX-u$2LZ0(;Qf)$AX+{t zxXS^>!{Zkl<+vXl=@w+hMkwd0rnvzLf&_H#2lvnY5N<>!@D?-K7ozR)e8x@(*9P>J zJSiJFza(OQ8g_*H=Chu3`BRq{KXhH$j3pl6BxLbwQK$Q)*=cpKa&4vLW)2>+RWA@f z?n&Y!X^3MuV4QX4FAI=Tz(1lCtRKKcQ`zw4l`S8+`B_(8b`!!BIWrR!;9z7x{WEp? z_@@q^=o;_>=mD)>M)Yb{+r|>ZYDO2)j)C@hLx)%-{<^ zN)&)WptOG>s=U+>HQY3wtV4nL7^wLFxP+D}mbbq4Fx_CPq*a(I5qtrvRM9XgQP-8n zD>B}6@%AWt@}SPc3_4Qn^Cp6sJZ2&^5Dky^<%7VLj^wq;)j+D02eL3-R9YjeM2%Wx zoS-fAwJ9+RQT-6|`dcw;wC88$Cs*qIrTI%vUR^eVnCdDBVs^Y>W*)RD@CNqn-b2aK z-(&*w&#BTYfgQfkHc`*Urfmu!Fy_r_Mw;~o8z-K8%bC;5OE}3KA7rzdxjehLbKlX+ z_Uyo@l4{|19-pxC{g}&&Y}nx3hI_2Cdi?wGafzyed1ad>iG`mdljMNh=3ypjCpIKt zk&j1Mk9#wcyuQt_Ze3KQ@-7F&WHcWfdIKGT-67q|jTiv}@Yn$E50&VkW0d`;o0x>j z@FOVBQBN41t&Dr1*U&fiL9($VSo2)2)`|Ah+6hVhbYzA=&w>X)noxq{I5!Ncr_sz12P#Ifl}ZF&cr z&&i9I3{OBxm%j;frx5Frl2Kifa`LD;a$nhUaPM8yv!IU+w*{e8Jh1!fD?Yro+Mn1l zzOT2QNv6-;DpgCTuW0dxRBcA5(q4BFBY>lgU55_*bl0JI-MZH(fbI7a=5%k%;>7g! zz;^q!eyy4LnBm$i zQwf@VmcfUdfssVYa&#V6IkccF7?la>!>a}L0v!i!+R1}}`M(&v#>#IqJX%O7M3M0n zD(BMX?R0T}G}Z&}xKKylgx&(r#K+?nJuOF$kmpRn6FrKn!kUGcLWJ~xFDwu9pJ7>Q&DVIQ|hm)j)Iq53k;_@?|`X*{37b}};UC^m!DkXY!1A~cf+igq2jCgK@({50%} zsGFft_4=pEA@H^8?7XO+?NPRb-JIErq95|~S%n8rMunozl!Fp9XcQERZdz7{e>VJ@0>mF0 zHn`?*&G*lKod0d^HZZ8!p?i85CaUGC6FPU2>&=UCg&;8c_|%-oY3{_mACMEjEI5U= zv_NaF)O&?wcLoQP<1Q9NC)<-0&fX*(%j}xY?^s1L$4qpTXVxZl?R!oUwM;7!;_VBwM#3DvsYkVt6sz$cobHH zD`pl-n;78-Vc(|4GGt$mjopBqM?nvBA6P^W88z$pA8CIFDo?2=l+E%gPR?c+u~IYS z$>d6I*QQMIBD^e5&d@HdGxDTdmLI5=ubf?ICfd926{ElmrFi(U(w6yKTHUXdn$;;` zd?hVlOyTfT<*>l03rl{1ucrNK=8BjaU?}eU-Y=(K8SwjTs@Og?Q9~yP`RMylHYn^S zIr8_8S1XySRsgXC)4R;iM}c2!97HxctAvt*$>8DebCaoum5|-EH@9nX%S7t>KyhN` z4f?inQ3iH>W$EJC;#E_#sb;EKnif1WI5Rt6AQ6rcH}4p;UuCe~QoZE>a6i|MJq!9d z3Ln|=M}amsM*oKZ2~dLZov<>@wOArDe?*<3+@Qos{v28af(WoA&4Bu3ae88L5JSPF z;pxbB*`vBXrBRyje7P^PXmWTxZ*t(a)`o8zzD+a27zzFBhhJ`V(au(>sQlUAHu)q1 zVzKt8p{}Qq6=9yWYVa z!%9r@*;qC~Px-wVp>zkMpKa-OosVP8yGUCc!ap#;@?5nu+=wfF2*VzhxPvCphAI%D z7*O@@km2H3L3IGTo*+ckEu;rs$YL5?|uwjkRKe`J=R zQp{^XCWA~FRajUtPo~q0+!cngVipg@*d>8k0MKR9)98?6AT_)+LGl9~TwVTpdA@%N z&{b59g<7nI?%sW_n6kTaYxp75v<<(;qxu672W3air@;^LETKM)@#!+>+qMoCBJSDu zJWFre^2PfE^svAFmIkVK9MbI~_ZrMrFIHOnnipaA053H%`{WrhX%WOtuBW22{~{;U z;@UGX_(K2;SN!~E$_b8=pkfOa6_*5sYfLwE8_A;703EZQmbhQO=bqua4bf6w{31+> z*&OZ$QX}c?t-L+Gz;Q1i5$AG#EjY;ubbZbpz3q*fpP+Jy^&;ixc;^Sk6Q+*}7uMLP>yh~uZkE%Q%H zyo43*)mB0FEkuzBAEXFvS873c|2( zp;r*&^4^E7OF1I$$Aw*jVVqkR3<(zmD1C{$>%@sK!2(-eQEwi<%omF-Iy6B!Y&jq< zQj-Hm{ZRLv!eOp(;K?u^!u-r>3*PyKYt==~<>_F=-drn2_e!gkA4<6rlOxz&9N{(w z|8`&e;005n5~Z*yKLtPt)nz9*f$hJ%UY=_P)B-B8xus~|G1M-98>g&Ho%ZCcMPzYO zV%Kjzie_Wb=~6Nd%(uz#gO7E!p34jT{Ol!!SLF*AKe>d_SPP-fldF$G1!Z|h%Z`fx zRN-?F&uGQt#~ELo+$xIxrB9PvA?7w>45?ZR^w2-H;THj4FFd|A`x&T0ku>4->>TQ4 z!(YXBz#*y!cP2)NFT}f`Ch0`f^rB0`3;V}M`|4#_w+P*X`;cp;dJk+0Llfjq1R3#1 z+)6*tV#x~lct?);$O`6*fW^*_%zO#nVfHQl=W%hEA`!^Lzfi(J=6-f~?S*3hLDuT? zt=2{R-mbk}EB6tyKh!Aon)lqpf6M0_{-2TD0wfZ2036?R#s72aVSC{R+Nir$*SL4$ zh1f-BPF`SNos0H6VzKeICnJTyHz%{5+gEt8*tNjE;GHP!8&IDR#ceqKam2xW`pY=fCT7=BxWvhSDGgx| zwM*&f7I&>*rmMEC>X)r=2&2CO=#>9e*jS&PSW-2!zl43&?{@q6wKRb~jvoFIm0)~; z2k16_4aNfnkB_&zR-<;f)&M;w19qlZ z?nylQld`(7(gog5^u3BvEt!o)0AX+hIi*>Bc*qjVX&WFrb`h z_udeKM!VYXEll#Z2>h$x=!BUX^7k8dXw$fIXozgZ4PKt9iK^*s8D7^_3P}$RCI*Jg zDqZg5<8pTZ*Ap~g)gozVqk;4CRu{0rQdq$0BH0N>()yi5F>{vcL2n%U(dU>yPeE6@Roi9%h_WG0iS5Hi7HiD7a#^pC&dSZV|;5+Cz-fp#&A5+inNKW8}{dgR+PsT;U887=g_0@NmsO@NOrQ`Y#`ZD}`5!?c?i zt~2E2l`bX|8D^usMX>A*Fg~PSu~?gw=1%( zaxax4HNlYDP#m5$I%NbOFtH^cZm{Wa0qh6+kl4Z--_}_`tHDBCaBz2nQ_s zPksyW(j+1!V1`*rg9(yEM-~+HmavFSj*vW^5e&FWYq6X!BWsMP!1Ce@Vbxu%67|N> z4_<&hMRnq4V+Mou)QQe*&+d++Ef74TmG(ddITe*<<+IX=wMv_BS5T-HKL&zSPcU@T zPqy|JGEq@5a#}wkn`9(b~*VV7icv#nlc$NNkL5P3zN|T(hAlGQ*>A;1b-i#1mvN2=Xe+@93@Qu zAywKT^f-P-62n$l%gxX1hrNv*mz_R+`S#s3k4omRzY*9|&0AZD&?^N~Ph<6r_IKMz zY@5az4 zAYlht;Z>vEPWzo{Sf`67;k;~s(jEXRY-J$WS>>|R~o-spj^ZgFMf(B9)a zIsV%v$3drZskVP%eQoQ`$vKCA*Q1H@UA(dPrd@t>$IM14#v*9go=hD@UV)LvUVZxE z_0`>_>dN{l%ft`5==7paGR^ZyH0!*A`A&zBKYHod+t79L+a%qE`GpE#PLKe(L7Ock zxpUjb{yq0+=0qV4iiaRO23UY#Az+#!3QZm4h{f}NWQhPu1~ABaJ}!vH_FVANMQM@r znMz*x$&1emIgpLCeH$C|v-y0wLiRz-tSq+KqD3L|K^L1}FemD|V=)_s6jh8s9 zb@g-S3uvk5=rJPxZJeg83y9F1ap5=M1v` z=z#hnDW*W(UV59YobJ0mFH*4_hu2 z(t~XbJ+XMbSPwdNx0tBKCU8VP`Wp;S6T$$`MvsvfXKz=ahd?-T*I63q7PCesSNJ<7 zd#x!kK)tci6}|Sh=E1$SLBm!s<_5ivYp+JDHjv?xmHx?oG+oEqRIQSjR%>RUJLB71 z2X<8#n>OY?X?(divukewPYzc$b{w7E8CYJwqEyd*TLk^J4>sr)#~N zW_7h-%N2iof%`Kz#O%)qSy{Jf>!PDaw#I+cslt1ejrHwfvAHtPZ@vj!;-Uz%7lMwU zuv)0qq*&gn)EZ&?=9{HRFZ0zK3{`Q8$k;9ReYh=!ReVa&ojd!7ToE2~gvJovM*QpI zvl#w`>NlSiegi(`Er=D~IQ9|9jRI8qvUxn03ku`U_hFeE+A)YYDSTk; z6LSb2pmOwgc0sfs8r&J{qUpKW$~2N2;}d>4Ez8t2DVR+RRuEjp0RWUU%(@AH$2}+j z;T9%Cpznup_;I32)lA#Hri;F1`J%qIt>8?q84FYv!`PChqMQ`Iqa^Vb;Jx{K-VVf} zrcX}xmjt1g+$Ly6O?;J9=eg~ZbFBnJf8=L8OX5_u;Df*($F~VHWl4%IIsAtww<~I5 zFVyU$P!W}^+)0|q;5&RAXdNX)d^<4-0Dy^qg~^EvZ}Yt439tKwUfN)hMlGKlZtR@o z_M;%Fah+lTUTK<@f~xPjUd@OKg=qL@>P8k^$KE$NJ09Nxpbvky(w&{$r|C~p`k^S_ z{0y{n~1_AUq3Q_lr_McG1Z`K5xqY5_2^-OQjyW)n+n|^k^-L5 z#_Z}(^e4!*w}U<`IL|#(F)K!?SS)Swz1A`N3L}0>sJY4*0E48lh+=*TRQ#c!?9Gzp zBT+0`wM4W~F0nMcg)W;;Sg^#jW{PoiWI4(9DgumH2(KFxRJn>DS?Fn$F(Mrxy4sw9 zDPZ44DG_tMLFK*$jj~-#RIS!d*I^*-jxMVw_}}lvQ4}LnpjqwV{aM^yn7q8v_M+O< z^tv5%o3nL^n`k2kJzTSOzc)VK%RTfH+%C~AnI;Blr(nbK(M@b}zT3lh?e$O88zO2@ zzN&-ANOIAiuYf29%^Hyg8dlB_8}$?Y9xtQ)f>oF`7u?1vdY>hw?u)zlf;9Xb8yB9{H7v0okg ze6D3ow}Ac~so1%*ZJFs8HJ{Ns=O6(*CvS_&vqr!lfQpADC(*0RQkP^<*jq7m>#}Me z)NM2&DYr3H7a%PmqlM>_M$-?NAS7g~sLz8;-W(&Q7zpRi2s(GkB+^R>TLX|Jg&@tw z-Bz=HtO_DpQY~$6Zee|Oer8b+J33T`=RS?TNwNuv1@CWZ93bnC6YX)A&H_aFp9vLIUTw$WFlDxMbU zB8@cLBF@0&r6w$C8r043<$jC zmS%S?-`Z&NwGR3m;Tr9pZ0&GdfF!j36>oAdF|pe|G>;r>z16Em7^R3!CB3N+NlE6U zDe=H_4!?<>FQNjIts*|eHG8tJ7g9`I5N&VGVnGlBA%;ijAxE-0b_D&or{Qzmj#2#xU!`jy|j>EBfXx0-8;Ca0;UlfmOm^MhNh4%@HW@DOR~QJrF@>pjJ$KQJx@N427?A>~xI~F(74!K)OnS z1!*MlxiK##Z@{FBq_lb-c+e&QQw1@kG~X)WI7I^tGK8sP1}8jy0-W<|onO;UXL?o( zF+_@210Zs1&9cTo5Ey^+zvUB>8;XiA!sC_TB@h4UIQO?FP^f1fyI3d(Jino|>)7%b zvkXhcb7w!yDW#wlm<||g$yP317E_^->O~R%6izPt-Ox%*e4eP5BQZLr=B#U+4BLg-*dS6f=&K@W^T37&{26_NWt6*}e?h>FtQ0j>k z9fF#dck&6S5;2?s?sr2V?vUZv&w21PLeZ3tTlii`-&7LC1D z2lGgJ_nEN={$J2Ls916?8=U75u?PMyQM$8VKmO~12`bP_`H`}pWXRwDzbo946DN3u z9k1z5Q^4Ex24p3kKpXetvu~tlPqdBWwmyLd4!ZWfC)UJ0aRv_h21bm> zYU6$kdI!|YkLg_fap)b+*5gmqx%&UA+Kr*l|51Iq&y4-?|Hs{%fLnH!Wump_d0u<1 zJ`+oo0`wTTFSG~`3v!Tv8dtU$l{onk(?}l&x|HZogduzRaZ_n=E zUjqLQ1#8m4F}pa_~(MDcm|-?%*ZI#GHG8# zx7mQhl`od767tC(G)8nViQnTOc03J_8?@V z47@T&c?F*3Iwvs7z$&$@6^1r&a6?{m3dHdU;fexnEubfp>?ehqxKY-E?OO^TiuXkS z1f{hGyPUYz)jtI6yO%?SM2-DgY&T|!m3vplltmpE&EEk^2pt`Oj_kH(5(bo+R>njv zgQ6o3p)wlL-Y8fjmYmIRYn6CI(+uH>#}}^Ns%UyjM&bckVr{Jd7Br}#twKVwz|8E5 zEiX8bcl8)O!U*_KLw^)Fac~IO^$If1#;%~-_j+w6yptnwT?Osq(M}ixNhiHs)DW`NtUd0A9iyipuGl$oUrEX zjv*iLTE<{T`9un;8SFVtmkduJi>HwfK(r5X-(*82>L(o35t87aPHH*XOpLuGrxU>u z?xu`Y@>G`3M8gy|oRz0>niV_;p9K6YXa1(MIZMU+Q32X6i}{C--@J{I;%2$IU*#|` zVt{zSP_mc_u&j&*-artl^38@`s-t>~I=;47?;wi>a8mwvotOj4EwZYTF6sS48W52& zPH3BcCfk(Czx2mScMBa`-wuQ8AjwKt-DLmbmy~k86cWr8%HdH7qb@&bbcz|vJjNG7 z!R)^e!#6gy10nkM4gc&-z^{{q95S^p6myR5&=(bqyk>~Hl8HcsYvoh}XxDXDY&DHy zU2{VY=xTi4$ltay4LMcu zD-KR^t@z)?TW|a|qg$%tsEfv8Q!wY=d-(dQDYO^qXrj-5dkW}$lw^@JkAHC>4N@kM zG9Uld&s!;Ehn=+Qq%Z)4$|wjNN`%XG40T*^;c}{1AB7AuIzzzeH-I^sHYi#plvZq- zf&(jQ`J4K`5A`LfQ7*93OMmpo%48|~C^lS2+Fi8z|9WH1)<0+Hxb%68O0&BjN2@|Gj8-I=nBBQ(oh#`*XdDa3SS6wtc(c{B_SfM0_PpPJ=VU= ze0zKDn4c1HKZ zvQu$MbyOwoViZGgGl0E9cWkk3jQnC0nRdN5R`+zETSr)4K?TaHqi9ZHZn_1sF+;XO z`0b!V#N>wV0{5MZa+A&3dPdl{p_L&b|oz|Gc(h*z_Hn7rD}^= z3%+)k*6I4taDp*aCpX`Ua<*cah*G3fad~Q?SQ5G1dp+I3us+zAF>(8TqHOod<+7hv zjnPQ;VRdM*GLFoYYTBytMg?S!0^A|A!uMGif#Cx7WberKDxMZs#&m|F;lC?YO4_x(BiPU0vH!4 zamfoJK-LF&Q#xVG_9)Qhu9eLqx}`vH2|6YYlZrR<0apwgEj6yHR>{kpO+{R~8O!MO z{UD|i)0K>5JSY}N3=H3uvh^UvN1+$M7rYYQK7|SfHK{z?~OB@UcPp7v(9m? z@{Qv&HO)1%4FzZoQdqS>od6tfW3qz*aW9N8&7<;83iI73Tp6vH`n94C$SRP8VkkQF z;0$#p0l+rKYfa2+`GV5Onywa?Cv;p-sfpebpeOlI7rGu!r3z9Cq%5)*3Et;`UL5D^ zh`vX}3{JA3#C6bsuFT?hH|&HhJcI7o*Rw7i3Nw<<8ki^6Wy1uLbpWF}h(87jlH$!R zNf9y;Bxt7+k6G6+F96ysG34o#3qorx%t*0+c1D4ndN>*$=fe}u~@7C zWzKfTH~kmpa@yferuD7F+t-pgP9TfDdjt(lU3)m{NJW@4u!xJ%n}D!Rj_ zAXx=l{wf;4Gxc4Y-t=Y>=wRFtQS(Y8lU1>^%!vgT4_7N{R@4uT{@9y8_j1l3ym=#a zC#vN3mVL+e{2lui#>9M=djTgb3L01d1vy*zPSR)pee~;f(eHU0UH12(GlBe%%?RAq zta!p+IGAN)%_uMoII@YgdTvWkp&!;hA;EwGpw_CPl4(K9NX!9&=9pDvYT{%K4`c_= z+ZHg5pr@Dvk)5C(^$EE(+W^ffM&!+ByE(6SnziFa>NS!GJoFg)l57yPqR!m^sbrH5 z9_0QIfZN9adXPDP!$i?VKmgilXoYlOs(y|O)HnZ_=o9_cv){S?dq(3BbEp&gGiYT8 z`dcQ|1A!FAq($rM0|l$IvXvW`8|VZF%B@k_h~J?)mpEbci@&A&_TO^m$sY zVu4g6H7(XksHG#sE*aopMJJgiIX-MO@`ZNM!r!Xw_HVe<@%^`!hWFaQ+H=|!3L23Q zN|ysb8-zhFZln1D3c2j_VCn(TkqB~gaIce30Ms2GOhCv>2;us}pWvQ+05Y-{v#U35 zcsIJe**qkjN~Ua~BH0PO)WK(2!SggOcJsm-m#{_I+ruBgji9%ao=Mg@LQVwD$1(R7 zd0y5plH?Cpv;h+Z_2%0FGiv6fZJREA`pXp~r)=AN@0&%JX>M=(o{T;*wW^tasOOkw z-ow2^oEg_TIKRB)6un#y-H3q)NL@Py(Jym`}%Kjyjjz|1=oNWVydrHCGc*vBF6?g zr(iE^75CQbi|aRcU`xM`8LIAvJ>W395tj7+^K}5TrPv54^&!N~|2w4~du(F?XhQFb zK1D_@goYz__eD+X-G-1d{6IW*^|WdfJfJ~aLE49)82T)h=Qti-T#6Tq%aMMPu>MmVyf4;}& zfKFf*`86BfhA0u4Ik+uk6`>-@ftedv$Yem(yTE2cq$cS&cBAp&0ir#rLfilbLQkG%U_evYI<$S$z^Q;u zg8SO@DF}jNCNZg?4qrTwhzNT%b!QH4^o*(LIY>ZlGWsT_^$s0Vope?Ipk6`7So|>M z(<38nx1tJi+!9x>>!tKZ<<4+=t zFG#to(5(sM7&++BcOx4Jv5xM0nbV$WA##v|g>)G-4{tU!t|13gyzwitkv9Gp*t(n; zHjEGKwA!~oGw$husmREen%t{jUG28dM5xF}nCFuLG^7e|*TA^-m0$OgxiQV{zXoG! z=*<(kLe_Pyznn5)D-zkj3f6OudbC$l9z=*Uz`kjsLlI|{ zX2BDS$%doWjXNb%NKy~JF5*;p&4{5vnS)nR*JG1CfWc(^iU%4!W*!Hb779*QKQ>-@PWWa`wGz zKIW%aKjmYhse!1^=7n?#`~6?nq+g!Oa6T9@fn;iVTeIfW~6P z1QccwXy{0BxPVY*UlNLA&6j2vo+D#FmWnY!E6HJ2LX$bLmZTIzx3S)uN^1cWaw=9a zkBM=hVeUkJb@E9mZRL|nCO#>L4k7fIW-T{>K?%p!K8rUBVFaLs60pP*nYsgjz81Q1 z8w`c%FzRn_WnR@M(69CzkSP*^mA#%{x7Wkug^k&PHP33%`DPxIM_WzQ7^@QT+=MT+ z_Wftqi}s~tEWz7mZREA;{lk5KY|XZR)$=je;b!IhE9v1<3zHjZc~!`kBBU%w*F7WU$QpQY&YqxC!`IeI;J#-i zcOP2!wy#(#I!u%=Bw(Xbsp{we4_5s&si{P+UMh%~B8V|RFaf0cy_n3r8w^A5-SDvu z|JR0JgngHh>4b!j|8g5;41;`9|p4mWr(a( zrTmBKdJ2;~LE(*l8VP(kx)l`Y)TsfY$bUNbv9n`Ix}S6i|8D$CplO) zI`(9kyiyr2%+;f_Umkt{f5+g{&+c(NjEeJ5#j=Fyw*DvjPx0UM({VY&3z>~+j7b`) zpjHFtoNH9mn72RgvAZLd!k3jO(gG2bh(KtAfr6b1mGtGbPLz^REl_=6bOAQPb9K!2 z>#0b}fAGA|IWCn@F*ZF1piiV<62OKJz;4}wiAYwNf?I*5j>zyNrYC9fz+DXHlpZ5z zm44E1l&4RanXr!oo@yDtQQ*M_>=DJ_Hw>M!N&|u$=IhdoD*PAJ8`&G-qu5Wz%fK*C z;ng4`OYg~?9Bzw*c^*aAwl1gRQV!i&AZ7$&F-Wv(xkl_uh_yr)T{?N-2&xs6gCCg7 zjJcVJ=hS@J8ef>Xr4GhQ!_KN|sg#>b!I4l>W%PQK45UgV!#a5VRnWS{=9mJa7_^;) z?r6RpHH&j|yLKSW?>D0=+)lKj2#Tw>%M+2_y6(CT{|9-D*$cXPGxA1$&qek{&#HNK zx)kfwWdbiF@=EDKpFRuRoGJC?Vz03m~%Ol55qESpBqNmVi+3~Vf@WqE39fOSPZ zVT2p}Lio0iF*|`BO*Rhu2DnP}fwA34rtTYvH>YW42ND2Zm4zgf`AeS8DL?nHO5AAU#%Xd*%n*|w&qr~z!Ir?!`{PyDBK^w5|V z-iY*jukFO;I<6hW;H&E%wmYLo@|_uQ<5~>9{HGU>7G2(axKuYQ{xvW zFSXTPFApHPnJJs_S(3YXyH-UXNDqT))IWfO{C}v|V`>9sdafovbC5$wPAE2s9bp>S zLI6tXR%|NmE`Fi99rfYhEYn0Pon`hb9eyh3;SX?JT|eJ@=FH89;;7}tDIbJX4{V12 zEbAE{>7qGj@m~Gl4W~Xb+2bBcm2&g-lmp6jEV~t_Oqxc*@VqI#G_>86Uo3Nf@`7Ur z4x8qVu-IF^`kEaRlJo$f@}qT1_kgA7EWAZokff{k9r<=nSFLJjWibnEfZ~$pt4&PL zOBltjNTZnPAE{2v0_V3 zP<@O_f?_co1w2^gzJo?W^d+`)8pM-Oj{)spEW|+;#|cm!#e->G-!(Pc>rBa^cnZvn zcEuC5>-5feckdsggUtt|hYp33Hho~LNJ|m$o~Y7jkMZ{fIkboBg-JybGC?M#DIVZw z`9cmHC;c~jz@=19LQD+|YopUt0=sC0>A4v1g`(U(5Km|=d@HPa+9b$I`V0@Bfp_eW zO!cPr=|(!-cWqn0P7}R~jjwh}ObO!D_n?Oh-kQtcr6sgoqUjQaLVU6DibFG=xV9-U zjELDF3lt*WFF9hqfD7-xPp-O>dXl)~wc@NSnt9($=kc9c55<=;v)@5fHL+noBK7+= zJPL$v#OH&EJE_^R5+Fnw+XG7ik2Wz~5cs6#fVwgZ(O0TX38qkzU#1)wL)xJ_BHpCe zn1j@iX(KNO5gU>y&~NC3Wk-foAZ~1i5;6cNFx*&-M)Tc?w(CLJ;qIiFty%q=+GCKe z!i?@Aqm_&&X^QLMGJ+0=pCHGgZ~!g@1gLC}ZIo-GI6XPD!%244QJX^f6!sJeG8)!5)!d&}mJCi8Z!1TO*wCpk!oMv|YBj zYu8Q3m+ReX<>fn19>4na>1+g;5R9z-HuU1zA2iaj>iTtnWM@?!1m@s&kwVAzMXfjL zL^-zrMF82eQ_gFGqCn|W(++XXu!ZJP;Gz9{*y;`ZaeKqne=OqTyt%^;zz3R z+oUb|TcuojXQ6C~I5jR1)nN5jcD~-S{AxW9oiT46`Y7!XH z`!2P5B;RvPuCX*E_Jj4qqR?L}nPMzw0=aUb<(aO|RchP!-!{^lo0@B&P9bSCB2Np{ zU(!@NBy=080xX#s^hB4+t^pd|bFRPEyZV;>I}c1i>MXldn_k>K+BlYTuJcid<_^qbj=^nQbyV#&fvBHP=W|LWy&_ zNcITBMIrBoiBuEq=__r`WH*b6HAzTFNph;fd(iFx^yJ^wQ>BHaBm4JGPqu7pV#^Ju zerd<V5_w1)}%6ieqObwOrb`_^v$%HXSP$yW4i%+MPMGOOozgbW>m(=a+e> zS~fi3_LmAew6LDFH7f(%ZfOCLjCzuVPYKcAf&LhVWZn{%%yw=?Js89*6g^j zBno!kLqk5U%LriJa@?QZcJ$yO6T2V?rkh&$QYCDiwg^2bVs|b zZqr+)c&9|k{v=-d3XalMK;8lRH5}$O5(JZx0*VK_GUnMrkP`QS{vz7v0j}uO+zh5H zN@RHinrDYV@?}hS9C**daseKy9gQxX28C>R&wXHr;`He*$YitldV$HAHN(*bF<%2( z5m>dn*@=Z08IMZ`56J{oJwDQ1*tDZq?v2b9#fN-&$Z&s8Uke+e@)C%!1u3&_E6Bm& zjDZ?GXS_-mf&6Ta7P6CPzkbsRJs>s9ILZD}_%O~-8a`Em;xy0*WEt6JlBNw3R|hRv zgqa3tXjDCLP4o~MX8fpCUs{S&Z@uZZSKWMY&)BG+FI_cr@812_oY{5wF9P&xY+P0V zZ=gf;_lzT<&#Oj5m9D=Y#ZR3JZhOJ4k2E_T2y6}?{Os}5SIuk$g+OuJUhY$3!;udk z{%~M}A6*$K?|?@F%Uw!G=+$y;A{-8IK7XYa@>x88Ka>35GH=N~vKaIt5*E{JS1==H$& zSCP&Jj`;lC-2Azh^^W5oTH06uWwb`WJucR1VD`C>NYVR1?yYrb7r}k~_Zl9id`h|y2+;G*QV&rl? zpgzIHp#F71cK2-cy34#!0k3^FU9+;wn~Y~L4|Dx-5Zx&HUC9r+gWr2}VYcIXy@~C& z+IVxr{{MbJeV~kTP^3xK=shU8XWnD*`K>w2ukBGvF;hFos zuwA$Y*}7BEEzFBe*m+2Y;9DYflFUqyWa5TE8w!UE)eJ!KP|HPQ<_yjv`-vw2$+(wT zF(8H~jt%wczA2NcRZ3NKN@~UY!Ad<)Wbd|HY$ZhVqb8fxs$LW-6>L@y2D*ei`f;OD zRJb0-A+|X|R4Ak>a8tbLn|tQx`EPd1Im?ig(aq(N9N?wAhLd?vIfNOQJRmS>o+gXg z2<}y{&~41EJqpBI0IJEK{xqWO@Z?F5&D;84(ypV3nD$XPH(S6yWasy9g@;j7Z6yeq zgV_aGYI4z;_fFuv7+C@2D+RJ_MUW;OR8;A*S&tD|py1aUP)qtf4t7oH4pw)CKvLRT~0hTf%tRzd2$fTQ`Gmu%x`+M^EB-ILC@T@uDD&oT|aqf0*m^N$c|@5DFtFh4MVV9&a^j`su6*d zNKshI7P9=$EF3ZPjGJps%P+aT=Ay);Gf025 zJN3Nh2~il~%MMg6la1O^z8uELINj%@Iyu_;LJR^{zX)y=yIZJ>hz7;`1f!H12#maU zX0F%hQBXB=g#Ve@X4!QlFb)rtU141ky*xiCG*3{DTKjf z$_p_Uojqo&ScZiy+vdc-rrxi?GGeI(@-vddOH0q3N3`lg_$m}|L%9u3?mRL}nXnC_ z85}quTWT7wqZ0^#*!L-kM2rFwZzvJB?@t%eu>c+5H(Co>!}Ti7X*#!KRqQ;Ddb2c? zk36_R*wB}>Z)U#N$$-HAm*JW#f*>0OOSn(Gm`rDJtYtD{-?KLB4%e9M>dp9B;A5@oO`iNucOK#G#}VCNO`!I4Cc&6Ma60aiAV3U+lUMJWt!ti%!X z5K~6<4>`!K1}4BAoGql%l8cXKSW`DR>i!xDt*4$5T+9eR@r0&0{m%%psv6wB{#T$w z6s^c*AO0`^Je`QMrKca4OiljylOjxqV)6Nu{NWFCTfLkCV0lGvyy;1J%8Fj<|B=Z* zE<%PpMcj5%^v~=i04GD>w}jI8I1`H}-^dhz+W(|%+kBV53sfVn*#9iFp?K}p@w-J6eunYL zBM*P*>}#EnvqkPeXwYjdF6HTh{NacDKd9Gw(I+hcPRsuXIwq$ zM+Ry~0>gAea#0A$asP6nNN5}+p4rTkzr?6$$;m~R$gjWSQ@6yhy{)m){a4-b$S;m{ zEm$M7*?jkY22a?V*;OxK^##rUe4v4y5u6FVomT;qRra5@gqB!4xqs)KZ+m8XG7bfC zZrk!5i|<>wd2!?NZvi4u;C^E75<++$2!ocMMj4R%iMLT3xQS>A=Nf#L#2;0`R0H$V zLGzj1649rBnfT+P<|%bZdxYO(!|d1@wi`)BX}vE6$sWkC!P zoaSe)omt9qi@ZCk4nxk@Bsg4irs1wJ*@O3*lA+R|@7X3LG6@Hlx#5F&t4Tx13Kj!e?Dsx? z-A#Z+#-1qcdLdn(-gxTyhi_lplqWKuM(YE6U;+ho`*sv`_|Wn^ISjP4O|;!v8=7y| zE|luBkhxTb8r8SEJ9)L z{m=l-4Vw8Sv)DI*iYNoAn3f!9KQK^4dgiC+K%MrMsR z7^^^=2{T0(L|aU|%RF}Kyo5K#o=RfO9CY$jasBw;Kpc`gaH4C~8yciRh{8(vvNs)#G3uHLeAD!lE3Koyl9dqQ(; z*%A-578U@VVLR%Rk4d@)QoPPY1?^y7Y^JD1TCZfUJy{(1OvCd#f9dl}=Yh4N`lvdQ zwHsVMl}j#uaQB%GM=00DvdSOl_*z@ZqX`j!+kmf@%}X6w$Zfb=m7Uu}xY?Oq-Bk=Lkh!L<+`^MTg6l{y60z+x=|EZK z;U?aHV0SS)IJgThzv*SSEe^JD6WaBm1C2eSW7Rx`189-Os?zu(Y)cI4vf*|qVQP)=0aIjk+5M5Ka|E>K{W-qjdFyw2SRcVk49?uZ0wJOS4#Xg)0eJP?JgBTlr%|Ac z8_7AMXe<|VJ3(+of8r4!7hm2wZCXtpsl@_)<>?X5>Oj$E3R&Q&N2Vn!<7F$|?y6IB zjtndhAPZ-+S7N%>r;)&H4*o}@HoI+sccn@s)LJ!O_QG7HUg@Dm!o8uRp>YFTs>8J! z%GTCFR*fW`=_k7S3uttrQ3fX-xm_&jNv9s#3~44>D}j;^d5(D{v}DBf1Wj;xapJ+& zh@cPCAC+s$H4HRsSB<3$Dby0~QZ%IA0-%#BXcz!&vULUW^Mw$ZZGZWUF`kVxxe2Lp zPeU4AG(D^B1G7SRq^Be+0E3&&AHPPl2xOk*W~c*c8uJRYAX)fzVuKXa4CNd!WB}PX zUs8t4aB+R;Qo9CaMbvUZ;`32pw2^y=M@TfZ>9wM9dBrG$t#pOn#8Cm5s=pq&6vD

D#%QJvDHolBvB<(YXnL^rbZ1SpanoS~%wr(P+Cs+WcU>P_4;10}PuQ%O8=M=-fyWe-xCnz7WTvLQ2n0;3`kIK9d zcMi;};HcoovjnLi!)=kYb4~fcPu+9y$KP|+Z_0s?dG{yayMj{hv4;Wg3{k-t?vr;h z5*zUJqH^MmzvT1`Fl(TjSM59H#l|)iF!?&n7}I6ZjdJ1amUwMsCKNA8tJ32@#K4s! z^kjs0tZLxlqUj~fZ9kKWZ@=-(gLhrE2a~zzAj%fEYo3eZc$}u4MyxU~KGqCFb67&%xt2_@1m*s(W_c9lS7j*|xpSHu$eK z@6^#F+)-Ta0mF(j%L{4y< z21gcMoK!r(ZQ!yZP`)Z(h}sq(3A)%*HaZVD1jx8Lg*)*6_a#vKa~Z} zzvcns&Blye+5wc2FPQ;K+hv~bjgjLDs;(7({C}X{HHKWs@13=qA4d;}@u^RGikcH+ZYMB5R=(fxTwSyJ z{n*+Lx(o2Vmy71cUM!Xv&`F|MwNg>! zkMlzLO7`XgrthmMn049%6aNJ%@Lt=llZ zsQL1hozx3R1HkKyh!yUSazd$wspNC?5{jBvA_MELd5wLUWrmgJjp)QsJoa3!e4WiH z)(lqx?VJ{g)#7tsfK@AW6wD#8=DLo-*p*dS>o;HZocv~V6H;!7JS{p4L${eaEN~Pk z!n*7c*tD|uSb>?26P0`b2-1;A9Orb#@Fg*ai0WCo&A52v#k@?@__9%%q5$gacLUmp z34cry=TcJj>ejQ8WQO0*?Q4*z$J9ZUI21RN=X$QDqjf z5@=~Ko?=RK>DW~rC6wl#!`=hObVs|}=uC8XAPMo&qa5Igijr{mh^RVU4WggKjl&pv z8$}hXS|Euou;u4vMRCNLC}2VW#sHU$z;XC1LTh?HD%R`F;KegBe9COrPnGhNCZ*YO z7(Iy*3%uR11q{Tlv49s(xGYa(Gg28ap3y4?2{iQ>M!#tyT)h9SvFI5IW0gy>GR0AJ z&4igu{Zf~}OCEY+xLgSRsy|IZGGw48e@*2NtE@YhI&9DWoHn`<86FOJ7ymS@RP117 ziJ>#yn;Fz8o^)6TZ}O_-9X5|D+<1RnYUguZTg-PzB~(ca2NI^S}9VHTlnnfw9ZCEL=u9jXD}2# zj&V`AQp*`@f6c5-OW6pcHVOl24C*O)&X8rMU?V?V$gD zwLD?z_DX%i_txzR^N}xwVZBH> z*5&7tZft4oZmq3FXexlq4hEO1M6BJvd}4KmJu}!pcDB}RAWCMG-DF1%mL~aa3+E>} z(TkNJ*6ye57w5G#8~W!-?IB+r)*i}vQKQqwIiP@FC|{`Pu=X4-Uiuu;k|aw&8g_l*p@xqAiylG+HRE<$k-~HU z%`&Jvw2-V*(V}z7E#)P{7e4ZMiumqU3lHy)1Vsi(*y?xBW71*$`8#+2P}XJj2HHWK zIm9{SA`YSjmcC%!6T`B@r8W)#he^pH$uq8$9N^xK8q`ltRfkJ&)z^jag}YsbBAcx)OBWq-KVN-3yf+zNYX;)Xp+BP%L*yOLmr^?zKwcUoKj4 zV0*JLqMZGhIHmo^TiC(-wp@C|iP%Pxu zU8c^kcB`2FU!ya}&nqzS%^>3auypbIg6E^Yuzvf_QKw%O&Z{hhp=Qj+8RX?JQCJ{9 zH?es+cs{2uyE5w>{gsLWxdiJ<3h)HT-Iv!@6fU(Y>WZs7C?#BDVD2do*+ne@1D_Sk zbThdY^MTgni!Zq*Uz68HJS#PXm)U3yLCYEy5iklE*Q~NwCaGlW5aP9{M0;VB`HG)fS@tbccwtYM*(9p^ zpgMSNg&?^P*r7TlJdaH-N@ilf;_oa;o^SW_3ET0&y9n4zlX8)UWWAZ~zn4C2(q zZxBZ~s|;uX7zM$+>%=Jgom&_f8xxd>T{fAo{-5^$t27SCW2owMepK|hA8idVnOU9u z4I=R#RtKzd1r4&OuC}}zj+y5c2lnq1P###_=REaWJ*$(uCXN}@1uiMRt7nz+GrlIQ zsR>+KZr2}ABqLDhKBpcqv`H-TTyq-Fx7Ft>pB{^N*46_OUpR53)?U-Owt4lESfNsA zPV-JX8kPg%wmspdzz;8!*I(Z`ws`&J4a)(-=EDMN*I`l(2rHtuH(fKi&GRdH*P#yD zeYt%bM4z~Fd3_OJy&pLYLkGdz`O0=s1aJb!HAQ)~1aPX}SSbOlztVG!%hy=?{|^cP z>(+GCzE*PoBC3{&3z=m9SI=Yt{JHDSWU{5JM{*dMqO6gW>*%n;nP&_0#d#;hY^L+OU zTD??=ngzP>FP{D%1SJ>Ul2tc|?B8*^r~*&~;Ly{5a03SE|I54c>zto~3EVykvUbN>k|k-Yx1x#Cqza?zarP{-~9v(jayd!1>ad_MUFl+#ZfzBTSG?jI!e zul&*pbHoc>YW+fwkk-v7PHs}y%CfxDYWD1W#k)4Pp?p4?>wFu-L(Bsdaw7z=^7Xri zC9PpyXJ}UkJ|MG{bhgj8t3wZ$^$5b{g$-paV$=u8JR}tMpy?pzm(CFm4m2|Qrz&Bj zhJKxJ9utw&Fqmbo@ycvpP7-6FExg_eOQq4=mKeKol;XK8Xeko^#D& zpk*@6LOu&W5CyzJY@6S(6<#l^={_r2r=$|yE}Yb-M<}WPEVdj8{c0x1@zp9XERU?u z=qIUtL!Mi|3YXn^UertF_SneCWOqBP;7U6GjUD9m?V`LcpHK1ZR`85pTK0!A4!<^! zKQL{qj@e7Xot1R{rPtukta{}bi(&_ve3&w|2HYHuzn9`2Wb-c{>-@n~HZ7!c-IZ2Y z_1HvFSHwW~eewR&IbU%Q_9W?i*7`Qs|Mv?La7QN5-F`Rvm+ADvtw;g^NIwLh+zUhl zy%_)EbmLKG>=~3YpwlSIqXq>zc^)>M-h(<8*wZLmL^Tc`Wo|qdsJ)PiLG_FyZc@Y-d{`&)0kf;5z=-i>hK76B#Gq?O2q`E?@AS&x6AOQyI0C>85mB zmTaq}huBWt5Y@9kqKb_=y&c?VPVSTUHZjb~mrZ!8_1#g-Yi>&#JNxtm|IzfMX{lmt zd$t?;H65QHVT#XtR7MrOC|~bn(_t1F zqyW=4ny#9^BwFciKC0h*svtVu*rE$=#l6Kw6x1}B7{>dILek3^cAXEo zYavtkybX5%CHc+3*Cm|fYLie5fl@b*c_GGGgC%2Yjlsp<96dstGtaP)SU)pq8^)D{ zF?cLC{$YqnOgS-}SJuG^{Y;y%nGY z{4<$KI$cety`rsFOOD#jTInbRD0V>)qNq(MsRGc$G;~Ph9dO=+lKdLP(~6zp6h$w7 zwSc)+4tR2ks9IS{_!Pd1bE9yn{Ml~>HN`c{Y3!fpRTRK(qyhW_xFM?wFbl06T7Js5 zeO|80ZwrJr>PFF-BI;uOV*Va3;R8Yfu z8`D)~^z6TkDxG=C2XB1}M2)7X_*xNQ>wpm#C;zvu7-%U(Crw2YEsPRQf=kjqhAzHx zLqlINxSw<`gSn+L|N9VTeW|Vd@k0}sK@lpbys>zLdqNxC^qWL;0_>`{1+Eo+-T=iU z*YONRewOgIK#Na%;B&1@xYk zwSy=^(Rc&Jk_<&AX^NG_!%ERYF#@Q>34z>JCGt#Y1{HAAC^zE>5KdK!G8t&SND4y) z;DNU%Fsmk%9(@*Ti(g&Pb`ET&Xm!iCm9euw993!y6l-n0%K;3#WC7S&$rsQdf?iur zb(IP35wIU&a#Abg6anzOW-by0!$f@=>LBgQn)OF+$<+cuk>Zp(?g1VePmUtRQ(U&p zS}|Jzi{1%KtY-_4sp!g|YJiQ^_)_CesR-n2AU~?$Pb3VKq0H`JTIdZc>wYPj z#qvVWGm%Y}lKMGFC$YN~!d|1L#&SaK_psLVX0#i$6I_#uQ*8JErGrF-&sp?~O7UH& z#hacXmoOK@adUPD1L2Zvxxh^1;xu=M)4_b3?|>GIOJ__>>N^O)3pzjZYpO9G8orSY zicGA%DAEJTxwK?|6Wq0;l=*yU0Wet&GrKJ%P`==TmJu!cZZ3oA97he5&toXgvFHiq ziYb7YBK3vPvcleuaeRKIg@MTM)h*KepMJqhZkrvg=TkQ7)@V1=+i*$^BULT<+Yat~V0JN^v8#>R7-=w4f8>@mNP~*ZDMx* z(Eh8BZQotfL$4z6wwtSVXEyHScG>9#9azWE?m(&H{0Y-+cE^_5l_2fPP7#(ww4&0; z?C4~#Gm+Pgj{@nvF_C`%`$dz^=fz+@+$G$ZyJY$>J7v9|-1FSgmz z%8RI+)I0|vf8cV_=B|0|>TB2sfwbV`PyFMal&$ctPQ(L9nRt5s?9rm`VE!Ik4DD5~ za1T8SY*yYjs=6)a`oE01I>0rXewuT#Ae(h_u?dJ(-v%dX$4zJ59Kkd$(o4W#4F9Io zZ)Yk&1@~IueU|kg>$vG+C0lTZuagSg@2vR<{%K~bB)A3rmliZknPP|v1l4*3-YC7q z9hm@U7a!&i_iy1I8gWz!sD3&SsO(yNoGR~PTy?;jtjmrCTg4;L0mm8OGbIPbEPB2o z19wBy!d7X<(j*`Es-Ta-uojrdd{sl71Sz2x!YKNCTon?U0%|FJ0I9|#C$OF2FTM(X zGFfv1=fjD^+zWP!ZUbrp+A@Lez^S5r!?R|9&p{z1^ME4&(7+3xPUgDN_LcPg(SgK` zh7DMa8*e}_!FJLOlLmjmA&c0qm2s@FO``6XMm9BerYS8h9sa*TX2!*FcXEq2ZOdDF z7-rNo30O0OM3xAi0Ni1xdRurURjrKG#|kwV6$TXwaEcdg-+f=F3u;$Ar3**6(A!wC zQvTCH$_i4AsMILeM)g0|7mxP8D0>1Q%`YsE&*T)FzlH<&Impe#p=T$uKUMA;S#eY4 z&ce=}5ihu=3H{h8Z#!j}^Gh2Kg7FoLNDC`G1l(_|D44vdd|UznE-o6{h>0sq^=xZ~ z)|c6hK@GLpO8O*|<)VL?%(L<{(|@%1wOO{DSYFy1c7Ebi4X$$Xbgc2OkL7c^7qsgXw_Qrx@6PFd!z&UnLwkvK)}X*`l{mBg^!Jetervqzil5KA1#DGWxO(sVD^XjFQ! zqO}@lDu4x+PaOr-dbNDG1P)*r6_VHQ3p*Lk4sx{@z}cZyNp37Fj#Ys?mISs?^Oy_7 zFSrk6#dAX;roXXlEP|+274A*BsE*monKckQZo65^hn~r)R@s+q4|J14%y}M!PqmBQ zaU(!jh9%`p$B)whY;a0EAC`7jWiOR|!S=oUH^<63^o^h!syFJaa?r2^uI7j1B@LVrQyg8!xDO_a5fS#V|Ml>sCoHdE?}9< z7|ndoG|chosZl2wFZSQOFY;pL#LjK|K-^rJJN8P`iMKxg#O|C?uuZvE zkgvrilP~cdp@do2gNQj^j$OxBrVGFqr|^;eLa64$*qo4Z38jQRZ7}wiXd7y1Euk?t zQ9iI;%~`~JxNCZFSF=WeJ>61a@(#3y0OQo`kT2{lM?f<6%~X4ON^%OI_!Oa_-LFVt7^KZYKjV2qJgr}d!~WH7|=fhkL}vX}{^6ZVDr zBbWzP<9-lO(G)}89^9_bPlI)$7}REgO$>&T%xJ4sEZ5U{iPI~2L&rDdm0)UOVd(@$ z&(t8QwtB@1av-{dA%C06LgM%gke5i6kbg=#o&q=~Um#p&$|pI65?y~HTC5qCEGeBo z)-KK}>M(_qR;PJ;Z=n)y%pAw<)=T*Vl^Wn; z__G zYbIq1Q(*4dvyfA}xs2+04L{}1?b@}i|2tY7%>q;?43^S4B%H~-B{^2oI}7MHJp^wN zc!~) zNUSnjFm|*7GSQVJ4SRjH3`%*~Y}FP6IC|2SQG@e99cE2D^xq&Nyq?R9W41$0$6Lzg zi=dqake6t=?&o;+)lH8~wW_%kf+3Ja!qX;9UI2<1 zGaR3)9@M}3o9g%>#6&5q2yFz&mnhW|HkNhnA+ud7lzHx7K@}W%PP@3|7XXkAu&g+x zoyH`&YLU|dj$jxK6&&=Y;#q0O@NLy8c(lH3kr{qW1u{pSYjm#25obaNJ)V~sEi*VkUCwHHArB~4VU%rVQb3vD=-bm?e-nCri_xr_;Upq}fuYHjE~UhXv| zW3rc^ucNS6GQ+vh%A-Jmx`#GhRd?vEZOJS88}!;7HRy1X*2x15(p%*2TJW$wJl^Rz<(pLtFQ$iIhzZ-N-~zQ z3AsU%zS{p3@4FXkpYv^5^LHpyUv~*4ppZxy*M%tV&IiMEq8%Ug~Sj z`sA14`}F@y=8|9OfD)elA^R%)*0tZIyHMLO$-0%qU)Av9lGsrWev} zJ~Wdj@`7Py?Yyt|eRd7%cm+@Y(PjpXQ1@XGFxRwzzEV#0Ek zQ@|Kzl0jh(gYkhLV$w82P*rqVSZ0!*gs`Pq`-tTIcV7ZTeyIGT5{4%C87cU#CxJ~w zN#FBhQYtX}U)QcSroj3Q!4^4vwuZ}?&ITy!%UigwjBG*GhL^K>c6lqysCcbvD(70#w$Gie>Oy4zv9@iLM`t&!MFhb3e>XsMF*qH|N+un4ru*A8SNf!vRfG)a^%OO^n99gP_S)sDdy zkb&dTA->xtoE)N^n8E!dP|R%@t|Qt+v6AFRu)Z<|_?4imkgHv-Rcl`pXGZoHbk5NN zFm-_%SusDejNF}M`rPX!&99iJZ|Yf;nf(kVcx;p~`k&yG>E<%PCb_sI^Y)B=>c+@M za}E|*YjB^9yo{3EtG7^K;>B_rFogbcYnp@&_~n{k!h1p64xSb|=`AUnw#e$;cna?a zv>>mbn8*H=iDD(jS6aftNv2o2@nF$N{pXe(Bzh#Y;H ze~*l0&{4t3&xuC=aYJnMu=u<(-w+M%v>~?gSf#bsMQ6+gp4oOfVKWuz4_pkjP|wAr ze3=;F&b7V}Qx&W(GXw&ZDv&6wK=~u$6#q*4CV_JHP9^fKpI2`<`q~<@(Zv|0q~v?_ zAJLmV1>*0PZnZPKnCFgh$JmSHvoFCJfd@%zfiv>!v<#}3ACruml2zcfUW5ISO?Ug- z`GOnToEFgY*PMY8@cK@mHbqx7H~}Q%WIu3mH3i>vg<*wR&cw@0bRaH_3@KhpSDn0W zklLUZkt$)`{)x?{aWFPBgqLAm2zjAa{i=Q~9f1rIO4w51lc_*OezJ_b0dkyrGLRjQCs&ZHWAq7rEVh8Vl+|)Kue;X4Mrd3H! z=q%tiP`xdI%_k)q11(k5R8{1$<_S{Z{2aq4o#3l~Cl@1Xq6p9)Pn(_?j6}7f8LYtl zYBgOpfT=IUU?53PEa>To&{l;o*VPw$iP?dqG}oFdQlT6|D0#G$6XYN>rstwtkH!_p zsAW;=A#+xoQZd3`%%S#2hdsHr#O}=E+QyC>j1E038BcsDJiNK3D2&#@^!$k5KOt4zKvj{K zR=8v0+z3wZ#|*JLWsv<8wUHdSJIv-ipHb-P$$Oxm! zoHgVOCyUw7mE6sjGBLm#MDF+rK~-Jwa|kCeGB{D?EzM}ODS07s$4(9(J9&&i=qCgu zCtA>yPYYIzKT>nMV3(6lm90CZ`l5k1gwLukHKiSZPFQ^?N_So6{SW0FDJo~f6zLKM zVNFFn6rLvt#u7Kmi<6a{8Tg`!jz@eATlhBBcgv7bwNkj1ht=gh^VLEiPMRtTvnA9_QHzH>s=|_jjyu1Ise93?WdLN6uN2=8`S|R=GHl zXAh(;Bni=;fn5+6N0d91k;QX1K%8!vh4!e80XZ~;oWSz0$}63%68ZL!*FMOrmmhGkTHO+~v|Q<^}UWFDOBW@P#yb5zOj1 z`JQ&ImUbKSB1p6#U4Ef|^)L!-B1^@~3y9@d+=Z7yk!69tz~VJ=zTu{8UY-InWdywy zx;2t1TrkiRjj1vV^hhzm16KFW`q^>=i~*dy(9++d71OQ$%Y7p2;i;Znd^7ftusB&N?iCMgB5e;sn^$~eigJ#YOD&U+ExhS6%g`Q?)t6{NL z>(un+srVP9Ag+BM7nM~3O{7iD! z@Q}sfpw>!3;cRUdBp39OgeHldLs}tPBQoMED0EmP)WxyN$x%fvkUfnWp$0oa&Qt;k z!Tq)#^#5L$kwS&&S(QSoUY_1-3daSr)4X+TBBLY44ZJ-}LHvE7A3xszNkz{psto}| zAqM2EBqUP4M2n65OppUX*?1V6Hurgq@!~$skLpq2q)MPk@thW7E_xl3Fa~-DxNBpe zMJk4v>NhZW+|45$D66|>0O(h#1g^SJEt^q#$~WA0;kLKLB4B1@K*rzQ>GZz^&MiT9 zgw#ZKGF9xR+cBCDkhypKvBmKkNY;gFx!Rq2o|2JM<#M++n)f6jDt5OX&Y6bciP3m= zJo2;MIWV{Y&MMK%KLr~|D4WApjd+@wJVH=Ojy zvwrr~bpw1E#IRCU%udyan zz2Fv$sFBrEwQ^=`*`HP|AC93B*0uOc?*?fN%>|H+!&!R}d|rD8XN?#q*f%9*hKVm0 zIi|>_)RHXUpk#{-V4~+J~PH|N; zl_vGD+y-kBr#hHjzFsW@keDkJ6&A9jQ2^>ZihMI|43d|CM7`|?0V?z=#r zkskQzpMC(7RW|$knjzPaiiH6SX-9ZZF3ChrafYUmWU8kx@}5tZ71?f`El@-q??aErg&j9 zbe`sI&JgxOT7yhg=TO?PeGr>mbFBXloQ0C8R&8_eIZP`M=o8XzkP=5*qKM?Cp`+`E zYqvwgS+_>pp8Xn;J&%_->ZxQxF~U8o71)^ayjcAQ#XyxGh&liKEU)x+45&{v1G*sQ zJO7`rK<V$`#1^PckG5B?y5@o(B>I)V!*L zr-C?%_QL5AtIuxl|AN6&xD(T&BcXxnmYcUuq9nipH;TB5h5*_CsK9@u2ZnNS=2^$~ks*PStU`dvekQO`g%rC`$-MBoQQ$BoPe41_w-Z0t8rq z5w7Hr9UF*_|QFnFqsdM)K z|2uyB+W=8)iB5Y9+hdi+;<|{nx3Wvt(pp>>#r8TqaNE}P0L~AKN=P;0xZuz+B^hZ2 zvW-a6(2%m|TbM-D(6*u~ml*MdnBACkJ7uI+>9)7Fm%h4_&60ce3zWM4$Yec71;LwwG8^IOEL+K<#4YVMQe#(HAzwKn5d zKA;3aIcA(bvysvG=327u6Jm&b(R#A(wYC&}XIr(U*dI}HnQe>9sk@J5PrQx9lX{b|0 zdZg!1pl|sF$RM&YI4Pu0ktZQ-%0fgcbje#f5lLoUYz!#ujvWY+5!W2%C|vgRoBIpj zB$FcYZ(BYTO&?GXEx&C&*Ie(JAKCgdN7e)*KUkBo@2N-m!)P{CfGp zwJNP~M?O@&MJ$zTc8W zlWRy=BNp*f2wyPBg;9T8K_f2tKq9+|@65`OUZF5i!DZsZ>_@V;bi9#fa}*${@dd8Q1w*3wa&hQJ4Na?gEH!z3Y7* z>da_v6}e-Q=Seo;gX^fz*UE={=_})}P5nd2hhaHTNMTcadrasQ$+DzBmDh$@Zh~BD z0F1ZfHSS0vSE-n)<$_r)>ByRc>Atd?yVa~ zmY(}ypn|UWbFH*$q7tTM`ag#kC^X}CD;VU6lAo*>A9$dMWGhRpt;%eKIAOMW(yq`( zYx>|BSIXtudUNM;)#OnN{3@NgR9GjAYkQXK%^KRk*D$NQpmSIgcMYNI>1umrlMK}r zPrX9;g{?wfz}5KHFFQ}0W~i>T{X<2^>PMR4N&@z^N9vkMs;k+1&Bj>miDXPH1y^Te zU%N*rzr(;T*Pq#dv>+DvpZKO1a1qcS1}X|jXoA^Rg3@G{pG8oMMWnYeF}Ic``rC4K z21!0*Xy3XoPGipgLh?-;^HhAz=F?$qHY3YzHesks)V?Z*A)32<75%cwo{2niRJ(im zoCr8f@%R?fIoo6msS*rXiLne0Vi3dCFFzZb#~t6`klK_x9}dtOqlW6~pF6Fhf=<54 z>hq1D1M`Kf^X1+#c_xv`i4xfam1graSbBHs?%djQ!FXWMx{Ap|SakZ|3JZ*s-|cyvw6qROo$jlW!e*9znrfjnH8@;Ka}t1!sR=$1KsPF$ssU%S_C+q&$o zqJg83ekCK`C7EG>q8AY5uUaC;ctyN3XmRM$%Wt0y6m&dTm^ixCpntt#>N&z_j1IbN z^OBk)Z2RTs5wpNvfZkny9@p6BO*m>USH+udtu+U7oyEQ?Y0Z_wy2iFzFRWE7epMEm z^|957z8}Y~x;9t+k07lpi0jp{72^6Wp1&&uwF!&;dOc5=fGyhdRlNmcMrmj0CrU%h zIA&A$5y%blmzjUOg{oXvOBuE5*)kaJO{*FQ4&izjBiW7CcbE)%v;4|j> zW6!;|ZUYEZ7{ncP?}lL>de3q{I7N!=vlw8R9w)+NB*u#@ZAPEgC>Ot5n>BmA%nG_; z4DLJTz&5(*QcLfECqf*qpv}n{?R*g>PfZAdx&+9c%YD!tn8o&A{k*5qZxcP6yGC-+ zLqS(o8s+b-^aAmHdW0?;DN|d|%;!7&lj!F$I^Q)KbA(Ku2daT4JfiFk7k5Q|=P-vn z`i!-!LkTUc&39Xi1Vmdxt$h76oE7K#_0Q_fd8B7>@AwwC&Xzn{cj|d4Uv}@Ny&yIvtkm?9t*^d{6LeZd{3-Pk29W5h?@_w<@G*m&0w4zwD00GzI<$($}Z zhPFcd^%CX3C|qX%5{lUI4W2AgLKLO&f1O00#4-Q$-9zY~gIgN~8Yr3@=v3zTH0nti zs{BjaS{nDOS_a(xdgmkJ9XJ0UdNDH!Jg?HkR_wf0ujVHy!K3HHV)7PvdVH;37{r82 zE#)ejzHinSMKj}zx{|4EPhi$%Ult!AJGN2se{g%OUJ{&)rgU{dtlNb(iokOt~oIB!I`VA!G71G z(QLAoz4&A#^?%>=V1V+%jM2ex<3{4^y@TP}@z}*R2V>^o)db%88_FqQ^>JoM!k6o* zC$}Kmt?Matl0gBn{BoV)8JUvm>0sz6phf>zX(nzb=z`r>47j3`_rM>PpHL+|)cE?+ zfI-AOnwtDyqmBMp5F`hm3x$}*kly?__#1eIYb*|!9tb2vPuGa2N`^1>Pr_S;JWysg z_uT{bkXQ9RgVjL%G7$knNk6b=X~NdR_C|gdbGFz&Ot-^)z)GUwo@{0GH8mE2nwhES z8jRrxZMsMoiPTPA>Gog8!!{Zq0VKdB*l($QrOkY`j}*qi868_{%Ldx&QanFeZS?1T zPX#^#F}`A9UcFaLjpxY?*|n`y^tah5uaLD>Qxj;sD-eeP=-JR??dSVPDWaU&eSYS!_m^}lRxS9`c91|G}1HcC*$GW5pDOb!`WCCIf}N)aqk6|?Go+NmVuR3Y&JVm$P9!#12_V!9CcZjckC zT20{NUOeB9J7{f3ek7)G|2FaX)JzG?FL%x_LbYeY%=UR-woL)Z;ZS!=$>H6yk~eFu zfdc3X1FujXO8MY#4RQ@XE{6N7%@jt3e$)|iWuH$LoiGG~RnXF)!_qNAS4b3+ypYEt z#o}HDy(N3(YDExz>=EXdQVjABz~c_~CHtCKgEk!#9F(ZFnH>ivR2JBGLDY!}ufqM8 zJ^KzV?&%-lP8>XZ+ub*x-MwRU3i839cobq;(|W&+xW~IDZYq4llHwI!x6#(>BAzz9fBuS=RWtQb9V!w{^1Wv z)@0kmI3_rTHynT7eo#27mg~z(VCh2V_d9=}CgV14^vRRl_QC;H9{QFo^g0M&13B0C+MVt#FG1_9@Oho!!MqnRmUc7J9GDKpIX`( zj|K624&HED0l^liyAJ2TxRuoo9aCjZ^06Sq@i}$t`M{~Uqm##Cmrmd9g-ahmGahGgb`DVfOpy~14WJ|XM*)DkE zQvzJC{APjmvjBdJH{VprsGt=qm@0po2XnnUqTn;DvdokTgZm1`Hi zr*)@++~K}y7p5lm&g>o-;f3=@j^BCwJDHRdE-OMXEjPC1LH z7E3V#f6ayFgtMYsN6oojL&F1xkZhblc~%H4>ArKW_Bzp4E51BEd&?bY10Ww|ZN6vX zn)e9`IXYHbx>2ChpOk3jBbRG8-OTQk?z4Bs*?nH)j1%My zVK~tmk&YSRujh!g6F&u{gNL!RB!J&eOnv(B$$ z<%MEQe7$6Au&vhEbxHIOl^7Tg&q!`Pu3;+M^3G`SBRl&G!f;;zuCYEp(vdhsw8BuG zHlYA1r^arxtAOsyCBxU8Ie*(dr;p#QYW?*?`#*o-foHippnI6BmFH6T+X(`jqY5I$3@vP>XtBA#Aek^_4k=b*U5BrGnvww5~P7x zJt=;puB1kN6LIorK87R}EmHu2F9s~S)-{&eiF3N}6kwU2?5I=dpEM;>IqV+)RrqD> zyRdH=G}J5IV-y1c^v={b>lnJOPMiPv;OD1jcWhg{@$_wH-g$Q{7KSgm@zj^Dv#G|r z_rfiYo_z1ze6FBqXMghaO*fzVspbIxqU-IS`IhjD!Z`fY9poEAoRJA){uOIfg-qMj zLV10yGS3VjJN$*4ZrQ)5kPS!14j;e!;K>WSj}#LQ_w{S`#qj&j%}y7x`Tcv&pZ?UL zqvKN`Tgz`haL?giIl09in15hvlVIFJ)JcnF={i$nS8)(wJh#~Ia$)=YwqvL7e8o*C zk6X_E)+5WeTs-%)tpRS^)|y+mXHL9lZXs7x?0q}`@VfhxQE(#2GiwWo7b@!dWRPXoP>B%F9e*MI`T@wr7>B?{4&;8o9+DW>);_c`MPepUk zy4w-fo%N_jU3zrLXm3&<+9sVN&rIER%S#@;t6pgr`)Avqf9Q@=2WCbCpgw0d?GoYl z-@P!$bMuMv#P;L2KXS|Y`v>dGvx~<+antoRghaBB^aPuOyYW7w+ehMfgT{}Ich%&^ zT^<|npc9*PbgaGS^VigEKU(9)#*cOGg?DLe{MaX7Xh#N;6NsT{9n+YW03^aj8o#?8 zf0WjXD`c{`YwzODp|P0lbE9j(K3nLtxKbh@g=`Ki?K!>YnM3Pq=v(ir=;_g!?u_}X zTSDd!b<0>AHc&8clZdB*g(8QTyFwN#%JgTi)h+>_6J;yl3eYZb<@5JcY3H-oZjHbk zPRr+!?d4Cb?TzR?_hK|}bmNn~9@>P5+q4N{<42xcv-q2KJZ${9C)O`^57Z?HR=IE( zvr3TYS?O+|J>PrAVK7&2xaZs8LtX8KfqI7PyI~W)%8+pQitA^o*c1-)bkphR^x;Tkaaz?18u5 zAwcW;ugE!)zc9ykYvjIO)n8brpx2-c8D?Z-XJPdOuEP+5(Q#u>Vf~R?g$Babiv;ke z`~EhYuaRaNG{Otuu303`VsV@=`l5h*-Hl%dnEyh1@)LL6_oc;U16)pt!qT?)pE`4N zVXU1maobj(raQ5FL+C#D%tJSyeLz+&oI3YVqP%_EiKWFwQEcYNr*|LXD(jz+S&(ZY z^`qzR=@&NVc4G|+QEU#%-%zV?lh=X3-&n1jh=!wXind?7e#lRCr=whT{a7@36=3}) zi}W*BgVArg9Mug_^O4?*e9^<~d|cg9lRJIcF1rqJ{3a`~W}9t_gx_Qt*6*-2;Py>W z?`xm;#AeS+dY+Z#Sb}MusJo`<|Kxx)T3iJ+IY!?@XYev``^HcG>a8Q$H+lXQeCTzf z*4Lk}Ys9!$TkmKHDrHc6Q&3j{>Ki}yosXU{ zc;zoZ=Wl{A-?Amx08PGX9VVAg+_pB3T>q@A*5T^Faq`J}&$~#>5?gxWh>(_CGi>Z$ z^KCazNsR~B`Lvs%!B-#j@__k@2i*+#-8;Ke$XV>XuCoh$yD7l?71g7MzH-|=M_7Js zH7x`7z}H15bu%gpkc7OVsaRpP(YuxaSfYw($buUunF-@y_wvYvZ{hKA_{+;3~D*ByDqV}up>#;aoX=YAdYYf!%;CQt4TC7T@V z{NrdTr)h?BWVkS%#DoqjQJC~&nujJnfH*lJH_ibO)EiM1Va>iR{F2Z><^A@)H=}|W zL7QMjSstIYP)1M2yjNC{XJs7rn<>IEfp3|tEc;b76aoUlyCWP814ebdU>Pb4;F?Ax z6^KU0c}JMZ*qU+n8(`7H3(RN(i2khs$rmpkI&iDyqyl zj!#X`W}K`livj2=GcN|-q?Sp(`@KS#0wy7!$>ah56mxOmz3=u+&CSHU7-223P)`Xd zXweIO_eWJ;Oeg5g5W?PLLp`G1IRJP6uQ3^ zz-GsOE9_hz9e9_NPVU` zqFg7=cj`}Qj)-a^KkUom_l)>WhXH~HT*C3gf>%fb>JNUEx@dM@V~XfqK)Ze$KXFg8 zpZGN16Bdu4jXoKMxj49Uu?-ktMtCQ1^A%Vg235u=vv?xjg`*dvvx*sjcnIog_|90h zls9u2n8)M8z&mRyjZ9kQ2YLR6S)=nmJO2(s;C%Mj>9W-MO2a~DL(<0-7GBAwD`K8I z+FqPFZAP5cWc$7aZr4HNPveEr>A44Hei{kAnUY$aU_}ld%Vx>t1|x=vvC;bZxySJ zrxKNRtx7X0Sw{w%+$)%9u;F8p0bPVI0$xt(4^}5>efP_Ln`cli}S|P(xckp0^U}mmcDu)-V`6khoWIT)C+V zj}P$iAX~+ZAs8Yj0O!=pFkmgnj|?rfCq`iudXMd39n-orQ85+pg$e^LdET*;iHT&v7hm?$ojWPo$kd{!r+vU=^B8#UwM8C-BgGh;8d>!JCTArvhZBQ_#fukHCokTt29^5c z_~LYlxp0xd--TwQdmv|aR+x&4j!Cqa7+SY`Zo){4^e?@_eu~ad?-vjp#yaCC2J9s% zGf`sGbx$I-@Nnl-Vr;p8(J~}FsR^p{l7jKo(7r*qoG-eTCi|9)MjAa4rt<@>_E?y* zbToaT=}a+`PBClxm^mugdDk>@7VM)C8_tX+(B&=&3JBa9BehnpsLBrcP-t zmoAyv1Q@(UGd|)6W=pY5Ep|W>o0)N6lNk>5AJJ3T!j$o@EDLz(?)GB&maZ=E?XdPV zL`dSpdq&`l@b}IPG)*%l?cZA*9BB?E17)IL0r|0E6~~8fEn$d;C^`G~>;1!n`(uHT zFO2Jg2d-eDUYnYk)c5TNz&uEf^q)Q83#w6!4Y*Fa)|mC<`ON-(a$FQA8Uq(=4Oh^o zw|8yiZwqsMzli&VVWJiX^1^$)TD0(arW~WiWrm5l>Aj6YTYz{_LCiyFrJm)9R-HX1 z^lR5Lv4S;Av7qsmHP{l=iG5<^V??`+P2q_eElAfzO#U2qrxijEB>={+<|fNS3YzcY zBXMebMGFo{L0m&XYh~f0bQ+6`UV6udm@(a9B zIgu?2yz30q6h2H2jqk$59@lRgfs^ulMNG;%OqzrN3>q)zGZTa0=P=?vrrn!HQ2_a~ zo6C%EYvnOG3r96GICmTqG-E;lXsMg@FzJJgK|VK<8qD=aAA{}{%OAAV#z1)-l<3G& zOIna=z*)2swQ+}Y{6cjy@3}%Ulw+{zwU(V3oEV*LnyTaF9ZSg>UYJ8Wn*|IjW;SO8 z#f%jj>7mdFtkAW<783cu@8ZwF9u9#)9l8^1hZ#3rzlVk(5h$3o;WcWL@E}$yK{%qo zc4JAYr4&n8E0wud%Q9F=&L8_VV~(|}36^5Yodw0wWU2GF_2pWBF5{VIGMr5h&g5vQ zl+1q<&blNeJFn|}c9x&FB(Ot)L#e+pt(})VRRR!}2S(~bWuYiZ+0=njA?}00Vb>E1 zk-czy(Sr|1b|8u|@8|y#oB?pt3aa0DGe~*0X*rDDzTxHbm@eW z>t92Il*2evD909&en2g-+Lm*P zu^BzAse#$qN*Q{aM#dqP9}>ix3<}=(RZf5JGh9>8CTa+alytVK3|;!ckkZJeAVO{N z;Sf_Oxq!#e9Zht7bUewbWhLOX3A}|)TA)d3P`kpPscgYZ$5 zQt@!cH{wZT9;CD^#au2?%E|Gdq!#$EVVPtvI}*(Rt)_Dn_+^oivAE|fu{ryGN7aQN z_R$y{Q!LgqqZN!N_arlT#|hC;ZQO;UzL-}rmNru*xhYQ+Uv=)?PE|{t% zZGe-lHya}6K_!LUbRq*a+tnSkCS~BMUPN;~H(Zs~C^lLYvPMz%xK8#7wrE%=!90@X zV``MOR(84QR*W99G341)5>PYbW)G}LznQ^ku%7h4Kd4k@AbfTC4R|EzmgAy1Y6%$V zlf+~sTNzHoG)w1f^v+Y$DQ2}hAsSsdF6kl4GCb%N&W?FgbG+qOBnzQJ#$tljFgb0l zpp~gcB6(h`JB$uK18Iwz7 zQpNf0n2N{W9Ty}syiA_Qh*k7QlIO})+3qHW%9w1xfrmeVIqcM;LxFj3|Gp3jeoiW6 z4rakW&tus4fh@*czu1s*^5N1!{UGLip;9|HkPP8uHL(Z#6Cod_TI%au-rBXx=44K= zD!Wp=f;PLJUif*o2T!9XvL`XxUu@tYo8Kr`BzB~uJc`8JWF{2aMi2vYvlEnn!rmj@ zN^{hs5m!uwfGv9^drJ9Y!qm~9cF6$BR&?$>4wXV z+$Dxhv#w&t(}Z%?;di^Ttr%!OQ10Is+9H=??~&Bxr*MV9P%%6v@)sg`pTT6jr>{@q zZOEnqMcbWGM8gaN1k%*U2%%E|+4Vx18U~jRG7If#XyYzLSi~k1k-XAd%9U~=pg&@? zul2??<=zsvHQa=lBsu^&m*BKit|ey*z7)oEr`XJDCZ@%p{}hvW+}VD$QGQ7X%?mM? z(s8pggxxGSsR{H}hm~x-fRW_c>?6R)ug;6hv=(r#T+G7&tsT^sc4ud zoG)4!C?g6o-=8!R=asnR|D7*E&X_YfUBe&~O!@+o!UvA?k{XlGC~)jh$6B`rr;+)3 z>blk-(z`3W9_kZb7z;GmR%SCrNEMUJD`<>o5xw-|TY@*nO@-}z(@)dnG0qRj_{H-G z*tL9&^mO3U5^&%b`>_cB{ibF}muUB=Bt_2;ajjuNQ=Kf6a@K+yINaifnuZH2%w4DO z*ZLtR$=BOZL$jUSRXF4)kYpKO3F#O3{_A3Ov<)&xjvPSx?R0ch;ClZ^z6aMY=Q8`U z81BlelT}ZuBty)yE~ErrQ#1;)DQXZoOex}oOcAMo_jetR!jUT+j*Jiss@LIge6OAi z#CW3L{t3H`)-$Bt=Us!3$C1>5$3x0{tc>ZaqNt(ffz2M=*7Y?KiL3Y;*{Ng(TCtBc zdkB%Qu@iNNSFG9fkP_nQwLajgx3OXa*Y0$-?IYDcNs?Z1I^dC@=dkM~b_4C6&mnaq zp~}>xbiM8e*X+rk*eX4^v;C5WvI_sms_T(A(N)A>&GYDdlXoyWr=Kfbp9}K6Mj{aW zu;0A-Zm_fTJib%XTDb-}?dz5M z+I@bs@Aa6?_H&!)nALsW4FV%CgjrgKqwj+0$)g@$wX*eT((^03o=yVH!Pv|kBenHw+6%UiX;8S+~Egry9aLpionR|J~0(Cy)JDHLd zcO_)|#f-1pGnj_vOgXxjBL0)E8O}JLQsq@Q9j}VnT<>_uOtyO}leu$s;J$XVaM)@j6xUo(_ZL(B|PgmFK^5yAnGB3*kDjX{-6Y7^ONED8)oS4Sk zZ^aC7n2!(XVO|vmh6G)MXG%`biaE}sMLHqs&Pvc^DeC&wm>83-Ol);E*7-vh`kq*m z9oQ@i;1EiZn-4n;<||%)VirlAbaOk6 zhm$Gyh7+oq@C#y26PY4jv@}UoiBAYbhnzfzMEiBRsI0#9E#W2LQMibz2TjnX!ZkHo z7q}9My_d1>Cc+(PsEP3|9SZc#RDB647!(yN4P<1Pr6HFHzo9>66(>@D-lk{wJ9xNwjVla5s?Cqva}-i$^M{q5g%uQY^K09?XO~O1gUnhpTcEd;lWX zXok8S6lPnRfv+|(a4?Doz;W_k z;AYau#LQvZX&(nkqZBTX%%aL{M7CH%NvRGop>9OKh>Cm2#Iz~t#Y%V$Dj_j>_X-Vy zV-J-IG5?u6hpp+OhmRbaU$pH??U2VkeYQFj`4E8eBN98}^6f4<}VmaUWf3<4qOu4G6^?l81I>APnvf4Cpm!9k!1lJDB#FMe3 z9YYh>*)wi1ZLvxyis*}}VtVM+N({|o85TfLo^Dhw{;ssyxH&L_CPgkkW4B86iiqxb z8iH6K9TMHLEA82b>Kjr~q4cU4quUg{nMb9~rz*x`c~|_^KSsJb8N!uTe_nI5S_;Bb zI9V7RhRY+~co=ojgNz!gTc4*|ZZYZ|F5)=~oWg=RT4YLaBHBh_J4%bvt{^T*QjZg* zHf4j@iDV>)d|CO5!aWT%m%x4TrBaw|<@-_ghCNW4J1Mz1{~s-yK~D3hP43vBt*c@p zPI0x=Zt7n;a}U8vr0oMphSDUl`mAIRzx)@uxqiI+DN}4te?^>WA&K_1DY0?XFfeK? zKcaE3)|zva5+Qv~JUPIX?C3iIwku?Nk@O?f09#IGEt$(7msybIQouw781%?T&GL!R zjTW{XRVFBzBN2p#{tOqP&5i?6W)w-(wN3-lD5Xov1s4LcfgJ&Q`*?ebWqMhvSlA)g zvz=m1%Dd>UN7Y@8BV{la1D2Bn|=qwbo zXKGEyF4P*s$slEWuL=XywSdM_!UqfE@T^KH$XWN*p=O2(pP6gD_c?+!I3+ z$i4$|hyp?46Cbrxwx(&a?&s`6u{LCICydhefcO$2RO|4h(fNqps^omPfI6m<1D(#t zUNu=NnDKD9bu3J%lI13|H>Apjqxg2#`>I%N=P=wWh}$|*2nnX*8Ip$7q@S4Z1FU(E zgL8)<_U5vaoV#;n{7DwWlF%sm23^fq7U;*-a~0*)kZA`)1+gBYPW?y21H*YtGZ58c z0S<@A*(b)P8a0{AC43}fB}v-3T~q@^E%rb^1`7#}k#&2*)$5@sx8>N}TtI@x{pk|(LZbGf~D&A;BJGwC(rQUeeqVac5A&KK{!x;o}ERWMB3Ay z#iI??`p4bYy>G}R4arCeU_*3`<}8Lz$|kNLnb{Z~;*GD@X9`&^og3$k!N)q!CM3zR zF21k|nO_xwRxepA9k26md*t0b!203+FDfS?E;OP8B1r=s#r`S|= zO25NPrE?OgPnZ6Nic?Y2lu9e~6P>RjQcg_OBygrE@7$hFz~jXmaq+Qul>VQr{CD}n z@u!-Ujw!U@i4+UEov2#a1~^{XQ8Cx~Miac0r6K5sMoKOX!;?o`SIzY6I{1({A#S7+ zh$!qtg|o_M??=^6?);~(=HO^z4=*jf^zp~JPdq=@`Q`TXV^1tsvZo{)=s}LZgzYSH z`cO$ufqqE@fi!PcFaGBornffPb+wT)`<2=%bbm9H2@Z1@Z6$X;r6d*UfwLuxi^p;x zM@=M6jOKY3W7Az>cxZX)@h95TpZLT==a;!B9&dlUoWtj#{(1@o6-7J zT__w9LExys+I zRm!(bPT$n8=}lCa!||zIHypVasU_^&Aq=8(fQkWq&AzFze%EUU`SEu^l>u9ZW8%bv zd|nTDS=f6=0?-#0twdG`+5^WS zF+M%k_?Pw8LrMjuTs~vPl*BMtcCl+=91P9Tf)x`)nqF%SCzQ%uwiu`J=46Gqq*XS= z?MobHlP5a=hOD;Ay#~mNiCi$wHvWov7=n3lBvIAsg&TLRDrQDHXb-%h19 zkP(HsLfz9nKUaoXKgoQ=r{CE%J`UUa;p<*)jDm-}%lCHH@W#n7n<7S7g0pXwr+0r(l?4W~f*Dy*~hAQ!TjC0}s9o z@F&&qux&-|kxUkv!=*rZsM&9+CVt49T=Ag`9QSV8Mktv;_uj{UywB*%1GBUpXa3&4 zmjm7YE8Uo=O^*&grRSc|6Z1r4gIC%S(1Iyr1gVTC7=8>Scb$KP@-~ECLGEU=KdPa! z&Gbk_G8ENRD&;pini9{7wpmI(o0reYstT52(>s9R=X*K*32?%xu8WM}lNYm8;PgAU z{}}&(3vzz1KGpr4r=H-S4p2-N6IB~NNs&TS9z)_hLy@7u^)$T#%Q!#yHZRu?(UUOU@Zv{0dZGGtM z1kTB{M{h&%E3yQ5g&e5wt79YEcWoPB?lbOBu;J+dUk5B7Z6p49{jwa2h%!JQ-0&uO;F~d{>Wt#W_1dpA`2ip`4OGFs5fR5J_Be?Y3K%k z@x-CQrKQInpKd?@{QM`LfBcE5ak$J*=a&!xfg3Cq^2%_LH%q4<`1CT+Vs3rJSS#mA zXzw$9w;+4-2+0`$FxrLi46!94JtpPozcPap5|=h9b;u1=8_X$Y2Y}5LEHJi?_B730 zhBhbf1RERjrUNmJJ)I!wQzi%B&}ATb2>I7Osn^G`ArT@D=19OK$96gPk>4x?m;%pB zL0F}i0p6VIS7f-_z=_G`a~}~^S{S7~pvp(1y z84YA{n1svg({<_B_naykd=@0<5H1rU6oX=C+rRmdSSg(ajGK#NNKJ9@242!!@uSZH z6oU`MP=&i6evUOxFjD~k@4pGV5UVes ziUq_>4Wghg+Nx3cm40H{!1I|vnU~Joa=3>0N|1rTmWI^2o?sX83O^4L?y8c;Bt*!r zoWjCkRY;5Y!Nds1-=QD?^2{(hUIPY~ut%C3R*Km=J&o$;$JArHp9~;O=`VnXgO}V` zD3r6h{;;Yd)nNt;f$4$?Ud0GUar-W4V_D$-IWEHaFiUn~emxYjY4q zYt@tuNw&=KoXkydBYH83=nnZI;p-Aqt3C12|1RamP^5(&DIiPdC}_n&(he&RxpE&z z%T5T2xbbbsIwXY7pLV_$^1zSAQmV|)mr9tX!Ezw~BHRbLK1Cii_0>Q#Kx*(Os3|4d zv}1CG1Rbebrg@Q1jIxmgh{4XoMveXm4o85I3v~Eb6)^2@i~+$V$|#5+e;i4eF!2yI znc7~X*&>G`;RsZmdTiHgL#SWz-uo#L$myeHH9PP#|Cx2m<&q!v%?&=Cu zAR-KRylNrN1$AGb*$G4sf}@M&Pks#rF0TnTN77q(08qNs!$a0}X zjIsj9-*>+(cRv1-eoZJ0!rFm*en7tCmRtgc3?IwE%X94NxPzb@y4M-6f)g9V(88R^ z8HwyCZIPt`80D;(<9-7Dwd1>Yh(9L^C;xVQtA!`Hy;`T4&0^?d~EQ-|*dzDlGTkcougqP`}||Joda&iW$OfldXA zfH0-_4x&Ze+4E!MVWhW^B?h*Z<&0}|JzSA4S3_)0z>;?KBF+n5-1s_lN$T&QKuE$h z+w?sGt45Sfo~(0!EaqDV2=xo;SEmgL^$0I(QWqoo0^%W;s3&AFQg<|?~yMhr?BuD0^xrF*Y>h0Z+SXF+Iy z?9%5Rfz}TD6RMA47@v$gZs--u{40Z;1el2gq@&=?#&tbz%7~rwIV^dylq%G9jO$Qb zGoJ+F(4r0t%LV)m2RF?n{;@n;8rTuk_TQMTyfny(AzTN1NGujliZNuaVxT);dGR>A zOhQ0{Ttw%CzVqj@$1K?=E-DN5d6N+g$>5Cn?ZlpkmEJ|53`%Ws51<3WT4yEhBRI_){ z-$L)Pi-rkG%uFB*<{AR!`Phe$iNY1|?&!MXr~^Si&_$w`*$u!MBR33ly--o05N3pX z3GiA{m;pMCDBv#)%({#(E4KLEBsN{)GX;`FGI@)1|BD1MJ%K9ysGGERxRmVJIUR`SzbJotCTUIBM}(B zU?<#s{{O?g5I0t7Oef4Rk-4dVIEh99-iYg-9%OC1E;wQM3 zhl?+^9VqUhFSbT(?N|fwYD$AvuYRjjD(%{P(`|QMIJ9?YAXccHT)K7V{?{MecanSc z-tF^40}WL_a;$y#y)*mk1BTif8eQJ|$9Ft%@2RuRfplX3u3ImBanG?v4(1(&qdWP! zI5Mzr*L$|_-j6JmS*q>X{=Pj2`$uSBQ?B}(;Ef(Z?tQ-R7-b8(2|?zxLz_8BdO(}7 z`@&N!aXm;1W#yyz4o?=~3DKfmk-JZcq;vEq^e;Uy+l(Xz^i`4lYD|GdaBAWWdk!tl z@8$VQ=KP#4q_@qz^Wf2i#kk*`Y9CZVD&DL;Ft=^oEo!`$tn6$zQ=@{>M0-PLPL#ZO zYizI9PX%7nO_v5s)$rauxl9&mpJHRQIhqsgeNXofi2R8?ljFmhKG^@%zC(N3$Kry1 zs6A1O#}}4vJowJpg`_aKI5OB$wWihd1l4Pm8~aYna@b!#pBNgOX&^BT0~SYDMJZeM zEs*rLb}hYWbizX4Loz?92#1$<9fsjR4i@YFE6Bm7@dGV0)|Ndt^K4dnow)z|j#G!* zkVgTx+H!X>|!mwlHXF#n) zc{S2X49~(tk01?tL9A8*CZvBk{=W(}{D-xb@t6J%kuBCijC1u;%;S*6l`saRfqIh1 ztGccvCnfk~qBNOAB2DEn3j`P{Sy9WioHxEr$OTK72KMIy^2lx|UkYXFjg$F*y8P!q zfs24i7bb-gDl*hVFbtYgPN2w~ngli_0gx#^LK8U+lRg~)5W(ee;_ksh1IVkMZ}kP? z7UcZTu>BpKMFay#Vo}fq;q|iKEMd;dDKYZAu)&#urYT4CC3G!4X6Qh!CG6)YSByjj z_qkYdpl-kO!$A$cp;irfb)X>akOlbz?~jG5{OtRHh<}ooV^6#&F8HSBi?4c7T*`-8 z>j|x@e(brwb$v-raJD4_;jT*F!><#-zpaG&{g3(82?65_au4hhV{#_-RShk&^2=Xl z$igdLj$(_{dASVX@JgkGr9n9=ta7i+#U?81tDm@ZNGN;0ir~WaO*py`NVJD&M!>1Q z^Q`lD5gP!}(O90qF)QA9Z|_DDV2>XO0X8HuU?ZGY3Fvg=b-3$Ys}|8YOt&4*D|rn% z20Si7`XR~$Kxo)l+)lw){|J*6aDFu}pROfcT4UF6;oD1bP{Yb@yP6A7yobFQzs;YW`MTmgXjT~&R5_3w4Y4 zMEh={P2xohX&Vy3?&@j>5@Gbkq)elhDdRZZ9*edcx^JdetG$sz?KZWtD@1?W{Wegj z+C#xEE+ItwW@E2#OKzo95KPZY#B{we)W6#iytIeLZ`Bc`^5Bg} z&fk3FnW;>?EM&YQ2*hPmMAo^0@j}&C0vD@DqK@WlUys{y1$f|OCTU>DqxIJZR3zbA zaVGW=T4@RQMrnJQcGV(zk+_p?iG^9G?uMvy{~A1zaaAktrtMus#`;E^$l=Q_%Ziz zrC~a1$*YaOB5WWzk4C3d5P~X3skT&Tk1!m~k&p~Isk(7ZJ;E0%z%lDup{z)XNL(`5 zR#(|q=a6H0vhVGE&;6M9l>~$UGi#JfX#a1$dnBm?w*U!{OPFuya{utZ>t4ADii#N| zsahHP@otPr-@KdYn+Ck}BhWWb_r0s{V|`!RXkYY{O;;U2O{p9?U zaR==U5=O{nkkz7&V5Vzq1gq@ItC}W)r@*e%HqteDB&u-5b*jeEtQ=HLrl)E|1(YsG z%Yb!=bWI9m0dEmP)JP}NOxegGGJa4tAJXz!OD1I_K*tCQ651cY+&NV;+!Wjj0L^Yd z5-6bx!%6U(QO-y=Q(5j&Xax}r2_X5j<@BX_C>uDkn4_l0&@nCPrt1fz{7p>VOfRRZ zx;$j3lbRW+o6KYVOxtAhZq`-0+9sd3RKx0N8x1Ky3y>=Vh$m7v*+M?jH>+3E%~NpN zGm*ZD$I!sHy;Qr`orYB%Rx}FIPms}xw00uNAD+ptSAG+xZ%81d$SXV#FsBE7_&U0fd z%4ss2sc>J(7RCoX-vZ;1xo7UCLT$QsOjV>nQsc?x>fq>(Wa9L~xn{umuD83qoUj{9 zuST*+2?Si=qD^VI-mWs`H*MmH|ZBcX*Rj8w7 zq1C__+`e8AN-;PcUz9D{I60ck=65U{w1b0Z zn)=?olIz;C!29u}X+v5I@z_v%;i&bI(mdKl6)ij8YNWl`s0nffGg&|lo4a6O`Lx7T z(8!ty3TH14nQCU>F#J5Qih&a*JIep{oDIgH1L%1`m11G$9lQ1qG^FB?qYJG;uv^K7 z;tjOrAX%u@bzyY>u4jfuk-#jb$)J~uw~vfxfdCJ3(BD`W==$c63Cp*$El={RGlI29Cd_T_W!tVMRh)zF z{wCYXcrv0DqC7kOb+kIz_wc-ssiy=1vU2p9Sf{AXgraUFNN^!y%0Os|&t|O*i*)1w z*rIS1ON1bmdwigl8k`zEI3Q2PbGb@T4v^9I0c-*PM{4k}k5M?1X4P)LwX}9s3~c3vra1TmaNivGf(!k5|WNb)7tDt6BzN)IvR#=Jxiqs2s#Kt!Y`1HdrgSfZx$v?nY_en=ZF zlqh@%g$Q8tUr3p)D1O2zH}}4!(fsfzo&&_+OL@ z>z%v%(Hr-cXkTD8ws!WAAj21(zO9`<;V{VEhRs{z48VcW0u% zHau`Fvvv<$`(!3MFXq4g7oj3ysX8}EuI1bwgHaS8d@#wdd4KA?paXmRScbyE(iRS_ za0nB{Ji8!+vZqw|Wtn9-FfKYP2`s+;UE#~9nLX0?3si}O*h%Q@fYAI#cIL=M=^i-} zB}2xp9&$bt^YvV=mpua?DzH69InJrRxdSbf+e5CWU%SVt zbpQNPn@&^4XIR{zu%DgX;ccT6{h@7Wxp4f}QWdwsPHw|AN{w|#cby&bOP*H_YH`K_!gPnwe*JPNF_l34M`;b05< zLe>{+x-QMPm6bGhjt%!4#(<8jh6_C;h*n&+Bwll}_4zF?>1(b?5MKZK3Es%i6U#f> zAmr3kQ+I-VQ0w;-%?wCAwziBnUM-)9q~iYtp4U8hG>(wg?6JH?35hNVWDj2v`HNBi z7<$V}!& z`UjA5N**26xQ8{AN9v|I*xwdm>iXYs@^;`kDSDydakNo^mr#o{3X!kPG!5>isd^}zBLRBqf50$GiE1S;NUbqZybYuD2 za4VD2U9X0$_icohz^ZmEdfhLVs`5I}_noJdUWo{W&D9ZIW2{=B!7oL8|6Mf4@uIJCeh^L7e090v#Icb^u{m@GhB8*r3yyAp=Py2Db zr2GQm)CSC?Sf0kQyTRx|@K2?}M9HUYM{ zDlAY4nKvyVYnvhFgNr+3;GXP~f=mG0@L7@^2AM-}`tqpF1V^Y4K`(NKKQufT(|Ke8 zA#NN&_;TMy3^fRx605}#qZd6o$%Z^``fq}mdTASlObO9pi@wMS=-CSHdxgqe%anJ| z&E_yRdqxD+8#r}vlD}JLA*RRc@SZTovjVep~x6EdJ z+w!gh+ay)ftCa#s3?71Imbq}dAt`kQhzpc4-1@}cU2h(5$AElE=W6j3tJD0h@I~Ob z&-VRPAK z+e{lCFX0x56=O_5x(6ND=WLf3vIU=0)l?TEZtfVe0`KTaTa4MjEjZ`yS%VBm_fevP zR#73lFgQqT4n_=QsRTH89+6OoyC9lJr+Q%VAAGesl}wv*ZFFeAhDp|DGS^H^fd9`~ zD#uaO(39vBz{QYaQW}cM<)w`6`BIRzbd}kMA7UK^6W9?#5HZXgir~|eOyJ#23fp>- z-05GotdKbSVuzMo8_dB5Z5TV?=pn@m_zi@H+1oddU`;()6h1zj7g z5f~@Fx{{91CvNsEHR;9CXDz#na*@lp!k#08L7^7p+T(j>GMT|36Sr%{(f+ai2Kuv9 zOHNc0jmizhTz-1t?9_`!OsMl)G8&kGpqh}9<>B9Y@+%Z0Tb^;cONdlqJXtAh3$a7J zWHu8^I3}XTXbqDtNaFKyHV;@-u>uVP(*|hi4}S+(=~JlqjH2eVv+q#f>AqW_lV1ui z^(nIXl%-*T#Y%q#G6-GtZkOVII-w*cz%|P%cxCDtMvbn9f5))`K-|~5rAZH z#IOrc*`d|L!K_FWZcvlOWW6>j$6)~Roq!L-L6+i)=|+Y7vK?=h)t`RHFuWGQu+z%h z-r*+3gLnS46j&}woa(Uj)9;*}eQ3r%sc^b=CwKS=Xqd%1m*;C${s#WFX}&YdaVN}j zlmA)HXcfc*YG)Vcj}4V)li%Wogwv^)EKc0tdFH`~woN|V5Z;wOf1WeBPu_H1*oE?) zCmugjm{2>vs3Hc5Nykphs;Hknj`_-6TahL&JY%4rMjjp#yqLH&&o3|3 z_yacA>CCj=%>&fI$$_oD(Y)=pom}bc;rY8T8dZGvAneTVabLj^`%35U#nbkS+v)T@ zSQyHUe;c*90nE=G>)VHZmxoX>c~9SO_I-ucgrpZ8lISF{dWTZRIbg?)v^{=Lb|Lzz zb?b6;(&EVfbiYuV!Q?9Qr%|pPJx|a@RP3X~IQumGjN^^s8l5_J4f>?DS@Igr z@Jd;5tp?bj9%me^HeoWHn2M&xq?5_Tgm}#Uudxt4bd_Yvm2}H>pgc1HKh7WHwgMcWLK^8iq)PHx z19|OBUk^Rovh(S@1Zv&5r^-4Igh>;K&~NFwFPUy?q&#X%aJI4uD~=oJJV=$f+_t$E z75R)@&dqpKnG-Nj!GIguy$vXQWbQu`dT3A2hRBuztSKd|j01$Oi_}orE#OqZFi4V^ zNPvAVWe130Z?qH_pfGT#x|uvl!U>%N<@y`ynS=rQ!Pa7FaG|-wNTfKww69!4QQpeO zvy0z~g^E)coCr-ohCycJWYXXzFG@zzFp=J<>23qHVZ(HhaS)XosY>VShDOBAz?HJB zIq3rObAL$P+EAV_r#$hgv5^&|ekp|$1ulSwbWcA^5P%*4`GNQV9AQAmD@X}aQU@^+ zXi3=VFDu`pYWw0MWTG#f9UgC`VM9;+|IED!oTX)TCtUBo@7vw?rK;|&Tl?Bo)%yy) zZ_o`*(;zg^h#&}vii$#9z9fn!8V#BRFfK6?9py8V#7Ux=EW=EQF`7uCW}<$I+r+5J zq_6Wo&wHyE1W7Xb`+ZeVU3K^OIp;agS^npLc)d4z$IN^IxFc@;3Xt1oXVUkqcu5*v zxceR|Ngo2?nS9UP=uKEmEH9Xh^Ed!O#rVXNOOuvwjqj)`N;O)l>H3DzmY2(~D`bMz z#lLt0=vbapOBF+SD)Q_sy`1#1Hws1tgqL)!louNkZUd%iC(vP654{q*ij9H7 z79xX}eh*qN0Up5(EU7stMT0dBPD2m#Jb5zCj{Tz#{j2?`x#8O%h|w2>rx!HT(Cm}FC{ljGhfHVfTtep7B#N7 zrJx%PlP@Fy_vIU_f(Djk%c&=Fwwyd%Zo)$^6V&rFR?PEJq2y(2%T=Vd(f*_GI)10v8$CqQ!XJDJwA3t83+X+lvWORdrea<&Z9~d zM6E1t#R!1UIU>+w0JOSD{rg}CmBWmJ6XrHP=lTv6lB<#B14@mO8;Ga{1+71+??Cgx zr!bd(9qijsz*dd|D`v8AsM7+$t$&sYWrGgY)NKPe6fLq?UmP@eN_{XN=D}j2JUf5r z*v)rbb?io@SvUCv5`qeHD$OPvANBGLH|l{_!SH6c8#mxJ#{RE%S5V`AQX^7!xW z+25O7ocq}6GcQyu_+>`(drbqFioswqPbMh>OI4%V}axo9x|yGet^Gz0l6NK z(WC>H$Erz@P@J&TajG@E4a~B z%|^!k(u?lKtbtM|7UR2L@t$AtT)ohRV&n4Qmsduv-gD~eTkc85tLTkjpM~x1Kcdfq zy$wehi^}>xsBA^*PCu#q)#C{^CN}AOe|Ln>Lu)44Zj!IO__oLY6RLE6j8KTLPGSs! z+W&U{JF2Do{3pah2+lZX=7UcsK3G_cj^=Dpcz{Z4U;75wBV1jOgey<*vY^nm!`gu3 z9=2v;Xaja1^Z(a4V+rv`VIXY{tj#RpuLc_ggplM~(g((!v>maGtjKc?5J>Ba&t9*6 zTfF~1PSacE1uTnvU`0Otf@@Fcb_p%qnR=#E9)(8Z;`Ge$yMXM`LhecveRRB(>;Iar zz(9wbkulJ9#tdELC48QG!t-)Afymbv9c2}BVnZ`Froql{*)|8#E)Jx37N#3w0B z@0u2xS`#zUA0;9^uttNbnq_v=Yk!(udk@!6lg!Tduri}_{`$|yGt4}s0S)t@*!0}F z`DL)Nz=ovhbo9TI(CW4GAki_=qu8e_yHfMU>mzGH#JfDrknfhGz)RqbT88z{ zVz~Wu8&aBBCK@zKDS^-b$P$@i6+$#)&Q>N0unHo?n-qyWQRG_yOry0B?w@rHwY z(C*6W9_d#E?FIa1`<2dv1v04c#WDx<>S6PP@iyKo!rMw19 zBUPk*e182I)5Ku;Pv|Td94Ve({m?`=3gao>&;Uq*3 zUPm4W;Do3MkH^lMWV1l$44d_H@HsVDD0;17pB4Jl%# z1eOND9Gp%p5WGXEEBZsy-yvcNs0#8J;0(5!GjotJMSk!Onv_CIOXk?)HU;>slmR3M z^G2B)+DtJScq(K-rFL4~mIUXLd9Uz5A*sQuO7!nEd7Wf0nmE46A*H|YZW49yUibmm z{-SqY+c`}0pm(1)^RXMs+0xG?iAgAY!vn4DLIha6M}Gjb12{qn6j@xU#n0E@{od<(`(bc#5kgtgyzevez5u}-BR~H1Rj3fmp#R^u^4q%HAaeJ&Xua!++1D` z{mJpGb+eh_U8@`&Fw91lcg=EgCW%po)uR~gNxbfY)5IK$R3C5hx@=&^P;mC4&i^iO zV`7=YQy5}h^+Q$<`!ZtG$)SXu7R*y%#xgvwLC@wZz$-wv9atriVMTf|J#j(lnWkcK zh7>ulMne5wKe}_<2aa66>rk&dKC*Sw!v~M-y6k#Uj4;dm)d;VcX zIjvj*5T6$+{I)|2b0AolSw4Q*A068>H`_JL-rPs7zwt#fWpvg&2R1YpJR_SnfuTo4 z!v^kD*X|s+6?dZ!4OBdxlV672oJI^di>RDBF385fV3P4lokv^@>N;P**Gof3=Zl4U0Frog#CYhx(3bE(Nmq+q+4t6^|6zy>mrQIS;y@PYnCpK6*NOf=Ys-o@c_Ij-Ya?Fk}DQAN-ZD1G=L(MbgY@FU%LFn zv6I`j6pBG`CwCeG^re^FVSqHk6aMF@S2Z;buWf3Mr7xkys1#~wKnlE#QpVLR`VA*b z1g=s$F6tJB*Q4EDXY2F@;UVmq9GhrHQQi4{!#q*apY*r`QW6~dFyQ3;k;h$HBZ7dp zg=I?P7Nlkn+c29sMYq;#ukT*E*X9A#}w~!X=~X04PLS(ZQ9`zNxbP#1bl?vuF7g z!X(en)Tgmb)%K?&j7s5$hk>*(BX_%$-?)j*CK4AXR32P#y6J#gh*L8CcRG$>Hj7za zomga0dvVjoymU-KK(U(VC&YRKE-K;4n_m<7ucW~SrZasPB+`?pU-=5z+el>!q${d2Ir-Xc@K72j* zYmbnh0H==4=A!o`kM23%lT?XmOX5A}yUx!YpVAWkP4AMQLkrb|KA1TvqMFFeP)YZGHXyYJvG zWT;-nE}q{1Yv}nK$JslAJwy)P-~^&2rf&p|%xt8kr#PWV(!1K8U0FSP;>_*G4j<9< z4J$|YT)uDn&X-)u-F)S)9re1S=VR213iZkfZujxWwr;PtRCDWwPu=*!V+Y6JsAMu% zzn1$8ZDIbou27&92U@V78sG;cvJ%y!a1i7c^~b^nu+s-Ehs@Dz(_3 zTR3nz_gm`a+jsrO&aIatv@k2p6^xu{-aC-l+M10$-8S5ukKtr{# zT=ltkzTw)(uE%-^>0aO?_!~X_Bc5q=9r_inqkD#}uGx~@D?{ zV~vl!ZukDTo-p)EWB-Y(Ja#%BddJdov7#7r)BE;(^w9oSHd_2YXg3`=dUDT()twxF z$?NwY-g9W>f&00gL&#^Le)cxu0Pwc=0oCB3j8TSxZU)5 z?gxxl=JJt=8_@W(ZQ;wt)>+g5Dx>f@lBff*1cJP(itJ!kaEXu7&+Q5!I7< zxLiQ;0zZ)*<&DGYYKY>qG@lmn0$>Q3l7iR(v>?fdrU(bNHwoML`! zzJyGEY-xzA)dXXX@L^E#M;(AiLSjq4WC{}Itl1K(EuP(0h;vi?xeH!1{r@`X>&GVHr8(RX4r;AgCE%=Zo+BS50#Kj zM(j0aaY=c z#NG*YRNEBVs2Wf+A;uz$!)N=$BI-b*lDGxvvb2hMNWFd!TAzmw@ETV>DFua614CGgM5!SfR+m;+vR@(*imh0Re4EQ#fFaf?m-J(q^LgbdKo^ zax?6u(LaRum{TU|gExidvaC5=Y=$$%6ILikjjRp>3l2UKapRzIj4LF88DtQJLfDvk zu5W0h(#qiGq|pDOX6thU4Vut8tI!}Z@pEV(n-N3L3IwD=G3=6`CpBq-#{yPGo2v8H zq^qEg9S$^6v9)3zJgb8L57hiT-?UIT62lq{33u;xf$ThtW+CT!CpR2OtlCn$ej7&l|VseCuKyMPs61;0}YEDovpJy>L zN*)5UqpbM>ijkTICN#1sRfZs@Rx>gs>tKHn(WQV#)|o>}vyPOEd@9CCIB0PK=!*G6 z(?E~HpT`T*0S{_HH0&V>!T&IaW`E2q6YN3-FwWHuL5N$gdgHt`u@$&Z!>s~8eMq%O ziS5tOy^{UD55=~LwLoYmVB(>P1YG~|Uvkg|(~SeQS3{k`!|5pkH?cge3%+T4Ai2t5 z_hV?dA=fboBnVq-sR5!e*J#YBBF1-uZKsR682^6B_n@5sH+mJ!?2Qzd@u`y8|0O#! zwmHQk1L(7L0-OFiGaFSr70t&|D{d#6E*AQ4E0__1@N_Vph1}@^2GxRm1O4@0qvXC! zu)%RqDQ=k|mOp$#1=&k10lF-3g9QWx@L9Z3$ZyFNQMXkTybRO`_oIl!RTLZ?ly^NZ z^M{{Z<|N09g-*Ss|3Q(Xwge9%O|#LF!&rjT>I9h&$P!aT;j59{S@RSSVzX%}l--Lz zpH0{?CUT#b_D9s=O(Q=dY|VcTVLx8Sgf-M2%oua+(0&G}2<(XBX*h&WU6oN}&lT09 zJfDrM1dtXf%#=VSjE&{GqMXk?n~=fy-MU!H;^<}o&~GqE$cmvPd^>Ipgq*jYTgZ>f zNsy0G=?Ke6q67G&MNnK(ZI)pQbl)wb$&1)F^qh@U3;N+56nkYbEI{cllPv zU9@LEqSh<52qQrTn^v=jZQ4pY(8C`(ziCAcWoJxp?mzyYd#zztP~*tWX`;P)U^EYE zLD95aDfYsGYsYi|n2IxOEX|byYYu`7-1ECL41mmXC(1_u?HBA$(F@Cs@r$-+J86RA z00s277oakzJ72UtfvmE;M%jHtDwZd7zS)vE5T-|_>Y`PTE&zi#^_&QZq^)Ri#!Y(Y zt%Usr%=Cx9E&QH*7rZ#)=Y3%4okJfS`u(B5hSVk|YcRh^+=5Y%&m zmTqBkTdOjr$1$D1MBc)P=|Fyy$L!KIHVJsQ^9)jr0p#;^4x@@l?Z9AdCdaXfr=cl| z-9rk&IOwOR5Oona0l8vw6Tzbg7m}9waWn#ItuiV_iQ*~6T-KUxO?#qjL|sA1+UEGBJAUKP z(XCsCix{{I%IE!e@3b1=y%mE%d`vp~;jngSRomiVS{3b8~FID*TFAsTFi zOu8h(wA#k}0s51si!+cUY1*K3IhmMDPi+c|@E^p^v~#*j4;nObQQe`&JOFwGd-?e_ zZ<0mjWI?D+Vo=9SUBnic@#vWpJkVLt!{l$MWsSQX1QQ6T1RrCGIemObC^p-i(;lDL zVDz6vgGO)I5q1e$Ji2O&bxjB;EuCqWZy&qV7cL=V8e>?o#;wK?aqOnQr9rN9fClBnALpczbkMCF`l|Tj){nv@2*SkH0K~s zk|3U;d#nN`PyeI^dRSdQf+NesSXdk$hOc3YR6^;h56~rya?pN`JtAPe;SIe|ln^u9T(&aQ=k> zwyTIqG{bYl#5;oS9xHLOk!TEqX5Yn(OD6)Gxb23arUg+BJYhe1IZA$cN#`;Z%n8&@ zuNoD=v=y`j0bpq`P=e#yb4nC3!p(<_!NCBcAymCdmgo7!%R?K6PGP?2+lPJ|xtsxN zjs?|&!u23E#X{~Tu?(~3J4TI-9R>-o^eO#7psg?z5;L-Cew7u0nI%Q=O$knv%TuIC zjaX+9x-pZTBIa2;1pQd69y6QIm~g2PjpYaE2Xo=^N#<8kZJ?mO$9)^aRJ(|VY!l)+ z8B(7YTIr~&TP<;)0uw;f*3J63jI)?^*nxsru}`w_>F+shx^>uY%^_e>=h|}frA-OU z;?R9_-BVdGQOG7Tp(16`SX#9IwToT?+UGee z^HK?Dv$fBlh9}jvr_V^Er2=rJAWm;M-Ojm7A*Sv0Vje;?wa}K>$77wQ^Z4VM$;fPs z_dl*?KI%|I5(clB;<2N|)m`))3m=Seb)Q=fL9-`I(o9D!BZc&g`*^orPn;TiF(;20EmQw*z3^TXb;fo_T0v0h+*vK5#6wSD& z8J{$cR+jaaK^xsh4?_afX^B!nz%7z{N1B4|O(KU5;2V})ktxB?dQ&i0s+DexPvKRy> zPOwh~_R#cKpX`4D40iw#3N#B)XK=R1PEPmOjYlgZ-Q3@MEOFaNXynKw>1M4)!DcdX9*P z$peO!?Q|L#JOlJS1Vd7JHetwKZh{FTn*hto$%XRRvxs8rRy{02CQpYXihm|>upRo= zghR>>eqJ#X8ifcRe9mMgw8bo_NhX9`qPssTjY85y+Cg@UQ_2`Gjw!WLb?=Xn zg&-G$HDUZ$41)|+BLw5xYJdxOGqT2)vsNu{@+(VK+wKUM6&|{JLx=3 zd7b= zs8DxkP%9OVHB#0N(?=djL@ZVnfFy{3qJT*_3}jqT{UfUcJ$_8(@4=K_M;33oK`g9F zd-v)qIq@?X_cu|<^K!m$_U~+~z@02O=2z}LeP9AzS-+r50Jx6}EqpSu+>QPI@Ap3? z&svy&HLLQkRO^eE95{IJz(0?S?AtfigFKO|F0P5((n4KQ{4~xlu=kRa+Kgi zp#*(Ll85>WR?*M6edy9u->ICLs=Lcrj8N;uSx{qM0n~Q}E#{=d)AO@4vv9V_t`i3( z$s+LpBaysmk6jD@bDTUqy3Mn7Ap{*8a^7y4_s{-f7h_p@(rFC8@p6*$Fr*;Y67#@O zUQla|8`t%(W!J@E+#;{mBK7R!YGP$j)DSof#Jc~ooG%mAD94SL3=~)rB(gfyj2@Nt zoc%qH-}FfTTJD|wFTCt~Y+l(P2)_rc_Wv0A`=M`hnDGE4B-?~3KTFzHLKl?&jjLe$ z6F~+2Mi)iO#!|^^8<+HRz-Uc((N4zBCeSHE$)*Qf`WMbQdTe?Vh-H||gW50y#j~V1 z;ZrA5%xU^!_?xxA;00J^`I&D{Z-#HO66~cBMB{Ig2-$k}Y+O`}49)-#p3t3BbnhU& zPF86iFt?dj{Ue}j#YpQQHY{1PqZSCFz=JNT`g9dU&%A;ngMp2n+k+uI$R9e28`?>( z9D#sGM(#sX(NU#ZW~JKmOpYoNQV|V4pwi5U=+X8yE69NMDK25~fS!n80jrGpwwm=3 z455@8XWE$HAt34Q*EC|g0|?uUGhQ(}?4X;_0kRbneDManI#aF!u_z&MrcaQscR$_M zwMM(MIJM6QnB`b1RZ5b$mccF;WtJ0fK}<1l3+`*6|GVZ>cI8 zjzt|S6=b^@86x8V#08?A(TUoD47wY;jJXtom99zBsx^@E2{Z@w?MzFH5(_Y145IcB zubI)LCBffArzQ_TxG4pp0RFlLEGtRIT)DSBJ#j3LN?Uh)W~^F4AN^AoqRao>#gp%q z%$jMgE`j+1jKmLQbJN@;wmad%z9~Em{7DXR0%2X*H#9E=FtBDK(yy83#3Xtfp}WYz zu#gQW(>Y$FaUKu3#$H*v{K%jF>>1?Xc_JW%}D zN)8iL*bSIki5q-}`}m8F>>oo{Z+G;PogcpZ#I6IwO`|uy_s|)4<~}*P_(_9T!4v?@ zEaR_)5~sBXp70 zAnYuvEh5KU<^nthuQWi42n-0uQb$O8a(|Ky;(T{ZMk|el{-$aTr4tpyZi`TMlxk_V ztkisEQ;OpTC`e$nv_f|;xZF#|6vkO#CdK5WD}2Uk)s9xs9QXt7`Qe%yuo`2)Tm zaeM~sb(Ip5GlJN}I29+%gUZ}(ocOjOvYE30h5%4oyJF+(ryXvrwGQ**6h6Y-%!$<~ zu>6eJ|MRI_f)4fx@z~+x$NEoHX%Lg@*m`x8#fsn~_&vk{htSda;-S|LJv{U=T0xq- z%Pa_%kFvAO&cL#xce4(|#cWq3tdW!f+mNnqYNeQI8N>{b#d48HGvY<-oJ)|EnsyACG0pcg2a}J(gJb8`0i(+{4Uw>wN+EVjS+#&f)n; zd*F4t{2=x$4mn;Fwr#nt4DR6$UQ>F>8#X>wK%QI5MJ(|nF0@D69Y-s>GJI*cW0!3L zhav2QSw;oU?)Be<393#(7BE%_%`1p^(RkUVfpDDK8D27`qy(Yxhs{=b=K2sE@jlx4UaM;U%jU7+{tn&FfMDj*R zHO{m6GCixOkWiRRQhlIO16cgiMg_bwc+$@yLf9F}H3Xqjb}kcrHHkXysXT95T1VyD z0q8o z;3MI)t6G@tRx;>imXzq-U|5lb`+!ihF+;Dh&#hGFn<$fYQMnE%`J^4?;T`Z}*#MA~ z6d#f+g7E_k=`<1nQ69GL-{T-%6?8$AfiXfJvD0(?CpWvy`EV4AIFNZ@wxl(XT7&7op z%<>BK{{Pee83toOEvZp9f6Y>ZPk*kRD}yP7<0}nh6)dxV0FAC37EcWmoNAgc7jx2G zQeY%GAc)LRbleBIZ_Uh@s+|)<3>1>)-yAw%7HERk1S}Ymlo&4meY>Em!ddjQ5CI8; z-|&~W%C;9`A`YkH^pI*F{)`l2c8tt@5X=rZ9h9$%m~eoh1mz|y$s0VVqXh5<|K_v* zl9`#IW2A%v#KOGPs*|BX;HEiv@xg4OTlwq3y+vmsn~n^>92+!6T@b#EK+f=S8AgX~ z7wjUe7tTtywXuRY*r=qwX7|BY%J$P-0x{67v{R>XGJ=!@w-7puUJ*q<{DnK&*@2~R z+StvwgG@KK+nxw8G64;3!XW{?NxU*PZJUMyq62Pcqa;h)=Cy1P*zH9_;18kp>`zTB ztm_ucu+`oU`>Gl4A_v%m4xEyrL}smEa5eN!dAyNtYFxYjH*x_3Q)7W2EtK*>z^yNi z$kq8-+m)pt#~(F#46@?gs^D3fd_L=1Le=HtNChc{h3-!7{*6=fGkY!UReQN@M@c@) zRNRGfNs_vy_U27nU(Jb*92M_mxgr_qb*sfW^3)`FtdJ3$oI*x|6SjS^9(Zb|ST1x# zBrL~{3!_WZcAVs@8J~tnrEwOSTmhOA13tXi$ z*T1u_D{!+V<@=VR%RiLq9w2_y;-3Z>0}Ymo`y(Jxg}-=P&%zu*wAUi2N4D$jpXR?9 zfJ8|?dm^jAOBHr2w)#rD2f~5T%?gxx-i)82`Y>9XmUH?65z_A zaBv~!5?21hT`ZqWYgn({pDqWd0=&Ziq5l29sM9V4YzO}l@}<$gYtF$j?C5SF{}B3S z5krb(1b>Ek&0sOW%>huTD3M_)o=lsQo_vD;{9rB4zQPv*+wo+cAXaP{iZoq!uqqe} z|BtvCNh!eh020LSYPIx_SfT-M03iS=6vzKV!bALrup-BYuEUC)PrlS_N|M9ZGkLW;IT=~*QI{+Lr1MpuG7I>_&R zHO4q#q@kn)UT?c64PVhz?sgu<5B6nwY~wi#I^q9zwr8%~9$WQ#f! z1N<$adgH17p9PLyK!0L|e?LTz2i*HAqcLtabT~brVC-%4guGCc?|HfI6?4JjHA-jw zoL9AVZp&-Rt@Z2MnA_l%h_xM0#^7zx#(-PK3Yr+KP%WD`p1MXZR)Ew3+YHMmQC#yi zoH@hjcAUk^q3!`^1xqo6O@-wkOP4ydL*!1RS-5kZjOlUl9d*;}okj+nr^{vx|2Hdr zOO6WFYOCV*|5yYwIDE10$UWuO$V%43q`ZXHW_igM`=7Ft4K>)aZ%LR{ttcg%Ta+>x z+jHa*hL(+j7g=}lK+j53)u}mDh|MuVjY4L z@IUT@yi)1W&-64*B~2M#dM=w}kNd{?8lpZ5-Z0vcfoDkaGj;ACE_-x!W2vZVN4D)c ze)~<=zA=WwJTta3y)d>e>2N~H(ltIvKY}~Nvvcs1jdE3lfkQr_~a{A^Q_AbxV zijLWT`^GRQDG+bH3hh7M_rmzvykrwD)*{X++ll# zrquiuqZHS5?uq}#_dA`zs3HV$u(;vw3Ep*r&Bu>#4jh-CZcYajwN-EgG>Q|6q7=ll zzcXI91jZt-=?cwh?!k|G&Ct6r_aTjT)4iSoAn7{jqSKI!E{Y6es!Gg8 zk}fcnfl)vrdW~TdN5;UlCM%L!6v`!~-?M3|kCZRH0Z}mv=wLhM=Ba{{#)RoiLgw>> zW^&+%rP_)D&*NcXx@UUeBS&s25nE9ZV~`Ve6EBH&f}%M7Q%eH2x(H4jjOkNjMc3rI zZ{?PAmgkAC46dh)TyV`o2c7`<+(a{{dxEQHObP0U&TxP*!bXCDF|wVsc+VMYN@{H( z4j#cQA>q|GhNw*Vc~dl3-bKSo}Th1deSG*~@sxb659hS^F?x4`FA zP|Db`=iqa=u2z(BE(8^?lqmr>4H1cTTefJ7qyVrEU5}`b7JMK%vM#!IbAEY8!Hq#z zrOVZ-Ux`tYho0~{qWAt+@~$mpd_9mRG06_-I8Ba9r3e=r+qv@8 zq!iZZe%UL(5vj0(6nr6&3O1UNU-fd(is@(pNvET~QUv~u?hb#|w{=gt0a+suLr+gr zR$H1K(fg0}KPUl{!dENh90nz*@W+Y~W=jcru3V||N)kxi0dB9J%Z$E@c&>{Gto0&h zhzi`V3o1As==`Fi7VwuyxZt?NL!E6x8?q##@Igiu>4?uQ(>x1aW+H zjDNbFEe&_puiP`C^&e5jRAqKo}Rt`lhH)^R;-2YpQd&n4(>xU*LHUtP!!7S&wHhAd3 zXJ@L&7|Pig!`k(17z6cW`3MOeZ*lI#RbM!9?1i#AJNeNwx8AVWo1;0NhSTtd0|!0- zKydTxWdl&Rt%|~L5pxko1fo3e6i|>rWw#XezsqZ30u&{taEIt^k^#bUOc^#w(nEmf zFrit?Lh7R6((SV8AS_$kb59A6A}11Ka{HY_zj$6p*dk+*XvMHN0k#lY4A_dMn+W$Y z@&qCRAZfvS$2a{3z6B;W0zxn^4X*`3;5OXAIu%mN9|AJtCCF9lL51nw!4vRGr~nYZ z6TZpXLb_Wo{ounZ8_TU+_H8%5=+4!fN0u>5b739!WyUfBKkzLJ5h!*h1}MU(MHx&0 ztRSz62^fiBK7mH{`~ZzDA2)Nr1-nKVnkF1~C&Ys>6Vm~JJ*Y`y)R4UZE}oaUS;2e- zPY-&Stb+WvY8Vj!#xrB%oq18n^Zk~*VRh57TW-DSkxISl?U=sg%3~kdacTd*VY4ef z-U?KFD6E64A;jC_)zK(c(lbP!Oj#4x!utiD@m9WIV%nCe%NbMCfx-c+3M#%R8=!+N z%2@_|8Xq$b6>!WT{IM`q4x^4S<5<-5hN-j-B|PBnYO;j?!l`tlfUqv768cuwFSX*+M>$ zuLOx$uK!!W@&aI2(OOcF=PhM?LChN@~payrCdDH!8ld~ z{*vPz7cnkVltItL1iym}JJp$4wzy*Tc{E2G*m(q3AS%?99i zlqZomMX@Fq@}jN&R@^>%X$&qPbD`-3d5n~_CmPiv=1@hI=45PVa-~Or^9QZClj;Ax zW0?ziz>nf^rWXp$xg>|xj@D;Q4?b$zgU|mdYL8uE0CNlD*P+N+La)YsoO5=3qfu!SDC04dNy`50{Nfa z{ySb?-ETiIJ;fb5{1&u^ zYD9yG+zSY7y}E`RcfL83sdz@QC0JqJ4nkD%hcQ$E+@gJ;j^JBm%B=)rz*KI-A-E8) zy`L_R#S6kN{x6Yx0l!O=0Wa{O)ATe$qcJ6AUBwK7kQ!Nli7Aw#KiHy>pdc#B+R!(+ zpV&6%9xsk(r!du|pzb~J`=ExCje2v-QPDFG?A&_YgaY_?34W@8siCsJ_}Yi4YcE1A zPXfm%l(5x8UP|PKxibp~w(XkmN94#mVZ@VdN}tlS{Yn$R^2 z>MO{ZAk#F4;6Z$q#Bqp(9^YT$zb&#UjZTcQl5tkE&>9_?xfnOHCqMJX&|{Aj?|LaYn-~@Z zN}{tT>X?Uw9fh;Dh<-a{eE3ZhQnmue2J4K*T!A}#2JMq*(B-8}0SI9JEtt4e=)bK0 zF<$foPN3f15di!pUWdy+OwWOQ1sG&O&uh|1`iQ`%yde2`PqX>k`!GNByBr*jbD45@ z^NbsjHAmPn;h-9@Vntv*J0z3 zu~+zSfbJ{jz=+hxJl80uF=4|qb1Q2xp{}CDiKg^t#DodXei9V|gl;ZCKo_V%Id1pz z$Q1#~fC*)x;oJE!f?>*vWD@Tr3qi{uMlO{d%TnQlpv5u*1)BxHpRYMd(G8m!8Ez^{ zi@pn@;0k70o7bS2ltiMSNuc|5k>yrABZsko3CNN4*fT=UfTQaMxkHCgI=~S6i{=oD zH{8J8s2CVE!3PyPz@Rh%f#dno0chl4`t({?rJUgf;iibrF}meP!p*#!m@-D_#u+CQ zb+eJC76rd-V$heThbB^*SQbeeE7-mf^y!UgvN1F_r)s`wsD6o#A{O^N4BoQLPz%+g0YZV)buF#QR1wZu z>PN$^h?DiGm(v5*)V9^Wd+hMuYfqiLX4l?AK3~{7wR-UCo3A+fLc`);P#WI8{p8_I zTQzOzD_{M^NGrT>^5C%>+U-&f9?eaDB;dl-&%{ zB84bNDL7oRK3>)OU#f+mbw<&)TQs2`~NtDQA|RmtMaOy8P~t_HGi~N649{^?2_NFTPA!g$>5#}F|ARJ20BSL zx(kiG3@o1)S!j$VO%p5tYcrEcxY}6(*0N1(yYL`Td1FvToQX`08C-%04G57kNj{&j zcF`%!1Qkpy19*u7lP&ZSsS`=3vwU z)KxXf^a89IuLJuE5RMj?d{cQ6z(QO7N96g%M;>{Gt&z>EWZNy_6+!TuR6q^lOmg@A zysay{axfN{tj@z=z@kcMbu^+GoW4fsv%Xj?gO6F3EKqd5{kKF+ae$a2!#5szgze`) z5ViqhcqwX=*F!rfYp6ipM5V$~^HsKNEt*e*%TAYS;HM1eR>)1p)`| zw1uzR@T8O!L7C#TW7=0_3%@R$!P@N|x&^E`Y>rKut4ksH&>>X6>Czdg!8xQpMuX5& zUZ`*97cgzeWP2>ZG$F(wv^CT3IyL9RRIz$en(tx&C{jp*Rv`KJXS(5*eH2xpe5UG0 zs?BBG2vuG-3P_FoToS366B3+L!*a0+5V!z*1uBAQzU2L~Yv{kJ-YABq5iJ*r8O)Ri zzc^~&;3!-gpPU)3!XK>W?HK60EMF_~ABa>_QWK@WEc*!cB*mx5d5>qRga{5WfigP8|1+Tx96s%amhmC$9=4*599g{IY&^$NZ3y_15uQ*{YU0bT` zlS|n~IfIEbnlZXm0)-~6KeKB;9GZdl-bR+~nR*EcL}@%gT!$oxH9dwVlh*??PXGm` z^9;uf14rIetF71~oTU=KZjkU{NPKu~9TsIkfj@X&JyGQH6WZ^pVt8Q%_HRv<s$CMu3{x;f_23nkvEcI4N#T<@SuZ9UzLE95A_*>Q4yqtlyB3~L61zOeq zm3b?+J#=}VQ|%^ox|82wdV3Sl;nEgBduz-+m8$dsWai&%7^rfp{M3{b)B%({|2JkZ zcuc3ihP2QRhmH(AIP_~5*aJ!kkWY%GN{hJzrKV_t83v>%$wOoZ3lf%OOUpczm&^jJ zE$nW(uv8{b@D%3dt|c$#kZemyWKx_GF;c7T7$>s8ypjnDm{=n5Qr4DUkK{hkUY?te3V?s|QlU(Zc)AFSk}d1U^~gE~ zhtsotj@u8snKP<`hyh3hLAPgW1}8P^M0}bVaj0T0+2EQ$L%yUOREZkqVg5c5Lx=ix z2MlwPRQ6;Z5g856EWFUe~1 zXTbm@!A^_S5=w1`Zp(qP6B(F5oaw}I5iv`rDU9edI{+XnzJvIrP9(V!3 z{?PtlPeqigd@zSJx_%5lGu`VvvnjwM|n zXF{58U9gq3ZR5&jy*TA#Xf5p@BbX>y_e<}Q5DoYM1B99yMU~Ow5t(rLiH7la5NDUqwr1?_%8`?tp zhacx}VS$2xzwZ_bbwFx(`km|;Fj)g1?Yw+`LelyFntNz5lbCoHcPyOH#%<9-X zbj|bWKd5g8w(Z$AfRHNt|Ak_Yf%zC=FebxS#+5BrVFEnzwDnUX%IN}fAkDQ;My%-r)u4rHj;*6c?OhCt}QXKwl*8${^o0#Oig=toxP z*;eAmhZFo@K`5N){K#^wyJ$yZPyX<~2seXsdH>K0;N4-W4*3pMvW+SJ2^bX|cWHYj zX!~)Rp*s`*;yZQNKt!GXLI+;G%964)N(k`=nAg$<+!XYl9&I!8STj6(6_ym4vhxls zd0wz2@^V{#*=;9ZJfZ_s>=Oeux+KVipa%`!9s;PSENHsb?myvc50kaG+7n6g$fTRB=i^2Nw!1}Z9b5)d%Z5rNT$cqEbZu>uc4Q736-DG5w> z)8heUrkW5iYV=AhQ9et*QG>ytYMydcF*iL*6_(tRpV8uI&q%okpCI2b<;00{=%sZd zdo%$jc)mA!&=D}D5DhCz$;7Y&jPG#6>NvMeLFOM6BlrUMSL_h1jQ$dS2Qy5`>obs$ zk*vK23Lq$`E9j7*wh?x-Z0-Zj8#ha`$$hHVsssC1MYal*>C~yp^QB>msU@dbJ5Z`> za=V24G7vW4Ef@!1U>N0S1VnK7cUa^F9GIkeJv9uY+;%!y^(LT}=9anGpe0 zP{iQThrln1yaaEfE|}pu3Ed7bCfyE4h)@j7P73efPoOHY4^!43g7&AyB&-*MkCRno z8c%dj_Wi62$U~utGZvB&j3%i1 zV>jE;a!I+EZO@~l02sdmHH1DSJFb$6ceaL$8G&yH3ZnEFl-meJB^u45el2)i;E zN=UoVl+>*4n3d(o!mKL?0j*|nVId0%^625J9|ujD{ICpy%~&1VGNuNUCrN8bXD|nv zVtwqwHV}zy?iUt$KAj28EEYyl(H<;f(m{(k)R^!u02K^ufbar|FZzz2E3x8Pv}VKui2*$pv(1g!gbQbM;3k{FG$~mxZ{~C zG{AbYMPUt@(*oIl@Sm{YXRwq5Yc|*m=ay*>V1Y|<{jTctU#x9fSgy53o9mZ07~HGZ zR_YJl+;t2~XxAE1CKEPlEzugjVcRFXQnnt5uewi2mrA(rRbtc~KAOpEYCbG_Hh>bo zZbXS#`W;Qt+?aqiyjE{5Z`^ly^Kz32Ue7HEd8ax$>bo~|+l3tKjpBA;bXyyAtmtcj zvEsCG;1BA<)5AGmR}PYq%j$BWfkOR->vr^lb;C81UNEEF_FyW~(gB+}&K6}P)h}3Z z=o8tDwBZx0_8e=6RyWc;jD`XsU~RB&s(ki~T4QnGWz&@yP&6Pb*A(p={coE{FOmWX zKnBkQeyOlhta=x(T`BmFg$}E&;DVLO*id2#M5{Ngt3A_GHH^E zZsDhB>!&a?aPtwf2i~NJc`}3JGA%FF9$ma-!}3C=@xdJjeSnA1N1^!M(xn?#7ba#G zSGF&fOvgq$9r(91+?CC_)4Sm@!0f_T0Q`7$=j>d~fJ?IVzBz!wFgy?OG@$>^+=k6t zV&_$I({e$jLgx}=TYVS=IoR}yH0mbaD4`PBePRPR>~r^pi5>BejkRlWxT`nYuAiPg zHG8^=BwueBH~C??*}=5Mk@oxFUvs1C2|XEG0cuH!uim)#ijrqew(u(sl1J-}Smj^Nm%IRT#(;x-`Mm&?Bg!5dJwV4Q!cS$?Fh;>)v37Up0g`|I zZZxLo`af84}0m+02l+B%sAfwLksK}q2)xA?g8qukR^-}v>X z=L#9_uTF!H17s|!-~aB~V*&gG!L1&==!M8C3*VnDW=?Z+p(ZHYcQyIrK!4)6;&prW zw;r8^8_fL!^1C>Z0c3j3)c|dPbOW|2c;Sms22^Uf+}zV&zwzm(IqvlA?Af;f5d`oT z9#|rbKZrd!$-m{65RW`Ei-)k785q2`p?=>s10Iy#lOAk%4omHmSW>+Q-I2mz`$>$Yot~qFI87j-#4c;Or&nh!QWy&izdfap zW&?)d7^SsZ>g~bXkQbAHL4ccI_w%Qk6NRbzSk}S9!#<(A#aB-4y z!01{ow<+RgYogl>l(|We%F5hd>qs@grWO3wLc0$7u*Ph_7eIU#psUK!1$4T?c~HYl zHdFYD~NDwk~IRkhhDFD3sP@2WSk@o}J7PP4i@ z{9&}C+N?<2hn&1*ieuZj!sWJB3*^n4Hf@%Jnr2^K;I{TeORWUrjt$bLX~!u0Qs~S5 zZyFs8f6N{{m@n}oW&bzCk#PfSb1SwG^{aggd=A6F=^OyQ@0BTY-FZ1)6)O@l^*(&DJ)*{l4>}w%ulJ7m2zCQDbQ#`(|aQ z{*A*Nc&!_LIYF9`cc$C|rVz;`fa>U=LUuCFsHmdVKM)Wj4?!9<)Y0Gt^IYiVGQeoN zsfYnJEYIaPOpgA~#@_L{0_MJv23pRBPJ2t|o82uVoocSI;{p+{eGd9ym&QLxE=gtn z8bpa1%L4MkR2DO`e48%XNIGZU{y;2)_I~e9KrCu#y2-xi#pvntB4OjIl_==M4ngU8mn9Hyt=)9ZL^aqbceTep8hwe0){%1j=ly8p}WytaglxhN$q9K|MgjKr{gA=Su~yP@2^pKaE3+(Z2u*W|$^vgdT z$v_tAIZo~nC56D&L}3?1MZDq7G)$u%2^peiE+qciY1VNF3!XZ>o*|D~HKTmnF6G87 z_y9uU^nb;+#c9jpd?J74)p_D5)|MsI9szelh#_dle!>R&tsWPSjJ@$1AuRAA!kKZ7 zi`Vl3pO3^_&J^m^?*c@p1|6`asEcjoxaxU1KbANnx4mNnhp5#>*C7Xfw& zpabveE7PYk7|IIlU+iJy2$edL;Jj>OlBx_yt*Jtj4M81ljZT(>gb<;6qXPd{vbv3# zVgCIaXO>nYSGRK2yf?pBiUZwO_JKwk=^>0d43W%0SfQE2+Z=SaM7eRL@ZkG1W*kcI zdDWCJZ0*!-1N$M(nU(m@4Hb|zTkAc-kq-rg>(6*t*ttPX;y56Xz@WJ8!tb@r^T0=( zO939Jq4Rf2l^UG2I7#8J33B>s4U~xe_xiTw%TKDNpR4D~UeN|UELuQZw47zCrB*aH2f3Ym2N!(lu`ikVJVVS zJ1EvC7IzGHM`|vpm6-Ta8U7{zo7C-%JUWRcZFiylMws$ca%rHM3XXn~*NY9xnqVNp zK{f$vK>IW$yrLL(P3&CF3q;Y&mkqNU5~s7~R|_nw38E?8E@-)YVYV;@?qjQ(QLGMl z^vffVJ;pq{cpPGIq#v}bl;J0q=BsFs2Tac5-!D{Ly*fGKSYs>YTdfYLc^6c zQK6Y&h~wW5d^-6bX~39XcPi3!B`^$!aC6L3k@$)B1c1lX2od!cu!3u9F<1(gYe}Cy zC{`eVAN)PY)li&@jwLJ}doDc@XW18fSGDsX1wrOGu+&Urc6_ym9vht2qG4l2Hx75} zu^uo!T7p5FqHLFClo{NtW9REry&YZfWMZ(0;ChAH$i&R@>ew*mhTtJ(n`%vH#78Pw z-rUP3s%Mnywb7DXYAkIl@Sm1Dl{iEz7DMMIK>-|ZxnffEt35Cm8gZ=jfZQy&VQo2^ z1v9UuOqn5GvKC_e6^Pxd888+kwGG$2)v!@<3XQ3S@BJJ+N48)(NoYw52&)K;>E2EAC~B z59@-1ie;;j&Bp9h95yWWPlGy=)-0ngT2t0K2(3vr<-vqyqLK#e5#v4(^ZIVVZI2;c zYYQ@3we;c`_i|v0E4WW`ZPr8k4iFh=T(5xME?d>)Zq3d(9wqUA;jIOD1H2b!tL0WD zlVB8xnCXb0fK$xB(LvuA#u}*o^=iYXAv9p(iwrcu;BCM9Weh<{9Oc)P1f*sr@WRgC zI|W5@zI^Wu2;}@>FnQrr(Quj+M%tX2F;SSyClx=gwH3Z4{QQHW8#5p7G0a9g7r95bF;+kBM54bew^M(!v~SMJR^Sde`tH zZ9$^OZCX=$&SaCi|8ew_P;5R;Mv{83MPuxRLAyvzj|iwq=amcp!dZ0vl%}qmU$=dt zzK}$@PH(g6*Q;Y+F`{74a2G_|!L#=qc=#kf2*wPG*fMxi}d7L%Bj|IpKlX zZzMaU>%bUINh}0Ksi9*Te9{fJmzX?(>4aEmQ?)ACOL$3uJ-rL=&D1<%w8{$$4IRWvW>Hp2`8PCwhb2DoVx!+cbu`gc_@ zVSrMEifu$GQoZ?Y%JMxG^=ht)nj=THJ?yPHevvE&I0tqof&|pCmT#H+9 zm*T}jDaA{X7B5zz&{8N=ph^u2Razj!ckVm0n{0MA2@#tA?_=BS?Ci|!%zK~v+(*ti z4;l-w1Vbl+B=a~s`P4qXxe*_MIYJG^X8TVC1Qqc=cG!YAz;Gm(FwB5N5TD;wEdS{= zKWKXxE0|!T#=?T1aOLA@b!%FFyM|fXQ^_ew9)Vn9EZXe$CtPZl-j_>M^U&VWrtH9}88CaS5$l@1aB1DrKvU)%c@OuvqbNL{MfC@bHNNkLVirfZT82&YsX z)2e=>nc~Vui8l(NAw+MDK43uq-oV;}wT^sYE{_JT*U^qWl*xF(#2Q$j>-xhQKP zvG|7QYXq%KMh`#LWzHZovCvdojq5Q50eCL-wTv^usbTd&u<`{`Peey)auC2{59&-9 z+=b1921Hfps7)Bq3OS>GtP5xjHL}6kQgHeMAY2%IU(qQdo1O?U{1mw#(5Y&lLVuDVSBUiRyHmsu#Dxv#Yy7neiFz2)@IC*DC|C-$^>wqF% z02#N3!v?SGK+FK0uu4DmI=UAko28h*ipj_LoQS+Z<}xg^N+++fIr?`GHj4q&oBAWF z9PQK$41gDnM!+7dWGNmXmct{gXI1nXO-r`gO9aNzkX-TbY7Mi5^T7%E=mk^bYM3CW}YX%XwM@h*SY$%TgSmmMlIA}Vv@1h+eKrTQQ&un zQ`FB9LGc*&sieie>mjElUHKs9c;dd0SU?<^EU3fUS;56XPfA4+Ey}lW4$M9q%|rrY zd+pFXgG?yI>eSuR>!;vx2nQrYB-q8Vq|0li3f4c@(WOumTM9iG8zT6M*TbS%8k>d? zVVNqfCd!HCd^F_Nk!%2F1HLDkR9Gl8-N`)1EchCnjd{5$$_7~@b_ePvm3BIo%Fqk2 zIiUYs-5mY4gZ*I^u+n#|i0+JR0CD2QJsSMV;S~6|aa>|VCQc}*pc_j_JQ4P|p$M<+ zJ7-hrVpkzk8D~3UYOd6YgUuav^`mTvZphnRQMc1e?#=a@`~VShvdh=e6Exg$v!P^% zz*tm>kjFzoXqn;qJGk204f%IbT;`y=K#@4*0VcAtr>cjwwX29dlSQMV{7z=HKbTE6 z5zs@%ZJ&4NJMkVSHvsqUaeDd@HkY}1#1X^nT>zp1rs>EKcV^B)pUOmw4hj&-+FQ{; zLEPFW7JzE#eHik;CIpbe?#}v6-e+pi53uX#8{mx1NB(!Y={-Su7nj)zf{GZ0jB5%( zMC*_-t5{)GWvPJ)nqL~kl(~rqRc3Esfsm6+L_L_ZWuDE!@5NRJ)xcye)(}qP=M;g$4zy^+u)uXMT{Uh&AaX;~5KcOc7f-f;fvcA1El(Dx=Rk^!4eke}_P zeR{8-5dhI#EOpbjz=FQ*)?05wg+Q);gnYLFG-y92R5)W8UQBWwjKx6SEt*gyg7mE= z=P=rcNJ8QZYn@3~f@xB486_GFV#SyO@(nj{NhK^F=uLJw_SgfOFAlT_zO+e(kj^bL#85d6H$+1C()KQN4Ux{`$%4cuBEqFd=1MzkRm07_z z5aOYLx{e{c0K6_@m%fZ!ld-^9{`oD}LA9`VqTjzU7A$_uTcS>aX0|iCC$c4>8a#F7{BYfYYn{fuvsxIYrY#0PE0_u7sL20 z$VMTfzG69%NTNKLafi36TeB2A;>>S>OYtGdb>zrsP*oA%!S5H|&Loj>A;1h`LT{9? zab+n7@zj07DFpAK0txdcK+=zuX{ zal;>Aw=xO!sOkwHG$FECeXNF6>mPucuc?I@Ye43K`XGr~j@ww9$wctKfg%e!Q`V7g zY{A%*VYdxfMx{J9Y`$tt3V*+L1#GFarRn&I)B5c7$@Y;8CynocV3srDc0uPL5na|h zw#nm(g&RhX+&><1=ZPz9_xjv`TOe!}sO;E5LsOxPu5gFFX?jyND~*Ipn2H2xol0q} zW>#9u^V5#0BOsh@Z&Mg(+}?WW_K+Y@p5pl4t{%Ii%g0rs)9LCQ(Y9Zy{O=HiwF$4TZVVm ztI3SVP@#klkh=080^sP;5ZLXPDW9uUfUnWrE|=DMbabGJBVU%GperOCr=*k~2Nmsd zbN{KHc7s&Hq33`hV1-a96-&%aX7uNd&+uBODv6d)Fo1*{#Z3FumX%wEVYSWh8zqHxq2pB~x=Zx6= znTxmcFu;Y_^?ma&=O4@bI7x48>?CeR^HReWkPaYLdPT67MzVa){*qpjX z(=KeBQr|Xq6%7}XJe*JdXfrqRQ^?GuVwmQFrjfm|bJt*}D;%;%>a#7$Deckd4F5Qn zCl|!9lWFy4AOWOScPNVb#Z4F%^n=zs8c6OsOr;r@m3l@4lCeO2oCjLB$hPK{x*~M2 zrmy9rQT?d;RBL-$$<#nK5qr@>>}070vF%T-DW*F4G zOdcp74Eb?_1p~LiiErO2+fDDvMV+ert#!}c4RZ>rHs~6MtF1OtbWhH~_ zGA`EuYq22svQjD&o0~gLQ5Zx4xYmKXu(h+%(Wulku+_&|fNBd#->)&e6&IIG+;yKl z?;0~cBzzc5!HB=N`|`O9W=@^2R9nlA3-(TXq3PrFszkon(Y)V`$?2rq-8Y7u77N(H zRF5Hs!=#3YJ4OjKkQAS=MHc##HnMQ`4*NvlvO#WHIC0!W2<11eoV(Xf3p%<@5=czp z*9fi%Pkz?)J$Bo3uN@ba&qUwBE@MfbUA%_MwlC~v`z%F9sU1gbv1JD!9y2GdhX&19 zsL9U*!eBpiZ%@Mce7V7n1*>>Us5OiLg3BaaSW#%VSo_kdo|#BIY?3mVfHj{2!aG*t z1JK9ob5EEOUVs8LVc;l$0x|O(X zSGR$rd|>~zy^zj2=*!R^maeHuC&ZS#ULMRhhuo=lqh5DKzy1W5z%6%GcIX!3_yHAJ}Fx?|m$ebL*7^q+tdILF@Z9=6al8={931*=O zJpunxPqM6%wxRBkr7L8~93vwSX24hy+Gd4K}kDeu6oTm4WW&BjCw^Tw$OGK0ucJ!Qn|x@ogUtB&uj%P>Ov$L}G>kz;puGB7=81^s zJp$(wnw)F+M;=?=)@gi*8PQ-Iy=5R4o;wGNF*$x^rb&fio5LG1UF95RRgl|+2Lmod zc~4~az5@wg^))g(WIDv5@+0L3OsnIa%=U0d(f{Vk%bTpt}A5b{sFl_X9J)U z27dETUXMm`^|#igu>M&A&fO-z$D260O`7*8%S$2I)>o%FA+4MJ6bO^cRKKiL*OaI`Dn7arE+ca> zt(b~GxBRtXFjN}U((QeBgFLdm8h)kR(QY;>n7 zySGBf+YY2O)TgP-ml3VGBnHu8StBmOdVGe-!kzxCzX$Rv9&ATDi6p|^<4^$ihe30S zv?e>U+*``D#36aVDepW@7zfc(<`-La*e$d525KmTZ=sDPGXF5sx9A; z=6*EYxKiofSz{gH_EJwnV@}63zo2Jaz7)XDaY3b#dfM^{KgJ01XfoK8fe(o1UCb2? zmB!EVMDh8YZzaws8 zM&HA{vQ}V4?*&%$d$yn2{%HFMmSn|MC}|>{GDi79z1tspLwF8teO|H zvO<_m9zR3SYNWyERc*Ft{T_TG$aUklDs0&y&X@{Z2-P!ludFXrz;YwHtqAnlbU2T; zRLBd3RF)4yvo&(?X0|`FNZAx>U z2T;wt08K7I+8EUg10Gb_AR;`$48FNRYKzfJ-QJ+f z2Si;;kkxy0hs#Vxk!av}-R3(Ki(t7qroG7^i#lc*KD zf-O1>f_+^q51COFFT^vMcp>Byv0{DR9o8^e8USiJ5HCbB0xce|gVtrcTbtuXcZZ2E z_W=8r+&vKTdBOQ3+5;6tSI`&8#dXvh@C3@QX=m6IWIT&2&G`ZhJPIZy2FkSX^0yHM zV`v~{C`{Q^0gCn*-77I55mXf$hJ(OYuCevi#7z=l31RTX|6OZWU^E%zEmC5$F^tEx zika}n#<1}Z&_MV?iIiEM7cgr>88r{LepYxEzWzViE*~Zo5E8UL3#n=cgmD}5p0FPz zQ`A=R|CStflp~S0qa_I^>7NTtFck*?5OXB}(f$8xpZyxtMl)uWqV0-+32-ELbjJd` zP@$ObHl1Y5?=rH!*kESn7?V1Mc@T2@P1>F7?#=%YO~MF$d;c%*O=ga|N~>9!7BbQz zLwzxkGzu1I=vaWwYR}l@NNJcKHmpTmj2aQv|9>{-1wm{t05Wu2v)@U5Q6v{C7Z$3k zqa8g3zmJV<2{@sLf|v}!oXAF`Ba|ZL5B`7KmF3%jdc_HkrXIlIM5h8mPR4L&zdKtC`C+;KSExk;OH;LLmm@!=}lH*HVa-m?A4_HUvHL^SJBDmO9K z=L+U<44Gc1wFmIzN;KD>5m*shHGb?`E8H~urg~acP)(J`RAWw4da@$CApxfe9kHVZ zMT*dFDm9qi)K6aE1gPwIDqbFL8`VqL zuYh0cZ*0njDq&wLln**0QK&&N&I*A_EIJk3+DL#Bo(&c}ZpdPEhNDiv_pE>vc=S<7 zNW8vc)A;D1cocZiTt3}azGB@_@@5zDL(82-KZ)5Tj3(@q{vzv_!T4z1?d3$lVPk{K ztB4)v!?1y1B$#6Xh%@vDf<6HRY-c7k9-TmFVQEh#5X|>9rUDp`9`UApb`L_-ric}y zc6Mw(cL4ykfk@NXx?Cz0V2Nlviz`x%Q_&VuiMmp$HJPJp2dS|nCL}?AV&8QF%zXoZ zK$$4>GEm(8P!92h!DtNy#is&vDfGwLVpKNP4m{01Ol?HqS;0*j3_}sfTAP_DZ_*hn z-@px2Phj}Qiu>^lAX=L#z}CqDImhaQJII{@L@jj5*s)81a#C^B#oRtK&Fe;kX}H$z za428-ANTJBr2xv@_QGg#Z$FmdN{P91YQ-!*YlZT=1ICGB3i|Vq3e)^4B#4;hLatw4 z2h~Iz=6+Z6c54F~D(~ND<<S?pXa-M?6vl_g=LzGnhSK3t&+Z#U72;u_#9sd&b5_DWzG7GC3$v2eY4316bsNdpd$ z<9AS@)gJ@*h&+lyr^I=JgF6lO0dk%R54V>N*u9MgDx9jy=QbK3ov3xMHTTeri$uGs zav9(NjrRc`1)tx1v{FM)#i8LMge#+4vm}p;(r1Z(7zcF zVFU5GtfRnMQe)7T5nJ^Q)Uc}<9V|L6;^^^`PJ;%i>;qK*mBTuYOv%IA*C;te@dCIG z)sWB7!jOjHE>y|;!$3=j05)N+79Nc&Xf7&#Z{onpTY$FUHG~6j?#k`7LXGVkU1~B0 zVxNn7xHI>h?2DzE!a)%^>ts(uG(y`3M6Dw^FF;5l!Mk<3kc`lbU z;R~p zEESKQCRgl~bH(f2aFq_IZ`1qj5dOUak_GR|AhJ4HwjZaF!8NnBQ_5xdh z`u0={y<2GLvdVc4;Q^cmB103xQL?EmvW-&?TS2;pAdsmWqemZ z1S}O#H`(2;Q2({0A_rn3%G}C}OUZQFOw*}eOHgamm=?0;T6&jG477){PjVh~1oilF z4hYOSLnAyVpXI=Qrh&-pf@&YpI1=`0UOmCz-PdzHxjl6SKz}?cIn0-$Vd<| ztYvIT--LxQUQ0{ueawAmu}!kg!d&$VzYUku#PY~1EZ`Pa)oKQrbh$bh32TGY+4#;1 zzOO1ehsA=Hi&=$Y0S7ZS9i9vBM6?_0h99s=!y|y2x5U!&^uu@nSRd5y8OyW9v)mw( z1cGvP1VN@R%qLB(3_Y^uA3?3t45s%jx}w*SD_UcZ%FA8~w3imS$=R6H;Po@t@ke?w zS>9hR)ckx3fxwFnx0pRgx!jInBM6PMuUE`r1w5 zFsg7-aSW9(b2L!dOV+dcf;~BitKxU&s50P59GB=ASRFhAy)jKXHYMbAF*XiSRwz=} zcH)T95nn)!c+PdgmgUaVlZ;J*Dn&; zNRFxm2HTczst+f80Z6ktoKbH}iR?o>XoP?p7YjDmcO>)JPovDawN)2qcFlIL;g1Pn__?^gOLTQ^|T7@Cx-+rsNr{txNs zAbj#(de4^K^X{0he6FZ;0uO060Iy5W6c!f@)(iq++LTN`hSrT|(@$e6WC-FYtxM}M^w{ZW zs5_{4bZZzP+SBQX6HYAaQPU<9iG$nvJkU_w1#>_RQ^N|OGR6bJfA@~S&(;J`co35e zn*$Ud3MfE)Dp2;V3k6Y?Zw!n%JMi$^~?Ll?BWD5 ztAhVH6ZvMuHq+9Az$JzG!ee26C*GDh`0=*H8i|N>wN!`QV4042l$l6j)zy1T<`^>1 zuN+{Of=9H=8oq2&ErbjR(vWVM{Jc;s6zNwTfsmJ7Zu<3hM^Ki3gIbRySCseY7l}y6 zT&SxWM18ux*@Zrbi%5s-AOQDS0=nEX5KNNg3Czhv=;e+((^sS%#0$*3NmbGzs451> zl)C8$Zd^3}9|gi9s3xXpTl9%fk>FS=5&XsH(ot03(qa5wW$T)pKD6+ObROgd;60co z6ur%ZD3m^w>w%yvYE(YCOnQkUbw%14h~vjKSeiF%Im82)r4t-r$@GJ25er%QtTjKf zZ=}i9EwEkIu-2?_*KZm6Ko*N@i?5=r%&GwTr)(T@5>U zM9~DGF+VRHSKvhxwu*?G%rO#`;O?VdPqTFnmceH9cmSaFI-Ba;KI2|o9$vrLCCkr( zQ))hwjQY9v2CwkPOa@pKo*f#x=0QjLiHtcj@(qS<5{EHZ9 z2F_*qkQC+(p%5Me*41zRj)yY}Y17hT%wk?l9Nx6pWwsaRJN}%&J2tNhhM{r6Rog_} zCkaKQ-LRLcMrc{sz$LO0_XZ<5XC(*GF5}0bgkb2t6}!Z>!DT`Y2!DnvX#5>+S7NYA z#!#R|Ku}VSB|CZI1!T7(=t{q!<2XgiZv!(PjG}y#N~vJp>6|_a>Nn`!J3U>KxSfZ* zPBbz@Y4Rx2^(!#V#xFuEuSG(xwx0#oMVLOGazUAuibCA8Xb+zDJD^VGb)>EiN;`A} zzJJ(msT8yO>%80bf!~Z~i>Gt4#3XNoL0G5*@b7Bj&EhQ~sSciU62hzMbvYD#${euU z&~MqGoe5l;$``H)%*1TJez-nrVAc-CHpk{P2q6=*BeC8zBYRg!l&>aEL4E?t34D|{ zn6WDiIR}|0l?31cD!?cW?dNrt+c(X~8nJmboj65d61tPQgPHOneq<0B`Nm&-J{<@6 znkD_1bn4v~2KmT(EUaQ=*TBBU0ZD1r7PQ9z(EC!v=Xuk=ZJzj zZ22A$mp^zW$0@`P%|nSEY~KfMTQ&Z@>UWaSd3+(A4sNLXtSru~}To`=V zf1xZ*FVxC$C9n%kcePN7AW$7(=1#aQ6kx3&!>Uk5^3^+#uEItejP02l*1dSbiHw{~ zPKpVj_K>|ntV15Me`6~Tn(-0kzsG^Y^6}Qj{pSUu_FN)`b~r>)eW031d>|nLMTJ>s zm`3bYPCMw&$PLw(+#2(X-8uzKiVk{A$<`4xYDDEnC-KISoXoEXrMW`B48so?ewAq8 zlgLbH71fsy!GZI*M>40&FCK@;0e(Cv=<|dR!tLX^L)a(bhLHYA5oxZO!QB59av^QD zG@`E^Z3k7nnB~4JlQSzv?0`N@w1SedrZL0N@IbhDTn8Yw27Y6Jd}ceF2-6H^tk@~; z!2K2(4#$BpRPt^xz&??PN-!#=#a_PG-ZH^>b-Oy{goHC4PDZJlL?HneZYw7J;Nw%5 z=xDdQ@S6zrh;)Dzi^YNrB`~tRtv#ZfNy#fP2o=X{bFm1f8%T5=ML#P#9OSFgX%}U? zy=A;{d#vNvY*d(``GylX8uFT1?O*!NGZr$$^x&PZHo_QGIO%B! ze>_om20_w`98!bx;?Ti995E1X^M~WnSS~%P9&ni}&!0ouCmxdWhJ^PA5@4UnWsU}XXV2qJj1@SS>6*Sw})Kjf3i4$`T&bavkuz0Qb+tN>P<~h0z3(Cqf)^$q$9is zvmOIqD49ps@?idD>3*$EgloSBt<_@yd$#WQSrU6pLhJcJeE5FR! zN7858lW`G_w)jHsuo5WnOEgy8(oBhn2lM0N@`9ddOSTkt7842lrPhgNJ56jwt=1ju z36wJ7rs$0_-oLCb&lrQKpvrwV`2~HV`PaY1jZ1_ETcPwo!H}=nO z*^R6ndS#8aZmheJd^KT{<&JQLQL2Je5U!Sm%|vzFsO!Nd0Qp7)Z-y!@PsbvsF4=vb zgLYncfVMZ4=FECxk3(0HX>fc2>-lf|wQu8tY3(?L2>)ihNA#1EFgv8>J*7}* z2Fp~k`Zzp?_BM@XkVkEUO^uLhh3QUr;B13tpgmCNY0D1Qv=RmI*|*WW_5l~ zhhl<1pKVLVWjN9th;-yqPQw*G(+AaZ zm4r1%0wf!&Z)zCtK%Lx;@t<^hpGL_Z&>b2HPbt**0k@rPPGFSLw5cJ%TPM-gs&7u6 z{ThVix%86yMu1=)BMbE)cwI}%9|!a4Vt%wc&UsI%vDxQAp9N*733gZ-$Umh_Dk){p ztm%=cqIAyojio|w+~&5PX9S%Impfas)ABixHVQlG^cj64Ej6R+ZL~uD z<=614P)uov(LWnSesgQ}+?ub#J+3@PV_3pmFx#UN_z4Fx=vtcIfPwaYXq))WJHwDE zCZaxn1mmVnEzac_0f{z$C_>`UY7@>_7(CzOf-&M!E=VJh5C(Hgrz;SNYNT=*;)nz< zyueaAazsKG;1=*+&x8a1h(DJDpxXNWU?5(3dL$H%I{~S&p3T`Q5oE|1#^OSa&f^4* zn>iz4ARyMdgYsO#G#1fghfuF=kljR~+1ZYKYv6IyO1e@if`HH7iL5kdt>jDE8~ww*e2VK z#tfL1wkvJ7+8(k!Z+m^HU2VW0NmEZTuEZFS)tKrg&so4sUcrUw;d`u&NJ=L^RN;3d8&yt|rTeg#vC=Mzw44Vvw4k z1D2gLcg~y~l--1Ol@bx$ixENY+?+Xcw;N)BF$lJ~AX1Fi6gq-T$9m08@@zwWn>iCt zvbv}@LNosf+bgzrhT33F-)7mEIRsHzUdI3}mj!b)a%~d~76gti0@E>eiCad**hsD# zFK1+Lv!=^Spl;~lFc`pV&QuNzBB-34Q)s?U zQ+PV36NR@F#5J9eYeRDtRdXE0SyTSVyCiQjZV?p`Q-p<4H+@voDu??kFv|kkQ3EHd z_2Wh!tu_2%TzFtW7_h)V#&V#Q(P$YZH)=3SZu66cWr}0|%taJFT z9kZFU*VyOosD2#^KY0OI*Z0|;+I;)0x=X~hFv*JR42P&?kF?f#yA9dj!P0@G1M|pQ zThS14`9e;|BIfRNvqi(4w*Olbb2uGPo>laod#Dml$JTPn7F%v=>Oqn+mTV(Gv{kX!UbhixHJ>Fmn^kP>o~qj2P=Vu# zHW7X=Aks<%%Kr+X8)lcmeYT>x)v~n%ZASo|be`?Y$TGhT&9@rJh+0;ycT z9P2jjzaCnjY-_~rMRP;h%MX5mmR5{Zvxi`$l08_bWjJabW^0|6+4Tv%<}#>Jzqnx= zYl>{abMZ{fxi(5+589rCrr^7qZDYa`^hHa~QW1n>Ld&h!C^DnR0Y6ru=~>MWqe5s( z5|AkY%A(SoGcBg^)e-UAZ1{GFXCzH0fFl+pXl1%&QD=S7MLbd97ZA`zQCn#3M8nUU zK|Pf&YAHlPw*!jqoiETLhvc)v#BX(daMBcSx)_cGeR2WjN;2FP zZK(VX5P)omN9uOiu#IkV?B-dk-qv3?IS{yv6QO=}DRdU@hf>FnHquImE4P`JL$$SJ zNrGFYxT<3WMhVsk98EQ`=naoR`T;vF)^du~zhF!ir!9{0YC+G`W;U}DS2LriRfl_g zt#cPpH3vVy-ja$tf}s}1P{3v+ii{X2z8(N>(Jf4rkE>~hwO)ENGTRy%#4x3~@+}qi zYQOk6=n5#_&MVdjP{;0=h*B=cyf8LlLhnZlxGI3aaLl^)x8=%qsPdYAWu@NRZ+}Z| zM_Ku;(c62#_N?v4n`wXWk@$kaSvF_Xu93u=vbu@-tbayYNd=k^Rx<}GjEE1T15w|= zje+9e|I`4N+Y`}jI^NJ{L>J-zSS;97 z)3&9f!Qs82DWs_NJHBlv?I_pqf32wmMj^Jie39G+yx#vdv#sI!bPf%_k{1W>9m9FM zEm$eB4e@uz)^-8n#hke3qrY{R?Qz==Hqzg%$0!CoUX>zdd>s&wBm1JJTMY+i#=i9e z$z1D{UC-;*IA^zN>Fx+;B9ci&EnjCZ=6254BYYA!S-!1=Mj9!Pt?AwVw{|un8wn_2 zWGxrhnMy!yy;IgL>y5bTqJcmZ9sLMAn{J!dHgjFKwk3^i?Hsqim%71|bpyQ%$Quq0 zy#~8An2xC%o8qyNIImP%!oUeyA)qNcoAU9%fjV$wtDdZ%qscnRx!H39YJ0#wJLj#5 z`7j|bXr#^+7mj)5i)&in7LM&cPvdp4i%TOMMOip>(;d~4OSJrY4D(PtP)LUiL+Gad zPHg}8E!dH*UC%Sw?@hLQP+xf&U5gJk+ta~ zBOOkg0YwPk0g1z)m&zy|AfzCu>Pnzxg(w}IdF%e_!{{e9&2_lH$K!>yp#tWo{(c6z ze*IVh9o^Uxjok}H2Piz(&7M8N9paeA0wk(-*8jWSiSaD`qj_B6Tbna>rw~qiruo(| zP)C*DfX-k&REhgH>`AMI8~_(k86D_vfXM|=!{B@PI_QF-wrubP3#~545w=sI41Oyr zIvZCn94<>Xvf@$yx&yRE);gfKg*5moQ)OOfu$I02dQAh{!v1jMbKR^dC;w!fd0Xir zHNP#G&(=C~O;!0!+a*>f>}lJpL+xa<&sxaAc;U{bn!Bu`ic2-OZ}aCZ?Cp%1)1gVhNFtz1kd(NH!E*2q5wU8qK07&|8k<|3y#sAQJJ(dfMA0PuFf~Keq`nIYMzb%+u#cf zC`_+hC*1m?f~s|WmZ^oTupNtd>S9duz1LRrtgPv?hBtsA>8Uv?N7TqoO_ETo<+X-? z?OI)jty&FPCp$G~<)XovsTUJ<7Y%bt4r^&&2ykhg#1seR%9ZORrHThvcCG8bwqQY| zmc1Dy=OxHU4Z7r2+pjj;e<_@a7O!RuhB5=ZZ-rtQZ(gC$8W(2RBm=W^D}y(!dYmEK zZrk?vq2B?3ze}`>u*)Q!Fu$I*h&$H;IV9az@9OTYjNTp5X~50mk!=!z@)pC; zFF)pm^5m{Nx&<;#&`cfOd0BTxy(slyYI$X1uaUH|hfuF`gOEF<1+fK9v*y{l+;)uZ z6x&6%>rpRx3MkKw%P)ubSA%`wAUmwia5l~n1UF1_-nK1qNE2eMvCkM_2vK?nB?z~# zuJ!+bFLZc8_O4Ed274FNrk#EuJL%SRg+uJk)HC)6f9rT_>ecPg&wYL)?QOVxVWTI6 z*NW)2g;c>1ZZ=|;I4Fx>0QqL)YaRfcRgG!5apT`v_l(_gX=u&<)~>cnCVGMGS_`lK z@!Y;AiA>zKP+PAFffwgU-%0T>CORs#OiLTz6RCT zQ_VwxE14LHGdB`d$O#VzA^G11bQ$1AtOi%(D1~_+Yo^)H{SU+r+|@&K2zF!(9-8aM zbH;}qYCFz$8ZdSSFZ=|03>$Z54(G#^MJohU#Iz5LiJ8O!5u8;90rm)}rgkHtVx(rQ z?nA9(a~tqwF9sptSZvIXa9RKn47pG3kgp3#P*yz{-(D)=Zcub6fFtG7w&l*=O85%n zeLf{yb5(eVXiUbOK7YMCc*YHJetoYGcN^wPNTx#-{s}E7V&Y?BUjj z6)9gFiQ7Fsj2A3lSd+{6g<$32<8&dvq@W@6R<~W39PHV%9eyL=0p-jH+E z__}?qcx}sB-dg#=8b4>CaFx<-1;g1}gxV%t9+XRgm)lljw?UN>Xjsh8*IC#&)4jK9 zBnu6Mge)2kKT^w@zYvS-FO!JiU&5jVG8n*BL9W)Bc{5=8_9&6;ahHL`vDT(0Z*109 zi{vna>a#zyFGEMh3mpu@!9NT=tQ&v_ehz1nA4jF}dfkTy_9iEW?l!8QdIGf-Ud_d^%)@SMN5D(Ru!3ioU z^}6Hv=;{RobZo7C%I$Xq@P`Qt7a(mO&eD_oc|u}+lj3zw)$WN!?XL3CfuQmyPiXcz zFu*mP@uz&!!5T0E!IfyjI*^y)1OJjA`K_`l6K95kz_s>uXErP z<57pJr6xmvjEtlLxin(WfZv(PVK{I=N6W9Ma59k1MZwnB0bg%-Ym6A-XH1a`Wa1dI zfs5r&NtZvH88eAT0+Gmw#F{H**E`Zo(e91fvjv3-w2;h)XkEp=uEVSrudM+Zmit@G zo3EgU@M6DxVLgpRvSnXG&C6H>=vaLt*R?I!is@5r1WmueOmS6RIATp60n;!q*;DB+ z;0~h-VG+Li4a^z|Yh;t^jlFM_iG@#0dhPCXFfl1IE##PG2=vhjEHJllI8OY7A*i^qZI$s_hVB z4~9GGZUYA9kZqnstYTmq2G(R5SSsU7LGp?jUUhf5aicAB^rzGQ6y{9V^mkB7Rz5S2 zp5rgq@OPu4o-oEf?!M7v{sr)OVHt}1(^=tm2rs4rS)Q=`=ZbHP4e^5J>Uz!9t>pz# z%8S{(;i?z(xg3Ms;2=L(ZySy7*ZHWD+=ou;Py6k3T|YQ*#v0u<>yWMC1uZYO>2&@t zz%OEtXW$nT{eIEo$(gf6RNP`<8M(;vik<1oQBw7aCvPH`|Mksxl}^>^iA5X^a~2Qd zDzh0(YV`EGN>>z0r{-v{*m`7Y#ZmT5#VKsLU59JVCeryg=sc$`Tfg&!Rcc?Tw)0&3 zY&JHz81=go&?URg_Q+=0Wc6gmaSDU2oYDgn{x9Y%-ZYzAH9UWR+q9~M!!r2kh7R2= zX*bJYHRqzY`k%RkR{HbM4N&&CRoC^+HJ$qP@b!1!HZ5xAMpE`yZ+-i^ z#>yFtU)l%#(Q~bw)by%0*}lZ*py>}bE|V@8PlhPWI+Xj5;|lG;qz#DotccM(q*lT( zG=4+IFw{$}on=){Mt>yIp0!R!6-9V~eBpzQV(GtzaNeU#%E0UEp!MdYKS8GIPowE* zce%W!i1s*Fk3-hrw<`z4Dx)FJ>I1%1p6+Ai4Ce3}d=Mf^YqXMvOxmCHL1fxW8it&N zYbUw=Ct=r&N`{Mk)Y-g2s(!oQ?nzY=hOplkN%W1uG`OJT!GLdWvBBlld4GNP@sS3* z3dg*OI5^Y+yQ*u}R?1KbBLMU=A(Qz z*!{uti8XZnZKiPY(OL)X`Uv{v`-d1H*}cCfLH5`t3Mu6!8%x$F>7h30t9B^P*m8B1 zb!~A^FjrTC)Ae;AlwR9BTighmel0g>HD1@H?r$^3_|*-O^@n;vvT_iApUmDSEb+n( z()Py=HNbMY29^KVEoF^s+oFjFmp~=>Sa`J2Q}w({Pd8#+;tOgltht z{$R7*rfM#yZ#E0kOad-fc;sq`96GREQY1y z54J~>1aC8L^3|H8{Evp5$lHiBY_3VqZ{7MnZ%r*_1(2JU+U~G@%hDF!l4mZ;zZ>M_ zZ^Ndv&WXDLUjF};^LG9G{8zT7<@IAy*4W-b&_}-z${_}ovRS_B^HK9zt@L%9abc@A zj-bD-y0r2`8_U!uK>lq#0Mxp%-L7C(pN5+8onS=_V{023+ij4ZKiH{lQ}NoT!?W}6 z+GYc>4RG|ga)32}rK|WYQ)e^%hx5@Hd&u_E=GfBUDw_q`Tt78`uwiYLz-!YgAvMm* zn!Nlia7u2Ca>zP4>2TEi8a21Ux#*Uvg%}$<4l(?77TWyH&9N~vPIuGk_%%CTTl}Ql zB%Ax@CUNn%QFKZ9?M>n1lgx$=(9JN&wew12j~jtc-)d$Y(j8$-VTVDl4! zt#PEbY>6%xf6#eGRMftxd-tj0D+2=cDOeZLvBU+XTw}7jR5&V&m$< z&q2JOx%sYa>#(`XZ+|`x{svFY&0uyp*TTZBjrq6)Gkzbl^d2_Lv#p1CKa6(+0S7ro zah)DO{aQ@?N@feBula(D{oD+~O*}!@OTMq^=7s^kl`kCN;-9!7KH*mKcEhvqYk9ny zu(zqfDlZ=p;q}o92VsQQr4`M0knbyFSWOQBMl+ay zUtcS1GZ>L@KPi73Ib#QvMWEs9&S&Rjiyk9EGQh*Hg+sF7BH-q46IhY{;)n>om2qgz zOA!pLjx?{s$^X~TXs&`AiFplAfAJQ>jM!{GuxSV)JQ$nJW&LYzQ=7t1mHQcP1*^9? zZfC2vh0SSesos{je`NKx1NTm;-ge@dD{Rb0xE=SzP&2OFrcj``rh1#<{yVC-Ic`5$ zy)A4J%(SaKUgG}us<$1s#e`RHJ8dPh>(P7fvwYc+Z3pdp*r7))Sa!fM%lAHV?Yq{# zy?EJ?M;&z7p}DU1&b9B}ZrP#Bj@?m680-NCqLUp%@UQNDTB;kGfh4tyC! zw?pxB|Kr=OPrAag7h^S6o=~|l_}}m%h}JTK`FaGSuZbphjA(Ka7jY9KS?MEw5+Fem zB4MaAL`jUqNrEIvilhOJ%#s|*lL9G{I#N$cq=7V&Celn=NGoXrt-gbFk}lFsMvxxT zOGc7DGK!2QW5`%Cj*LgmZ6cXOCX*>-Dw#&6lNn??GLy_Av&r^k2Qr7uB|DONWIkCy z7Q#pDL>7~s$r7>)*_G@@b|-s~J;_qC7ulQaL-r;6k!56masWAy97GN#hmhrD1v!)) zMh+)OkR!=a&W%w267|0iF}3JOl~2!lH17bWEHuC ze3jfuzDDjMUnh5yd&s@yK5{>KfILXPK^`LCBoC8E$fM*j@-6ah@;G^dJV~A+Pm^cJ zv*bJEIr2PtfxJjwBHtz7Bi|=KATN_2l2^#9uk)qoe3( zI);v=M`zMmbT-|d?m*|zxpYT5kIttH=t8=P?nD>U zo#_&~3*D9OMt7%s&^_r=x)?nC#b`_W}|e|i8tkRC)2riakwbOk+>9!3wRN6;hb zQS@kf3_X?}M~|l`&@a&w=}GitdI~+2o<>inXV5e0S@dkWlAc4)rRUM}=>_ycdJ(;t zUP3RWm(k1V74%Aa6}_5%nO;M$rPtBx=?(NodK3K$y_w!ZZ>6`<+vzHL2mLC&lYWif zMZZq(ruWc$>3#Hm`T%{9euF+lzeyjakI+ZyWAt0}+w^hz1bvb|MW3e6&}Zp)=yUXW z`T~8CzC^!Ezem4Me?VWRKcuhFSLu)FkLhdlC-imt2K_00lfFfNMt@F!L4Qf#rti>S z(O=Ww(BIPE(cjZ|=^yAH>7VGI>0ju3^nLnQ`T_lr{*C^f{)7IL{)_&benkI6|4Ton zpU_X~YFehBF&hSkfXB}`6HGG2G{a1A=43ABW*+8cKIUfu7Gxn7W)T);F&1YDmSicG zW*L@cIhJPyR%CUoo|Qn`Z)8oZnYFN1*2dad2kT^AtecHsJ*=0FWPNND8_mYBv1}Y0 z&nB>mY!aKyrm(4O8k^2$u+p`_m95$Ej$mX&6Yyn%y7O|b!Vzx6|!ggW1 zvfbG3Y!9|4Tgvugd$WDmzHC3XjP1`3U7&5mKm zvg6qC>;(2Db|O28oy<;Qr?S)7>Ff-4COeCr%~rB=*tzUHc0Rj+UC1tC7qd&)rR*|x zIlF>g$*y8oLnY@Lb}hS(UC(Y{H?o`9SJ=($7IrJUjor>xu{+pT*`4fbkSO~)yPMs^ z?q&C}``H8RLG}&y5c?*3m_5QCWsk9Mv2U}-*%RzZ_7r=XJ;R=5-(k`nF-`x*N=`vv-NWvf}4 zea3B^aLO6yTyV)Tje*;_gFCs4ySayZxsUsKfCqVqhk1lYd5p(-f+u;3r+J2Fd5-6K zffsolujeJ+z#DlJZ{{t$mACPB-oZP07w_gHcn|O8BY7Vm#Ygiod@LWw$MXq%BA>)3 z^C^5PpT?*28GJiFlh5L_`SyGVK8MfcJMwvaK3~8W@24{{$2h({(b%f z{xbg|e}%uwf5d;xU*kXFuk$zfPx+htE&en9bN&ndOa3;0hyRNIn*WCXmj90bp1;fg z!2ihq#Q)6y!r$ZX^S|;B_=o&&{O|l9{Ga?^{NMZ|{vZBd{xScAf67<$GXG521QAp) z!G*vGEG4wC3x{wDmv9S@@Cu*si+~7Dnqi-bsult_z=$cmiEi-IVMI#Dl5 zqCqr@CebWfM5}0ndUS{A6kVcQj1WDdSBw;WVw4yy#)z?EoER@Ah>2p7m@KAQLuyI3Xe5MLE{im!>g#Mi~$;vR9YxKG?K9uN=gv z_=|W?yf6MLJ`f*@zlpz#e~5pIe~EvKkHmk(f5pe*6Y;57Ez06EX@k-ol}vIeq(sR= zOS^PPr*uiT^hmGtNxuxppbW{djL4{r$+%3&q)f@Q%*d?F$-FGcqO6nkvLqX1qimAR zvPHJaHrXyaWT)(s-ExHNk-c)H?31J9XgNlXmE+`iIYCa8ljLMMMNXB|<#L5QR30V|mq*AW*Wpd zMtPI`io99gB5#$qVRq>%d58R}yiK^5(SM8|gsrhPwTBsJOoz!Brvs$8dQM;<$)b45zwWnID_ELMRebl~cKebHluMSWL zs)N+Q>JYVDtx$)m!_?vG2z8`7N*%3^QOBy|)bZ*B^(A$pI!T?ZPEn_-)70te40WbD zOP#G&s&mx2>O6J6xah(OVp+6GIhDSLS3n@Qdg@lt83J?>N<73xg(!mb&tAN-KXwX52y##H`GJwo9bcphS^_idRBc$J*S>mFQ^yQOX|Dod+Ph@2kK?@L-mS!RsBf)SiPoxqFz^T zsGq7g)m!Rk>gVbg>X+(m^^W?L`nCFv`mOq%`n`Hr{XzXv{Ym{<{YAZ}-dBHBAE*!2 z-_+mLKh!_fztq3gN9sT7zv^T4iTYHnR%P{>wrQfNW*TFdwA4y#ZPySX)GqDT9_`gW z?biVv)FB<#5gpYr9oGq+)G3|T8J*QRo!13j)OEUEmvn<})J?isx9C>grrULg?$lkn zTaVB^x>t|XeR`B0t;guGdYm4wC+LZKlAf%m=&5>|o~~!;?et7NOV8HZ>mBqQJy-9j z=jr)+fnKN=>7Ddqy|Z4TchS4*-SqBy551>es`t`+>wWaTdOy8P@2?Ng2kL|L!TJ!r zT(8iF>cjNm`UribK1v_0kI~2KeKY;`V4)hK1-jiSL$>0 zx%xbPzP>r3>d`Z9gFzCvHAuhLiRFY9acwfZ`Jy}m);sBh9=(KqW`^sV|f zeY;+z@6cb>cj~X{yY$!f-TEGVuf9*;uOHA4>Tl?W^f&dx`Vsx8eoTK$e_KDUpU_Y0 zr}WeM8U3vOj($!*uV2tF>X-C)_4oAm^$+yR`iJ@z{i^IPrtAKsz1;l>c8o~>woBf z>VN$|y1oLujidRytx3nM6yGveZDJ>B%FN6Rg0rMp6rE&SE;BPTGcz+YGcz;u_nQS# z{@?Q?*39f4?d{GEU+mY|Z?WHFf5iTb{T2H=_D}5J*ni3#%ACqvN{@nKeG2N-DKSM+ zR0S0xP|MI%P=Qc!6j$*SUkQ}BGD(?RnMavdnNOKtSwQ)pvY@h%vaqsH5`Dl?Rol$DiLlvS10l+~3rlr@#L zl(m(0ly#N$l=YPjlns@Ql#P{5lueb*l+Beblr5F5l&zI*lx>yml$_Eq*%_E!#24pa_O4pt6P4pk0Q4p)v)j#Q3Pj#iFQj#Z9Rj#o}lPE<}( zPF7A)PE}4*PFK!Q&Q#7)&Q{J*&Q;D+&Q~r_E>td3E>$j5E?2Hlu2im4u2!y5 zu2rs6u2*hQZd7hkZdPtlZdGnmZddM5?o{ql?pE$m?p5wn?pGdA9#kGu9#$Sv9#tMw z9#@`Fo>ZPvo>rbwo>iVxo>yK_UQ}LEURGXFUR7RGURT~w-c;UF-d5gG-c{aH-d8?Q zK2$zZK2|lhrBepgN>Z zRi~-b)fLql>PqU$>MH80>T2rh>Kf{r>RRgB>N@JW>U!$>>IUkD>PG6u>L%)@>SpTZ z>K5vj>Q?I3>Ne`O>UQe(>JI9T>Q3s;>MrW8>Tc@p>K^KzYEn(9X*HvU>adzsb823l zsg9@xwWyZVvRYARsZ}*nYieB`RmaqEwV_U^d#QV?`>6Y>`>Fe@2dD?C2dM|Ehp30D zhpC6FN2o`tN2y1v$Ee4u$EnAwC#WZ?C#ff^r>Li@r>Uo_XQ*eYXQ^ka=cwnZ=c(tb z7pNDi7pWJkm#CMjm#LSlSEyI2SE*O4*QnR3*QwX5H>fwNH>o$Px2U(Ox8XzRcc^!& zcd2))_o(-(_o?@*52z2S52+8UkEoBTkExHVPpD6-PpMC<F;&#BL=FQ_l7FR3r9 zuc)u8uc@!AZ>VpoZ>evq@2Kyp@2T&rAE+OyAE_U!pQxXzpQ)d#U#MTIU#VZK->BcJ z->KiLKd3*dKdC>fzo@^ezp1~gf2e<|f2n_~|ET|}|7mk*b82&GJzB5Ur}b+CT1-pMZK!ReZLDpgZK`diZLV#hZK-XgZLMviZL4jkZLjU1?Wpaf?X2yh z?W*mj?XK;i?WrZTl$O>qTBr?cSuLmKwVB$8R?v!CNh@m=ZI)KmBCV#?wNY(M8`m1z zgtnKqx3-VAueP7IzjlCjpmvaUuy%-csCJlkxORkgq;`~cw04YktahAsymo?iqIQyY zvUZAgs&<-ox^{+krgoNgwswwou6CYwzIK6jp>~mWv37}esdkxmxpswirFNBewRVkm zt#+Muy>^3kqjr;avv!Mit9F}qyLN|mr*@Ziw|0+quXdkyzxIIkp!SgVu=a@dsP>rl zxb}qhr1q5dwDyeltoEGty!L|jqV|&Zvi6Ghs`i@py7q?lruLThw)T$puJ)exzV?Ck zq4tsXvG$4fsrH%nx%P$jrS_Hfwf2qnt@fSvz4n9lqxO^bv-XSjtM;4ryY`3nr}mfj zxAu?rulAolhd!r1m)@iI>V0~@KA^{t#;@v{uIq+w>XvTnj_&H7?(2ab*C*+7>+|4~ zv-9cm>kH`r(-+hi(ihej(HGSh(-+s5(3jMg(wEkk(U;Yi(-Zpg`U?7FeTqJ)59w3& zY5H`1MSX_8lD@LOioUA8n!dWehQ6l0mcF*Wj=rwGp1!`mfxe->k-o9MiN2}6nZCKc zg}$Y}mAsdXg=k=NT zh+fc(dPy(q6@8Xo)g!&8*Y#0-Odr=9`h>ohzPG-QzOTNYzQ2BeexQDkez1OseyDz! zez<;wex!bsezbm!eyo0+e!PByexiPoezJaweyV<&e!6~!ex`nwezty&ey)C=e!hNz zexZJmezAUueyM($ez|^yex-huezks$eyx6;e!YH!exrVqezSgyeye_)e!G5$ey4ty zez$&)ey@I?e!u>J{-FMl{;>Xt{;2+#{{=WW!{-OSn{;~dv{;B?%{<;2z{-yqv{*{;&R@F^4gyF_+O}^csCezcFCM48>3l z&Cm_QFb&JF4aaZ|&+v`Fh#QlPxs7>@d5!su`Hclom488FA!A`<5o1wfF=KIK31dlP zDPw748Dm*vIU`{#Z>(TUHl`SZ#*i`9m}X2jRy1Z9D;X;rs~D>qs~M{sYZz-9YZ+@B z>lo`A>ly1C8yFiJ8yOoLn;4rKn;DxMTNqm!TNzs$+Zfv#+Zo#%I~Y3}I~hA0yBNC~ zyBWJ1dl-8fNh4*Xjf@c*!$#J~8F^!-F=7;qqERx+M#Y$ARE@}}8FgdS7&FF=hB0C6 zW$bP2W9)0}XY6krU>s;1WE^Z9VjOB5W*lxDVH{~3WgKlBV;pN7XB=;wV4P^2WSnfA zVw`H6W}I%EVVr54Wt?rCW1MT8XPj?bU|eWiWL#`qVq9umW?XJuVO(ikWn67sV_a)o zXIyXGVBBcjWZZ1rV%%!nX54PvVccolW!!DtW87=pXWVZ*U_59%WISvV?1j-XFPAbV7zF&WV~#=V!Ud+X1s2^VZ3R)WxQ>?W4vp;XS{EGV0>tN zWPEIVVti_RW_)gZVSH(PWqfUXV|;6TXMAt`VEkzOWc+OWV*G0SX8dmaVf<4V*F;g*BQ!{nbFiq1kZPPJb(=&ZDFyrPVb8d4Ub6#^k zbAEFH^MB@o=0fJe<|5{z=3?gJ<`U+T=2GU;<}&88=5l7jT;5#4oNP`p2hAaKsyWS^ zZmwv~Fjq2HHdirMHCHoNH`g%NG}kiMHrFxNHP6TsnKSd|OmoC6 zm_@T>md%Pe%dDD_Su^YAs5xein+e8+s(e9wH}{J{Ls{K)*+{KWj!{LK8^{KEXw{L1{={Kov&{LcK| z{K5Ru{K@>;{Kfp${LTE`{KNdy{LB2?{Kx#){Lh-hn$w!g>alvQKC9mvuws^Csg`Ex zmSLHeW!aWvxt3@7R$#@gN!HxfJl4F{eAfKd0@nYm1+9gwg{?)bMXklG#jPc*C9S2b zrLASGWv%6`gtff2f;HKiVhvhD)>LbnHQid#nqjSEt!%Agt!k}it!}Mht!b@gt!=Gi zt!u4kt#55$ZD?&|ZES5~ZE9_1ZEkI0ZE0;~ZEbC1ZEJ03ZEx*h?P%>}?QHF0?P~32 z?QZR1?P(>gl$EwJR%i`dSu1Ddt(n${Rj`Uy$tqhFYnD~DBCBTAtx;>t8n+tOgteEo zx3!P8ueG1Gzjc6hpmmUSuyu%asCAfixOIeeq;-^av~`SitaY4qymf+gqIHsWvUQ4e zs&$%mx^;$irgfHewsnqmu63SuzIB0hp>>gUv2}@csdbrkxpjqgrFE5cwRMekt#zGs zy>)|iqji&YvvrGgt96@oyLE?kr*)Tgw{?$ouXUewzx9Cip!JaTu=R-bsP&ljxb=kf zr1g~bwDpYjto5Ary!C?hqVA$zJl&7N+r zXwR@$vRAfOu~)TMvsbs*u-CNLve&lPvDdZNv)8vbus5_fvNyIju{X6hvp2W5u(!0g zvbVOkvA4Civ$wZ*uy?d~vUj$3v3Iq1vv;@mu=li+cFIoM89TIx?W~=%^Y%=8#4gxH zyJVN`iapD&+L2we>-MNUW{=wqd&1t!-rL^C-q+sG-rqjJKF~hMKG;6QKGZ(UKHNUS zKGHtQKH5IUKGr_YKHfgTKG8nOKG{CSKGi ze%*ee%F4_e&7DU{?Pu&{@DJ+{?z`={@nh;{?h)+{@VV={?`7^{@(t< z{?Y!){@MP;{?-1?{@wn={?q=;{@eb?{@4D`nZudWnak;MdYwL}-x+XXj^e0}=ID;$ zn2zPxj^ntF=lD+G#GOgb+|E4Cyv}^i{LTW-|C|M#g`9<*MVv*Q#hk^RC7dOlrJSXm zWt?T5<(!1Gyt9Hc*_q-DIz!G>XPPtJS<#u{tmLfhtm3Tdtmdrltl_NbtmUljtmCZf ztmmxnY~XC@Y~*b0Y~pO{Z02n4Y~gI_Y~^h2Y~yU}Z0Bt6?BML^?Bwk1?BeX|?B?w5 z?BVR`B%PF#b}~-r3_DpT=j5H4&WKZRicZNXI~8Y^Q*|Pz=G2{0XUrLQ8qS2Xm$SFC zkF&3{pR>PnfODX8kaMteh;yiOm~*&ugma{GlykImjB~7WoO8T$f^(vCl5?_iigT)S znsd5yhI6KKmUFgqj&rVao^!r)fpejAk#n(giF2uQnRB^wg>$8Im2Flk>Cli}S1VoAbN#hx4cNm-DytkMpnd zpF4*;r#qM1$$!gxN&!qJGVQJJFh#RJHNYt z`#*Ox@);>yX&~?y6d^?yBoM0x*NG0yPLS1x|_M1yIZ(hx?8zh zyW6nHp5vbDp68zLUf^EnUgTcv zUgBQrUglozUg2KpUgcixUgKWtUguu#-r(No-sIlw-s0Zs-sax!-r?Tq-sRry-s9fu z-sj%$KHxs+KIA^^KH@&=KIT5|KH)y;KIJ~`KI1;?KIcB~zTm#-zU02_zT&>>zUIE} zzTv*{@zURL0e&BxSe&l}ae&T-We&&Aee&K%Ue&v4ce&c@Ye&>Gg{^0)T z{^b7b{^I`X{^tJf{^9=V{^kDd{^S1Z{^!l%&FRhM^?1ErpV#jVcrj1$R1{m)J;O6S z%dN+WA791 zQ|~kHbMFi9OYbZ1YwsKHTkkvXd+!JDNAD-^XYUv9SMN9Pckd7HPwy}9Z|@)PU++JE z4u4L6F2Bd`_51vOf54CVim&>bult5?`j&6|j_>-O@B4ut_b2&t`}6qo`t$ko`wRI0 z^B43N@)!0O@fYYj=!$Ip1;1ofxn@@k-xFOiNC48nZLQeg}oihrg$v^izJ?&-kG~>}UO)pZ90_BYwdz`X#^Y zSNvIi)sOs|U-w7-F@M}|_!ItK{@(sR{=WWx{{H>}{(=5M{=xns{-OS1{^9-+{*nGs z{?Yz1{;~dX{_*|^{)zrc{>lC+{;B?H{^|Z1{+a$+{@MOH{<;2n{`vj|{)PTU{>A}a^{;mFP{_Xx9{+<3^{@wmP{=NQv z{{8*~{)7HQ{=@zw{-ge5{^R}={*(Sw{?q<5{%O={;U3L{_Fl5 z{+s?={@eaL{=5Er{`>w1{)hfY{>T0&{-^$D{^$M|{+Iq&{@4CD{j{`dY5{*V4o z{?Gm|{;&RT{_p-D{-6F|{@?yT{=fcz!5qPy!CXO4&>Qpx{lP#G3zR?&v_KDxzznRw z4xGRZyuc5FARbH#<__iw<_+cx<_{JK{ueA5EEFspED|glEEX&tEDw@cp8-g2y zn}VBzTY_7I+k)GJJAyldyMnuedxCp|`-1y}2Z9HKhk}QLM}kL#$AZU$CxRz~r-G-0 zXM$&g=Yr>h7lIdqmx7mrSAtiA*MirBH-a~Vw}Q8WcY=3=_k#C>4}uSakAjbbPl8W_ z&w|f`FM=|Ufhod@i+q1=Z?=4pEo{VeE#?X z@&Cmaj4u>lIKD`H(fDHV#p6rFmy9nJUpl@_eA)PN@kD(2_zLmK@hS1a_)vUmd|G^Z ze8u>T_)77WzM3wCCP!-3e6o}+ zglNlWONlgkhgFLsba;L^A7)gJ7sBD1#=&Yno2v~ZtLa>RG*pw-YI!V?N~T9l304!C z@>r=2rGu?jD?5SS!s``>BXpR!#dsTq4i{u`7S@r-liIqm(~5p}H(lH(9cb{j;c|5> zSX_+LIWz{Qn?h$PUSl8ULtJpHM|V${1REj*p8cN~!`N0mGt!fYN9)ymZ{CQ$%|RH8gQ z+)IFon+i*rWHk|vViCtA+MiAqkrmL3+sx6QnnlB2!`+3+L?K@a)fTRBFqN$897-ok znL?;>BvUTcYoa$DD0)}&VP85Irblp0I9e^2*vfArG}?x2;iD?CdPO#164Ig+4H293 zW)ova;U?JGqeQ);a~75Wi7w0dS)!OP)gw(Hl|ns=33$Ap16I0_udoTs4>VhNAs^MW z7CNpp;l6aC47P^9^$feoLOGdHIa*ETO9G5aKv|Ds5_mbp6N}OGvNRd zEs7Xa`mH3R2*gT5p+D>)?R2?{naVE22El13baY{Cfkw>~T^IpuRG_RgJCW5vsaNCy zf{n;#$uYEaHO%C}Y_Y(5)75gNCta^88B8BGcCkznIVYI&W+oiXr^7@hj7G3P41pHQ zsXTTUfkl-tITBW7BgoML-KLq2ty~BlM)*8lSYFRkl!^MX$$B!lxsrU+(KvN%^h)0Z!SZEE?_a9O-t4o9=M*{v;`$kf=PtQVhKW2Pt~f)bWIm{y@Y8L0|Gvt81w|d#TC9kbkew} zLl>k2S`toYuVOv}4(N9D;_I-3gatr1N@wEN0uMC>Azd!ii=}9Ofns_?=t^O;X?y+i z&fX~Jf+3np$x)nC6Bq=p$QN*w&xB~=8@{}%AolYlkc5`zQuw~{Y`Qi(~y zp%*e|T`7i9l%yTcln`gbxa;E@v=dOT+aENTLkO zB`cMN&cISw$1Ets7!rXsbD)Uj)(a4~S*}MR{*LCuo?<=QSEO~@TMEY_y;LUgmOuFb zq?i%hZeImVy#@@tq82KZWF>^OoUedV9l@^NkFiPT3o5%+@W?{JZ5tZ6B!r#> z4gNqi9Il2~d(|+Dsf1OMv8&}8^8OOoXVN2MdB`K2&{xH65JHkoPc@4As&%LUu_&F7 zqH;CrkFaLbxmXkyu&~P2-U!?S#46?C0GE7vYT}EqS^-4^tW&Jf;6^;ISiI!|XmnZt`c#Kj_#gwY@VdNkiM1@gl2>Tf{ z-b+6!rvKP*zJyIBHcI>m>rw(k{hZP}hSktFR;I;0R<0H@bB+&8l*`3Lz7%7>m_{*L z4>WL6ooMaNT$_m!^tz?$AYVdH3QHGrBdoE(5+D=AIh73!WLD}y@?E)5t|p?fB;Ku* z9fk{-V+|=-WU<{~%Ow&a(ui@Ptvp{EEd%Mz=7(!BY&_sCwFX!p z-XNRGV1-dFCb&@43ziV}(I2eMLK3<`1xpQM&A200A;g(lqKs{+pTn4g#lF#e6{9@{ zUJ%y$X}c{~g{DUO5uQhAqC(pQp*IP21!@oE^=wEgPDW}n)no?K(So)B1smI{kc`{# zdPQwv7|B8!slv2)(_ki$E7@jarR!DNJ{uVC0(5_)iHG%Sc~Xb0mKe=LN+9+>!0C~e zsV1`tl9&>MN)zr0v)O*E8%(EII9@47mO{UX$MR|y={j5V|H^(^zzJwQIHVKt7 zF401(xPwq{wl=~NgkdfLLrG+Fx3#u(Onyu}F0!Z`VXKFOeD#P;V9@Q}4IqkP!;A(} zBs7H8z7(cwuB9(BwqZzpF+r@O2P+X;3)n1)NQ=_~zs zPgs{4<_YFv4y!q$y*H~wG<9g<^x=lmA=rBrBatkCy^q%tV|V~q%^*(q(^|!Oq4VI* zTIxMk?}#gP@dV5vVU9!%*Z?pK3b=n-3q_bjaLap1NWw()h#^kbFo!)O0W`yX(7M75==vfE2L^a;eH~^M1#1*{1BIGkH z{(QBjkTQ1cgLJG+0{^S!d`1&k1=^<0;WXG!F*G@nf$X0G!w@Lxoy6lrSEk0n z2*u6_ewwSNT1X+8az#tIOu_}uH7YNXWh87IbT9c51SPD&qPQDK^i>3ZvbIXH0qIsC zQF1t0%}WIHJDn3Z7L}3}Ow*b`Q9dH16N-neLF~euvr^dfVECn#L7>j@@)#ItR%1vl zES2)u(5NHii~^P=Kw7-T(8V%M^n zOakK)Xh>i}VcIM)wgK!{5FDyvrlvy7sB|bW+C-qii3v|LtX>prhGf8yb{DZ`BJ5al zS=RC}agB(jFosnTVM7%*(o~(6b01h{Sc5uTh4}>fW|&D9{N@(Z#vR=jQ8GdkT3iV2 zFPj+4g<)X;EGIddENR&!q-idC8ge^JKRMDFhAr5IHZw+#bOgmc$T3 z1;oHZI}+nd#<09Zc%>Tg9>`KsPlXzjbGTL$gQ5ll74Z$mr-t*{VzMWfn1cU<_&z}HVkIO0vm_QTpfW*OA77)nT)`zV##_9=Nv{jEW1(- zV?`{*Bts!q3n`p<4hVUKYIp^CGD%@^D*}d^$04^VEWl*Nr8jGo>C%a&3deDE3<_fv zazd2rW1uxrhPskYB<1W5Sne26tDAbDK#_v{DJ2A5%Xur4t?OM29-jsh#LFwN?iA#AbwRj3r?a zi;`nl8s&n*G4OVcL(C2V0X`KbhG6EeXZVj)@mmu&u*Z#~>`90mzA^WTq@`fywFB zj3JyJ{O|#eMg3$7OAL~6tVArO3WJAm{3gVOc+VKQ;K--sH9c@7B$Y6wL+Gf|D@Q%x zk1IeI9v+6vj63ECfkH~|CIW>nRKq9;8ygJm)WGF=GV#XP`UeRnMrKE3r@%TPO$Q83 z;kzgu0|*QYP=5pkyIfF(4GNSPlidhlsv7{CFKill%oL0%RAv%2Lb%|>c#-TqTpkyk z3fA}ZNL3s*j2Xd4MYLAf#x0RX4Q5KYNsKfq@{Cc1?1>H0tp*vqASF2xm(n?L%xJ!d zg~|q+m_Gg~as(p>(r(j-#*9a92Zb|ZNfI6$yA5X@k07yb@;Gv-32#%& z$HuM6R+}@32EPw7&{#=mpyWJNg+qcypNVb&%$6~ij=_qDgpGMec0?lR?F3?})kH2? z7`C}KonS^$)~}raX_9-F=>jdc1N9^GHLTW{MWf&qWiHAo90nD(FQU>;0aFdY7~@3H zZUp})pB#zNNGhHWDZkWu}mVgN-U#n+AOQ5iTFkDZtHE_EMT8vanW3#N?_G!a;JiNbLK#7@r}+lErW~hXl*R z6S=~OCOkXreMl0T<&GUuLwxpoBXaP6kxM$g35*)Ep=%NWjVwacfJcCF+!k0g0-ci# zZ(chA3N}S7$iqp&a6~(v7}KW&t-q53)8DAg-d&oU{>)Pla*j2TufU^{9A-vB$Q2<8 zLD?7vmFn_E{PjnTBFRSztq>+XFlQZE|A=A;Gd|Q6oLv*#jApVbI5PYrmH@d;16oA~ z-k-_SeC9%wFy#wA3VD!X9x^nl{T$SVFP5=X>>^loXoO5uqF;mAViF_7r@|7c%2AH! zSVoWq2+}#kuOpZo1fx_*Dy3LP&`DwOfz%|H5{cUp7%vQGf&-_cXh`tET&-A`CQdX` zu3@YM|Bc8}#YsWG#6t85pZ%Gy-oQ9T7bmN$d|~V#Z}jd7mqd2!_@h z6wwS2N#LS`Y7V`!2tk{y0DaKlOJPs80+BLVszdk8!j40c9%L#)d`2xCfc8+ro-%;R z1JmYU06Pn_7eLS~HAtqWU%yGk`6SWnCZeq$1`>=~j1-r|(DcdJ!Aco8uL>}orAKmQ z45SPv!2^+fsn8ZM0u8Uw)&sKyPZ32eHJ2@7W|r#BmJ7o!yt9xWE5w6v`!r|a!IdOs zW*w^>M&Hn8%nADOL<5`|R`=ctc3d6iD2yW%bvS|)%%+eA80MCG3StZ7q+ZxVM#!}R z`FjkDl8JJp?TeTslAuXq6B-9Y`Ggj1hEYfw7YC3s(slqtI}TtJIzXI&(VpJ)>kUuEf7%J}uk56}?h_2veDa>MW$wMMdu;74XCL_&dg!fhQ6BEe+niMI- z$Y5H8Fu-Hb#-UijGGB&1Pzg!-1LuJqR{%p6rgFleG?82=-F=?z(B@Ea;*|=-S;c8pGi#la8U=)+2?1OwDf> znaLnes>(Qz#$lVN$u{fe`{DZ{Z9!Nhtcko<*lQV_FA@xu7sh>QEZ~wFg{Sa7+@8Rw zYzyq8Bcm83!4&x5WC=`>z@P+%BrsJ1(jh6Gk3VT`Sg!R9)_#%oF{BnE7Z zFC-sy5UVNj0zkL@+3@5?nI|_qJy32P$xRI6P?zHPVYol>_lgDqATIPTX%)n(Qyc)Fl{lW zLE8m$)FQN#4Io39Letv2p&wvf+f4$@{^aIS;CU%z$`cfKintUylH>~5q(v+zz5XTw zMpBDfj=CE3NMKCe=4JwkK}x_T?NG=kwyx3$Ia1jh>!27E)=BCo)C2e`2&1sjbd(rs z#)PJ$K+?&1*i;*uy@|?B1n(q^!;~0{76oJGhjVPG1Dh(YLUBOQd+F-5^uSLmIe3LR z1<|Egy)AgC4W4QV^-C_uE__NCKG=m1b>ZFTo7UAny$fHl3!l-2ujGsSqsh=5IvJu$ zL{)SkL7V#wAuXwlWpU=mKw^F_ckE+?;O~M-1svJyB(b?imj7W2+(Aq!3?G@Uv(g17*k zMRo>No`}fga={5PJWkV7o~piMpr<9ffW!wgeC<-ILvgd+kr=~G~zd#M@Yj+ zq$k33F6bg=l5mve;$75e47z2MYefna!g}k`3;AlYbvKaPpbEDK9h9Jq177}kdd&^I(scSl5Dls>Ja}Boh^rItlSn1 zF;OVj8XDRVEtDV|x+TMk6MU0y;e4ako9&nkh*Kf?JhFvpwYlXxl2C`e88T)i)C47+ zu8qzsVFcJwL|md}tBn8OO>+yfh;fFGSIB;DR|9UU%g!rIA1dz{B`Rsecff+g3+PGwT)4SZ%$wcs$#G*QM!26fp=C_;63R~i-yI>4`n86(-T zf^c343D^Pp7^IL57Aii>41jo$?_f-V1H*`K!i?^Rdp1k46!bGh&RQ1gQ!PfZY)FnS zY+d|VT&@os8zC`SEY(_0V@5#k%jND}OiE~}!o6#=X6EbSeGEn@lwo*>3c-&+xK1b! zi1-n;v9dTr)Q=NQCWCNT%CP;W2z2o$3`>sRVMO^c}(LGXs3zZR+y+(StSwRkfkG|H24 zwAgYW7&BWDd>3%sjM2a&f|kGm7Pf|XYW_RqbVSrrN5tHU+ye3xvEbES7-UB5&S=}j zpwks^OIAbn#K_CQ`^ZR}VpC}1_KbwUr*yRscHu)^_|z_ZS{FXO3tzDdpV5V{B+Z|+ zK*g<9p@TpQY{T3pOo7kL%sICpiD27S)Q3C^Z?Jhc=&B+SZa@$aR!nx_L7h3O#Wo}m zz6UA11vl0U?_-Voew)Egi9)T~O{&%kY7I7j_&yNaWp&tC6N6+bLrgO?{1BlWJP(sz zHLR}`*8yl?6r2G}BsK~I8)e5J9FaVY`dBqjab?VFI3N(XfuYNC-p)YyEHI~O>K34S zFm-<>Y!xEx5n@iJ(VxauVE8PA=&Uoo#ODD5Zm<;~>ZULfL&!WLn94=Oz7xmmjSyio z5J7?hMtL!2Bur-OYg z46BdXpP{(1cZ3vN3z_YL^AjFp_O&O~XW;wjVQiN0$Fbaw)<1lPt!q7)+ewa36`p^!h3^(*i zDv9L6awthW47RHullD6gWqeLpEakD%4#PMNT@~SdwcNbIRww5>xyM+3MPhL7|6dcV z&-hwUxztqZB|D`N6@EBKntds__;b>%hDAy;bp<4f$c^s>;L<7U{|(&yXk*@;#Ze1q7314Hn&+z+0sa-4(lgoAb?M0oY>XbE^9wF5TduuFRt&=w<>Vt3yE*`Q>EsE(z zG(D5!7(X)L$%Z(QMDQ!@h69k*ARi3E)K3aExeH-fK`1BUTnlxib0Am-8y^WKQ3El^ zJn@FvVEalC$C0FhZ6eZWhcA+(2MLF{*SV%@3WmhC=w=Wjlnj0={Q0mPX>khsXu6(e z_A-HHAa#(lK%nG?r))yx(vlMgPETRk#PlnQJ}{YLqLp9@WPK{RiU@;*Is?}zHbV#| zf&^zo0b(}ODa4tev{c2&kLDwih9h`d^JS!d@rY)`R3Y9SvVDt!kQ690r6jU(@=>`& zp;OZ71W_73K3^yREDV-KX(0$%Y6We?euR|aX(!>qI`Zo%R|he!2BI3kn?wxj0As@x zr-5h);n3rGKzRK^P~l`%#CXGH1g}dL?~8(#x!gkWt}y(J^Y_O43okP<9ExhvxtEy- zUiBiZqiLOnWgD7HPr6bkSARsQgri{rGItTPPhpb^@1mx_sZ?befJ}{JzBWX~Kn#+h zvy3Fuw5p@FrCV?WMycy1iV6uDxq3=jdkh~u`RIq+muuGyuLQE>E zhDZfXgs5sz<>uu~9`6r&4weS;9w)+HM6Xu*u+pOP0Ak6rWZRRzZaJ&4KMYIn1J+Se z+InE_vMK+8CN1`bB35T)w*?-PNfb_F#7;3eQbV#=$c-XVe70GHw1LaxQ=f_Y|j<|2Yu1AL{_58oq3hUsS% z1cr8mazK!-K(=NPl$iFAK#(SassdR1BLh$=8i*}}AWnKiLL7x4$1+5yGR&A*WfawG zvE3jKP8dOUgM(G#@T;&S2regq`Era*Y+x@OL1KTMZg9BJK+ZTtbnyTa_-aJDH{lSS zFoOq?c7q5p(!zxSG={)73~;&1eF!}NhI8I4A)s5x1&)DN zA=qFmC%F%0DfnDRf-9E?q_>8Y*igt49ki&eBQv;lb!^h2wxhWXj(Q3?rs?)!*NKD& zmpgwLNk}Yh6y%%0cMiRXJ8CBSXl}qd%(L~mDFZnsNXbEt2}|3GU~eG3JBF={%_`z8 zq@c5~Qqrdo2wF*wQCL619)!G4XBvPqn!qsi;8zzy4P#%@9TMg0!^5ybAU2R{l_0K` z6U6R|m0TM}{Rpu^9y=8%CQK{Hu6S?#3| zMqOyUOev9Com_X5#M=__jFcP0(shFWlkUj7!mB5l3Q?tFVG3a#BfX7sHi?KyQu`2w zsbgFy@xs_-UHHsWbmVWuyepD31X@&1|>5{xqP)0*b~Ucz`DF(!4k zFT&QFiP0`gcQnAxKa}AKUwlc^wBk3yaW-9eNDL1`T2Y=#^vocVys zP_i<+2+K0&;Y-K_77r#8fq8FcSSavIN7xRK#0S-=#!pHwpF?!-{C-=RUi|jziCCNcj zc&(6j3R5FkRI$wLt&LK;@2IxO^Jgo8Zv6$wqeA_9$Vh#*-Z*sxMcCh4;nQek&$qTKR?WPHlW$K@ywi)m}f z^9vPj@c~Cbh5&3oZBnGxiq#%(<@E`-GsG%-TZ~bIRZZ!@I@^Xi+NO43@Q=2g1uvzo zq7LaJEzb~qb~QvRLZqF-e+K!_5dWFRf2MO49PWga+0-wfoMm%RlZ3iKmiYm^R(iPx zTU&@;!X8^Lq9W6na7z;dguRC`ND^J)(H?*xN7lUoaCXYVLdGT6L?~(*?gSXtg(D$? zgoZe{!2zh9;MF6DD{bFvVTE9Xaf8dC=`!2mP*Z^t`%o;YSsj4hmaytY14vb%d2Dh^ zKgr63TJ3piz!g@fjZJv*jMy_E0HH|}A`ZdG!mkJ-oE@Y`fC#yVm*?V#GlM24dBX2_6ndMGZQ~f$I>PWW_UC7mvHIPZ;DYwG@8|- z2&0H-ZoP#w9D;B~@5H|+t)I$?8fP^7$uu(9ZJ{f*h1o34j@%?280i%p%VpMKsY<5eQd5953*C37EXNEJT#AL3SQuZ!Fb^ z0^4C+qP|AcAwgJ-RVM>rwS)@h9d8pd=%7~A0I+_Db@)+O0W*SNb7M?b<>nlAVkS4B z4faoASf)dmm5|!em02?cNEQKr2nGPxL&yPO_)B)0nB-mgEKhmuQ2GM~sH3+jRkhDeB4{;o;;zh8^m19m8x&kMYlan9aihCe@0KOpl zjggCl0ENZ2bBNiq+3^JNS4&22C?L%ad^VC9hlNZKy=CEHCniyoofraxI0v_Q64maA zqX0o;Yn|V$(Tt{`uBvbwuueRZjbg%<1rlL#;7&qq~s?erbcM6t-TZ~_VY6nS(=PD}jJ@DtU zI(*QSsQ{xhbvBv-8H8z~^bo;jE1#Ell!ZwMQ+ah40+CEZ=6*nMco$hC%mSp=f@CyR zKEkZ_(l5Yu!l^2m=n8q3DwFYZFinR*vlWCusNHTVCxX`%nLsqBlLm^yDeMGo1yrcB z3xSALRN-lZL^4~}AwqRolZFsYx)G^C#x_ucDh3&#CqSt~v6DavW&v~@5lK^on3O?< zU4!IOb{<~jj6hzPi>OHO7H(O>VpMpD12~QVU1nbqf`olCxf7^h1LWF_CIc@(wI$4~ z3Lx~tLy_x)Qz(>GQ<$U)$z8Y+NQSS|bPKp!fy{O=u(I@Oa(oFXNYplimM#cn11X?- zCb~v_BgsY*abJw%4)#|d+187QB7#4;fGija93c-ME~2t(63jJ*Tz;4bpo4%NQds~X zwEYmqOS{2L?ZBRrOQtaC(kMoY{UvQSDOvcSP}^H}pp3T?s(&L3rV#o~T}{Z4aI|MA zWrizol1TQ$8u{uw$igqnLN}23n<0fv*jr#89ih+|^4KI<1A7%stRG{D>7WZX&Ljau zs*%By3joA@;Rr_f4YL5j&@q&i(9|Y0Eo+GvEqA>pF5)D(=`SMd3bPf!vLg%+l7eKz z8tQApz=uL%0&EGP%*+z+j`-vbC|Fb>qmf~|AGKQ{?vvlX0HGcVW;qMDJ*I^zYC<88 zkV*=oz)USHSNpjk9(D&LX&`=+(&ACv2oY!)vl8Y*4U7XmVOe~QW3u!bDo8PZaqA*n zyCXjg5_%$`9YO;sm&N;_YIO*ht;i;DewhMA>MhyWg*OHAHUf`CSP0d%WsYF+s%3UH zrSr?wB{&74JBsU6py0C?%kKyd4VdypI@BnYe#_(qhSdx?Mg|O^?xoDIZ{XHsK!B(; zg4l?RRBdVgi>H`C#ef>kU@!oz&Jd;pvhE`?Ts#YBDFPt{BZ+(#)_ojH4319ZSV#DQ zR|x?dxo{W>lK|M%gp+PIwJFt@omNWEPK%PkY{w!^q$~rKh3S+`TomRQlcAq*piq0!vdXuFe;$ zfRV{dgM6Wa%r_*W7&RoSqZ+#i)4@v5f(fH~ksyfq03(r90!36d%Trc(P#zq@s(>&% zVwAH?GCfOPhMvL*w2D=8y1op%zy@Mz+ ze1`zj3pH`G5MVKYI)_qlB_aroBQP;%L=QO0nh>fOv7-<`z=82r>p1$ca5BmQjbZFD z{-sP$R7R;)N_58Ga#`=)U3hM|- zx?)*TJui}h#7iM3z$m^4$j*&Qj>BY>9zkh31aPGDwI0;V>_O76$z+>CVrrK0)ShTG zi`rCVy`s22dnyvFpJ}Qv+{<|A3(g zD~x0fvRb(T$Av+fE^@NL451Yx27vNFs5lFDS;PRaZPg^(CYaTfL3V3RbZRF$y%U|$ zfeub#XipTDDFYvZ9t)KnpbBybd>*KyP&F>ugWuQ$1wUd_Vvf@~!g)w##oaY=5g5nn z(NjBB<)4q-u7toCiI{M_SnP6$jY4=a;?%m^S`@OYQ%pkhWMpY~n+LFch?t}&Nr-2H zt#JbOGt~MN=Vi3G#1Nm4X@;;@1d&iuhv>w~%sou^iA97AQ+U2*I|~_aUYVFP1xH{# z%MKKDL^C#!1d+iD9*6*^<_!ueW@M@Pn5YMb?~`B*@%e}vmCVNrCv$#!1d&$UXj!ai?4LCPnxZTyVv7_&P!`I zyUV)Tg3S9iy*Ze?R7pYve-9a4UqQ4itA`qmAfvAz-Y76(`oT`Z<8m=f2z3!GlWN~| z@;`)Y%6$d8dYdDK?6@sQN~4YfnvnQm_rnxYacis$Yhp4Yhy=(4p~RGK!l2dcK@%%6 zr3)YAeqUrS(a6(!*7GGut0E4qA8QaM4=y*fb%H|*f&`rrnh79S>k0+t6XP-`^g^oq zX_Em0ECY@>{(4w~B_|LI#^*I;J7d7`#z`E(FfOUg;Qw@2BFd(N#A68j_FhtJFxrXZ z{BBurKlmSVao8F89U;NINugV^+i-SIR2oGdf}83eXZOf|Qv7F}|1?ChG}{@;nAnc9 zbF+ECH&p(-Z3I^T7_z#kAd5^sAQULu1155<%+|hCtM71thn9HX7InS&ATcI#U%5 z3=t7g>Y()s`2cefV>T+g1-C`U(6XLhCy5Ue-!KphLgq=ady#dLEF-8Mi+K%JgfCoB zJRn#dxoHrHMV4BavN3@Xq{2cwxZzL}2u)w+z(ZjI6dY$gAa9_sBJEvSR9D5!X096) z-2%_bS9nql%zV`bAKYZARBpfsKd7_86eu5A@MKw+p2F4n0jO1v8=RPE@V7xIrZILl z`8H5|P`nr90;faK4PIkNF_02$-pFuv9+we#>0}BQgR_(OX(Jh|PaWmXV6V&YV#~ZM zzbe53s#dE|GBGd4GZyxH^7f^3a9&|AcLh!nhJu6~Z|M;1=b(~Ds3zN=o6ukr8q#Dd zc2`HjO!}ey*65%>frlKCp$`kSz`+(c)B=-S=AgbAyrkxVr1^_;(AL@Ng^QWZCWt_p z5LN-+6II^;!0m(V2~I?3eo8jmT-M%hj+rt$X>fMZ(CnnCvy-OHPMU7t$dn|_OwMBM!z6(TnV2axQOXP;IYDTM z7$~v`NtLw@eKFuHgfv-1!IVUdis(;cmoAS=NjqJpO6;T?LhL9)*DN$dM<#~MDu_Lt z{1W7dtV_+5Ozzn_VoKP-kR&0g$`l+fLO}(R?o~uMLuZttIQSI`SC>cR9W~fw6L&O< z&<_Dl;PV8Kec*Uu!^R-C?{fbJ#!q839)HS-2!-H>(4J(o<~CoH$_Pw+;Js-3;t(-N zxJPg?St^5{Tm+-D78cba$n0AY{7|y{@H5i}9u2U*sGrGxW%)hmS$JzgHOb7x5|w2Q zF>X*SlVUU=Ia4^gc%QIdrP&9m3V7#~+1B#IGmntp!dtdTeuprcK%(ZOf;Y}@l{|a= zR@vd4NMK&(=|(8FKGz z+4mE9$mgjstmT$y3*9x_hGD_Ais_^9JXTV^MaWefqosVZm0gaaZ>@t#!D=-X8f|6w zu@2$?ik{xGVv@JbSMFWI^drh9E7S!fZe^2uaddJ_-PvTS4;fS_R`Ln2ER;UL+;Fd>ZLV`F1tY9|Z0c5{hRi4hoiL^=*W9gxnEc>(8< z%NrxsG_Qpv3Y8ZpLU;#--HUz@L!*=|(OAq=By}jQa@g$PH5F_CQf;*^PC@D=#!;LC z-YI;tP9PXbCPAJxH1e2s1;VG(nnp6allaI)ZgdqF~h{fgonS$R%p#%EV&}l%0Tk0r)|} zWJO3Y`)sH4%G5pTGA~QknXS?gH6h@IeH(>fm6s7BFh;3L93VS2Yh>xI1Tr0x6%pbt zSEfU99Ibet*rll-ri%D%BVm{W6b#FX_5ej#8S@3gq)(Pzb_s6XWt}k$VzXgq0*W936nNLF~ z;=Ke4#B1^z!ID91B|?(+$PbZ>56zf6f(tU0lGTVEh2_{5^ zHAEYIhJlTk+YG>Az7J~lXY+r6s1xVH>S2CPUFOYDcO*Ls8wX(spW$XniEyI_T41zj ztt)DEc!;&ghGeH|x>yKPxtoQZNZQN^LAXlO;!C)~K50V`K5K*3%1C5;5|D@hU?C}F zW=1=G3=ce)9fRN#7HEM&+3Xt^jEXoEX|_Ul7_rD~#-d2@l|0x_=}5g9Kg^P%;IKBt#)y;0j9ur51!r!>URU;yw7c z3kX3tNSo=EC_I3T0m9pF$en}n1C=|ZsH@E^wb(~6ds!PV18KzoKI+E&yW~S; z$yh{Gxl5HmU6!&S1m!Hs1=fLolZ`-yXTb=FN7^b(r=eE*UKAO>2u3jp@_LA9VRjl8 z{=hhgF01u3I(Os|$cz;fR7{B3sx3h%Lc#^FfDp>&n%OF(&O0FgPyjq2Pv!PVq7A@1 zM8D);;UQfvwC}c$5KyB9k}S|DI%EIm5E)$v!e?{%@-cY8$ zqIG=K)edR6<9zile5?ycPGm>_30qd+;T~z&qPqxFx(S2bgrRQ2)NaDGZo>3#!iwF5 z8Qp}HnglsDx(TUnLb{uf=_Z8TgyC*NwwsXaCgi&bGrI{R-Go9nq1a7;g3tFJIq}Qg zgi1GIRyU#AO+Y!O&Xd-<3H5HmST|w3o6zVcOvvm(`JTG)R2QD^!kaa2#PMNQJ2)Hr zn1dV{e50}h&voJXE_`MeKGKC3y6|EbUh2ZjU3jGnpVfs|yYQ$BZ`KVL&tLCqAM3&! zUHF91tfoSuEeRzlnIe}lKEKQLA_Rt@S{)2;qAOh0@I3N1Qa9mDmr58U-=h5Z6l8Fe zQ;@bU9txN*OPoH+S3QE# zipvqwy@W>L51)Xy8A3JH+eo8k4bTA|a)}yIe7^GsW{=T9VUN*4;g8Wl!ea!gndJ=kR z0ALP)8wgIU6J^u>1#5FIH?R7c4oMa|Gyh!sng+`O!&Pp_gOZepU2U@jFOjYeMz_wB)Y z(s_YFUh~spvE);5@AP2;N`d@;eO+mHTRDy$carid@6J|9cTdlJ)j6^3Y`^)n2P4PG6r1*nNoiASRG&`Vw<+|}X}4b{FX z1up)W6Lx|51_5vK3-ZNV21CJ+m#UpXy?C9AC;?JPDw}o9^9Vg6EO4~b*uVP2DL6)$T*F1m8(0VHU%^BJ{659?h&fw@ zr({Tby(74yy?}e`h{j;N!vi?nw82sVR6Nj~D~dYtg63r%r(3GSO0De-+K)I?4RA=~ zn;^(T$J@Ad=Hq3qVhVHp+6mlNuFW8Dw~obun$@=St@8%~KK|CBy9RTimv5e-1a$wN zt}|d<#EtZ2m)9RwMOgVqD`E}`%$C#wv5Y4Lq`U98OQEb+kmexdS}@ zxwz`P9Ry4TR=|hEz&_OSW2`a$APoj9pmGf>MYBGf^Wx5sX1GmYsxcM^i>?#81cMm$6Ww4}bBIe{+#Xm3h2PgTw$DAmgbF1Jdpk9-hjLN*J?z)xWrmMFu+&+zfL` z3Bms380N+NaU_3Rv4x?;mX<^yWP`e?6XqBqf{&CF!~8fC@sTNv0a+M7+;=DRZ;h1_ zzwD67LQZ5#iXVki!M2E*Zf8-j+iRKM+TW$L8-nT6*c`<2hYi;%ShVg!vk1zR_SE~) z3_8LZFW(1a3l6V*Skq|{>;8V-MVh@sT9M*H43!QHXXxKu?GZw6z#iK;t>f1f+Lk@4 z+dU1|e+_2T20Bswp~>Zw=tG4zg12{7j6`pn!lyLS0KpsX`Z{Acp8>bK&}YZ8Z@+y5 zI8`^V;LvP(yq;geNg~9%5P`Zh9lwMy?gB$mxIOFN{$upe@f%vcafS+gvay`R5)wgc zNY^QPHE>n~=QZ%P2ENt6_Zs+713$4VhX{F=`TT>TCd|t~Iy@X=1MqMGa}>N|GQBAH zBCxP8OE>DLM z4!T@1wE@~{ZKycgU5?;!Ne983`2*ip#qk2WdvhortHv|z9Kxm^ggG$k0A=J;2BFrpB<;v7Vkx_0<&_N zl7>s?xbrpzGHi>e5eFMF=doD!M{*iDz45hMUZq#+cG22=& zmUR!)Yj#wF5Nde!O9$#%e{|88mV;Th|22($2^5pU+E~*4pqm^kItKI-jo?_x?DIH$#_9hTLTIu)dqha=X7cwJk9l}(3}bpY+78Ds3xc2c51yaq zTKP-`s+IEf5^@dP@Yz-ew}5zj=&47K_b=DbJc(B@fBhA$#W#g#EeI;o`xf4%;;C$O z8XJd;k;E3a!`peh`tfZk&x!@W<3~IL@)Y*#>c#@GdE&lzK8|l|IxSb?A)n(UC%h0u zaaUG445Lj%>=!4}9mFyEW^{$$bo6z^g*klcK+t&=cEQ;7?gU>5GddtUdj%BM zBK_PHSa6EISv+6kpXh2nuooT_cV?bzYm7C>bdJ(l6-jy;nPE}eu1s&u*2Ga9V3oy+ zsW3050_WpD1F=Uh(92d4?0#Dui~rP;&#L**5(#g8>EvN@g>ARvWOAJ?51UG!2l2WH zE}vu%79a00)4~jK4Fn2!dsNnUWT(LrleK)5Qn#)V?yinucR!Y;xm3hYz4gzH7dIat zS6RT>%exx1p6m1J8;}KIejkSKeABmRd}3ir^DT2VPTT|H63E8ei=$@bK@iLnS`xoE zzKr#`*4R|y_|I<*yhrPStMU1X!YYkdk zYtY+Tqw{gg0Q90;BU#1gC`_zPjk2ohFP&nc@8_#e|KTcrg9fvye%T=87~*#iD|RSO z>;103)z;6$?FC%K+Zu+`BeDWHB9AJJBEkI%!;ilG z2DpyzZoKq^IY(3ZH7ke;;nR$d>;rl0E4Cpvpghx&!xuO}VKf&Q$T0MMR*lUf_wx}B9@%s=`xFyK|b_IC+UeX?Nny!~4Wd}ie zVfKh4O6+h%HhbF@W`e!I>}?y;F?m4twhfRA`T~3xH;;Ji+@!%K&mDgo%$4TreqHGO7~w zfX8khC1~E>;pP)2QLU3lA?nO~5oTbyOSQeBr*y9&5QYYtEmwc~PN0Yq7qY^#50VvT z=<32!lnM)T1gt3km|6V}XT^PL+SbIWyv!0h_Ojm3u*1tbfMq3pXiAC*6%!{DxKkSP zzaVkR1;uMPvXBAC(-eY{*f8pNwt;~-xxd{8Y_wO_diwE*mmSYtu0B`#Q$k2C2wTiPt}x~*;0t_ ztfINCX|l%r@9M_H_A?5qnVN04B1OF+vx{P9TD|pNM3#fhdaS41#OBpQhq)XGkbTrZ8q&&v@R zW6e|nemSyijQ!_wru@6VYl+s;vMH@>R#tJDlo20_Li6f$yzpWzrfhc_Z)W=;b%%>c z^An}>jF%E|pNdKW=Jo2ZlX6(36o-Un2k$fm)jJ3W;`<1}p)rt-ZRUCfbr#f)pIZIX z;>r}yKSE={AsCJ#l#O4EGa`P@ZA!sImmvPx+{PAn$`So(DLP}_=cUM;O<7jU6UA%L zh6RF!e+$1Zj!Hi?5yxcF1! z8U{74aZuwL2>XpeTxS4wq|1s>9`&zPQQ0E)?^W^nQdTNiWjRYFt31oQqReKQ{j`K< z#eH6i%!}M{ld|3?b3ZGas16;)u`?f9?{bX($zts2HMs57J^S0(Dpmuif;E0BSi_`( zHA*U2gQS8rMk-iCq=Gd zNr3v00JXk8#Z(`qC0e~`iB_LlqSeEeX!W-xTD@j+qMUZ6r;yF4J|hXp6TE5=i=`qra8MEgOy5_uv(K1TzXjp2^yR#nPoS-l)188eDt! zZq~!D-8wX1A>bW#aEOboKlEmJq;o3Myo{}*Z&;xL#Oq(E{lgti^bE;hAQ!X>L}{28o5Nk_`)@mmLeJ zhH&laW>zeQqR4d%&Byy`1jWqBj$6e*is+^DO>r&?&r{9CdE_ea><3p8HM=m$e`_Th zjN9}m26ybZF;DX1qkitV#wR|G9=Pi_6WI=QtT9uSAX@<`a!L#1PHoXMh6mxT3X{ge zJN7aq2q{3oh{@$GWq9%Q$2OKpbRPF#P?5RF?r8$0yH0Z%<;BP96mN&r61yLxh%ur~ zg(Qh)bemnAa36Y2HCkLqldxd%07yP^J_x zA4yN*k)qmW=(iN(_ZOb%(1{-%``yE(Sq8Xj^g#h}<6q>WHpE_$WOP%M;!8`BhZFo= zo+rDNFRC+!7Kp7#1!DI(MGG*Ai|V*=9Ou<(au@CNMWiU&eou;`IQe(;qM)milZ%ea z^J4Lab^@h)c$J46>o7wM?H4TbZ1i5Dyy5g0 z<+0ZICNYOhqu7FVzsczxX_B%t$ElpGLrvkSWVZ>y8Re{!1 z5!O$Yh+d*kR=E188uZ)fvDQCT$KJtU?YOgxX@J`pi8QQ_g%BRyL~5@&Qjk+@1X5Iu0AhTKVy!_D zHkL)XXj~MfZ3QxlcTuCWE;8qRAmg~JKo;LsAh3|?3wDb5VHsOTrPm_Ndo16L3FSbk zvy%shu}@A3M>lne&Xqbd+4Hf=objn{fHABFjdL|Y^y}S+5SPCs^zAk{b?> zu?gXnPIVBdIBZbCVMB5bJJ4{Lbj4wZG7b}1#bM&c;Xl=6Lz04&wfA#NoHzYbTP%Cg zRxD?%CS9fL#$~LnM(<`@p&V2HX=zQ?`L+fdAKD^q(6zM~g^CR46`Y}}Iv^kDT3`iod{=onti=l@8{Jf;`5>-xa_oxn zkuw{zRn<09E6liFVaDgGJs5LU)f{TlJB_Nv?W*O@@2V2xcvU2akrv4)5_TEldj^pB z9^RF6z6VtDU0}|4VHw{Ol=vP<$@c^{d=F>^-y^2rdte3M11tD0tl_(mjPC)}d=I$f zyFd!?#CKsC-ves+9zdF`?zNh1*B5ofxvr7}BhxjK0s_zVjfLElB{|2-Y#iuXM?71` z@3K;3cL^D{OURgAHUwk5tdv7sTPd$poGu&ej4sQ!@m&_j;jPi^#X;9TMz_VR1DenTSHpG+&2PZ)iuF!G)lL3!=ycg^deAXpp2fhzk)PTo7ek2!dRQ;39mK8WTG1 zuQWyiJeJ;5W^OD{GLC~SMd0`wLGQm3aS$9vOxAl9Xq^{fy;X_$DYxhM;IG)t+A3GK=ZLTfXGoL&N$C!Z1dz~+Pc*ViNF0_Y?}X5>x_k>Galw@;0dfV4)WH4K2xJJ5k_Y$ zly}Ae?~Db#GZysDc#wA!EYLb*q0||pqB9=mZ;U6m&KSt+3l^||4II~oXMbR5#)+8S ziL^B?QJmckag%bz>{gVmaU!x#ru#0R-AduJTa?f4L}7NPFlV<2bvv~o#=qiiRTF{v ztRQUaKuL!ts(Usp_Z!mto=jNxe1K+#NijCF#@WL2#s$ajVD-sk4E3KD?_4 z8{lr!(WZHwopU60MA;$qsq#9H>&#^I$0}vU?YaTR@)|V0*Pt=KZWg{k-2i@ucU1%Q zE$S}#2dQhag{Cf+p9;Q_3+_SaQz47=0lCdkq^4lx_9+-d#+x*(V;tMFa=%m*#{0Plk80X1uinZz5B<5$@X(DljkqGBY zlayobIK^h1X$m*iG^FvSA&ntTW#C9tI9YO#3KvhB#>BdpQW#g7>|_gk!i2#P+;5~X zT*cU(w{P&IhhPg5G~6V(+D{mGzy^iUx4>YdsfX{T5-pR`KYw3S^J> zBDeahs$<$kto2pd*wf93!1uTNdwy}h-}kTWD7)p#0Niw0Lhq7CvqM{kdJ8RRRc*QN zVwSq&K`(YY2u`a=W3xP9%yJKTEs=uN95|k_Es8R(Mc5~jr?eJ@*9fpIiXz8$J%Jb& zH9Ehdpu7*{)`n-n1&0R~$FBNL6#>5BaXW|NgauRcH`B#%_5dsvf`5WrirhnH&TD47aHnmgISh^aT`}QU=`L>lJ7h5I?!k~oekOzH|c-Z^rVPn1reTCo* zp2Fz2Xr#c+A+Dd1&t=9%Ce(qs8@bO4){IH~l9;YFrD z{Kw)dlnbOrjq!w;5RZ^TGuAOYlxP$Vl5GHw)0J_g4B?OQ5qf{HiUI{ZkE>*;C1|{r zRuGle?B4eOcGpW@Xs-Vse?`z1^T;4~-C+vt)^tFnx80r4+1DlRmu>HMYtgMqu#ZB-svt>s5G&f~^yL>g}sJ)Rf@Z5mx)C*ohV7 z$pQu;1S3JUTWH^2VbQ@`O=U`PTGS+>1Pb`9~d+4@@ZV> z8a4jrdUZd4csvM-PJ6eMozFvf@xtmYZ*L1|v7u+LZm%Zm;Sur>Orl1x8G)vvE<9+%J{6%} z>D$eG2a3z9yV>^x$JjXC zpQ5TK{&@FHt0~;6m?&sf`HYDhv9UL*JI{DWiKO{3<6X|V{JG46j&t2G*{2o9M>50po}8nNk+dw7ac1l zvc6qLnHfJbDYGYjKZFOS8@T_&F%m}eZ()E9;}0c#SQ)`Wj#tI(@+YXty_b>J(}vzm z{lmtKJ!SkG3+~`ym-T?qN!V@hwuvWimr*7@Sc2hdMr_}XAQQqPHsMWE=%snU(m3!_~oL$F6aA}^67MNx{Q2P*-Fz}N^`b^oPU9V z3~P~cEfw>1Dbu$voyM~d7WCz30lu`nZ(f^*mUpcD*oNWMfQ>nvJ3^-x+k319neAj- z03vNxxX=E;wef^S!C2%cW<0J@T7)?d7<7L##&7OukM?uAS97;X3y&}*eYymEtx}xT zDbBxEW!5>q)j58CIVfwzv`Plus2e)F?fBX85*w8Hy>=q7LHD2^GMIK7BrAS++XByf z(1f(qnQf!>fcSv)i4)iuI>v7qUzr->yd)GCd)O&YVEIG3F3H0ZEjh;%7PocJZLfR>_I6>o5t~MyKX|~~ zX-J5264Aj%0H*R`=CKRMkQsG3ofgznMqQ0Acbj~m78%KhGg(^rjf|rn>-d!y`fIw# z65^FkPTl5>f#b5E*}-!dX=fb0Z%j=UXuso^oHISHl%6}TIZhRC#u zR)MVUIx4GOW@MBruU}18Txvm;sW9fU6qi*dOL|dYX}m>zNRg>JInHTpY3NO?9Sx)Z zs#t4j9w#3;dN%nvo&Do;6+#CXZLr5o6sqCXlZ9P=3yXA4QGlytCj3?eWMmQ43wf0g z0zt)MCLBgMlj^DhleCDio``T!bL6BjTtV#gRJ9Jpsyc+>k zKu#YfZ81IQIRZ+9CFBgjQ|&w*z8#bXD-1v92Q_r_wnW6NsuJf}RUilUhcbJ{!Ky{Z z$OC>770F%1e%TxPcq-VsIFYiA8A9vDh_@GL z{4{1D&_9S_9FaSGdnUG80%xWrAPeo8nz6z{#sGWUhHhITcGgN!7p)ZUm}Rl;ivG5)E{r4_r~+t*YM>09P3smlv(WW!u{mhSHS~g&S~!)ed&_0 z8>tARdz%X0;5^R+>R@E{u@r^!J5id8WLY1hWa~~8hyFxy>P8gj{fHdaktmuy+3=!q z`{aQIb(HL-rFEw8sqF~$}$c$*~uhoYB^7Eb&EO z#$w49+#~R!;>I+I#0<+4iw5J#0=VNE=O5Y1vW{EGmlLM(QEVYDBMhitmeSV_!nSrW zFdx6+pT(A$BKM){!5FGR*ielyhpK{5^_atkc{5alw8<;pfXw zocM}IS$ciUyj1_Dc_C!W+bmbco4j&kP!1TEa==)XHwXO6Dh zV#vr&)?RoR%c#XR4yu>9aIxQ@2sCU zJ1&A;esuxy7lb+YV5qwD&!q%|1b{ zd3FM=TKeCs(iBDiZJ7g7bg*M`IagDd+7B+49o*Jo-GBg;LQnoGyLOQK2}fl&T^h!w$g5-pEKE2o&K0+x1qTOu|*wVi4Vc-A2zsbya0H0;ETilgnVB@ zek>tBxs&i&yf~o31I^A{!n03*g4-sDUgK)KKg1mgw94jB;gP^cHCBOaM8nyWhOPZd zBetNE69Eo?B$nEZ5*M`Hh-!7|_I4D>yrFwc7sVs3eqN^JnWf;aSKEg7#L(!vu_FUa z0Pd$*6Rm-9v@qyyKx5zC^LA1+>5kjWg{wsluVWXo!T<(-o3SF6I zww!YkUOICUhVODR9;K;Of0eOV1@gqxk_@Xv$~!M(pGxw%Bo`%#X^>a+J4pR(mE@_D zdl7s3rK0QjUKM{<(dQNYwW7aO^!JMXQPDr0-i`KE)%U9A_NwOg>hx7}dsTCLRdah) zb9+^DdsTCLRdb^{wLWSS8I_5Qxpr(q0q)sLh`$VHOos1M?SWG(&t*hM|59=D|#q4;%{uIEj*Y{MghPndx|`? zFtk_)Df+;mG2LTD21h1y=*<;n&iZ$9ECfX>lt}>gnh|t1O?~{XLB-M}3$t77r+fv)i8!oZ!Q5PCCyTb`a3GOoENrR} z85gGZJB-L6`Mc})=3&Kd11-Y(-oJ83-)6TCngq}RcpN=IKc5ZZDp-GLebGAj5C#rWpUWJ~;UH@)`Z+L&#bO;;G%Z$W8 zfznFq-}7LA$Xi^z&K~+uyvI+$Uj8{@U$FSRlL5SWUF{?d*~Mi1n)ZtJ8~fU}^?)pq z3jffBymQTlhJ2zUB(MM26FENPC}D{$Zr8eVsU=kCJ)ylk3}YKTmF%@@ObkroF` z0nWB=ULGFJYvS}noM4+XJ=~WSz7pz0PPS?V9h!^hXWyN;jw`D>nsXih^ z*`W)ERgdHFfazBw(mOnQEPC0QLUFMVNz@aD;|_crJev|Jhz+RhjJu~@cz&_KH+WsQ z&>4RGE%3E_?t$;!uN_0iI0wRo^K1iKX4_os(m@Og3(X(+_{4_d@yeV^!50v`djCP+ zjyRB**LM3r5#*tK+fm;gdU!rQ41=-I52ihDxDCBODIpt&gDa?uPVAMuC-iOI`gI?6 zaYv7P&>k8L$GC#^1r83JoOU7Zj!3R`c--P~wvcU$!n%}_aZOr>^U5on6n1QzL=SM# z_&qYQ8b3Ui@~G=D$GkplxgmXvWUSK#bOBhs*mXBaPZ%@Uc%6262pbQ&&B;5 zGvg(sANLr8&(K8*Ex0k9$HyuK&7#XY8t9aY`%8cFC`Ti4hQy-`3dgXum*b5Ffjd`T zQJOBS2c79V;oH?V|8OH_j$U0ggwJG9D^!!jR{L#`YC==C)EMI9cAJ=jRhBz^BTxJ$Z% z_i{5D3vmlh3(&ZRMh~1Yj%{@T<4I4)P~8r9c-U{7!PGNITyf`tO{D`TFxCw5%oJaP zu6=332o43`*C@A*7J~Gc>TMK$YKgNR!eJR@;Y~)W zn{!NjSQTMee0DZjHmD@WqgKbxOL%AmkH@3OKj?9yyTBF)f4D4fS;!V|51N<_$wqfW zShKW0;KZYe9N;^c;&U9~9_>X2EK53ZmO^mP71*g|Ie*rp2mCBeMi_4PQQ09@uaE2_ znFv(VEQL)00$Oi_d4yg=7V@y44#BbeIyOLeF9EvUbI7WTL^yq71}0aMZe5)_N2!9n zv$C>_kI3$o@?t4~LraJw=_P)-eH*s-djQAJ)Gu|qv!JrDN_I*&8&2sdgj3pw;sqxd zABCLQm$z?7h2ucqWvH{zt9+Z`zP{L%iH|EUB-rWcV{_$1Y{|}|jv%#ztu5Tg*;@W( zTB6namT0k~CHgs<(h~jj_tEpekJdA`mcq5SZ;8hEH`ca9|MmCL`i?ERb;@ap*4Su? zmSO0YXbsnvXsI8zMF0Bxjt&1lS_hq$!ga80iN5~(!ZkHpa_c165`Fpig=?y|z1UcnmO6|7NR!5YmKtWjLS8od>)QCq

2xw6|7MO7Yj*w7RDp;+vksy z0VLPl{syo`~ZH4AP zi+b>Am#Cgx7tMG5M|eJndX&yYQl3ut%Fvm>ZNmkn*VQe%Zl|*pOBeMzWAiMNzm`0T zMpJMkCMc~d1T??-I@mj&ckg4A;xUEaiT6cRwk0U@6lw=$RIy*!i{i8?*n&nu@NW0l zV21ZBnwY!s)>L2i7UG`>>z$x&1OwAM!MM_L-X|AZ)oNPfYC?@`J*{yqs5Pz?wZ^ri z*0|Qx8c$zRH*e8?O{qG)mem^9x?1C!7B#M6T;p0=Yg}t5i z3v7*Rg{^T7oEp~}TjN?}Yh0^rjcb|Rx=Ef{j|;g{4AK(=@l5IpXDd7t@=*$DA@=1E zN)S+}6Y!)hxgeXyY9g zPGU`ppw&tU)YA_K8icT7j!b@vmwNL_>OzkFh%$5R`wC2sw(@jeSELgk^K@q`(y4vN zS^G{`f?{-$^2>@Ml~7s@)w)x`T6QW}AF_hA=v1)QoC?;GQ^ERv6|4oPf+x|%3f6K{ z!CGx9Sc^>sYptnZEj1Oam8OEV&{VM2nF`i2Q^8tgDp-q51#69|U`?G0)(TU>T3{+z z>q`Y|dBL?9JiTGJarcO~c=2uibuk~_n;h+80t*^Q0_CC6Go+cmy5z6zs2dV6WUjiF z(~yUn5v)=~eB9+ho;Mp_YoJ2tA{k#Qy_5n5OkrRIseYo5if~#Z_AiDbJRNN=y!NC; zky?OjkRkeU!Rwa*VGd$q4rXHMbcy7%_=)#UR}jcOsq>=M>!4?9P|#ELI_TSqzO2em zd)r8#xEAyeH8<$_0#wybtXb`V!mlKh&Kzy36J$OzGiH;9lfxbi>=yd>?%nShh|65R&0;BP5RA zeqIsNY}Pwbmyh#gbd;C2wGB*S8^gQNv=74-cx?||B^a~2)(AR)GK@*AlUb!L2DNbspwR@OCuCB`2TdyP;Hvaeoi7Y5^VRkQO*y2sJk_(JWl^T+(=sJwb;`tS*YWKfmPE zkAnLCHIMsV#C`jg$H8<&R_51&IxncRvpnTl5!Wl~>wUrGNbNlRQY1b7g6nDgRKThU zPMw3vKl;PY({S)?UjppA-%S**jwiGA*>K$bg%=d@7q9_7TD$KCO*rc3$4t!#D_F|a37Y{yL0|}K}FfGgm4uOACN&@j@TI3 zZ{TGS^|Z&MF)g2LNvClH4_N-;IUVEU9ppE`_=Jyl8@^e+gzv5U;q`Sg!IXX}aecJ~ z6B;lOh0>|_N6mSk$US&nBV|*#N997*11oac5}bgkcxjEht7oeJYSt_@BqH7|`N;Nh zo33u1+~$pNWZAd-{pZO$#z^Ma3^pL*s|`VtBb@8b_f@5U&e@ za&?v<@b(Z4o!tau2baOv8DAsv5tl1I@aZH}ft+mW2huJte_djQUz=Gv9^ri3nm^t^|XD|uMtOeCQ zt7z`7veeyE(CA5b_`t=w|2XUXqUxAN)0R;-oIH3jfacEu?W$q2Q_O!~oR~Nsj{7O*HGqUDpwhF@00i`DS+YWQh2JYNmZR>RZP z@MJao*J`+V6;pJ6v^w?UYWQI_e7_pLTMhqO4G&ktx2xfs)$sLdc(5A2S`A;WhA&pb z{RI1Sqoq+*z|E*C;AT`6a5Jh3xEWOi+>ELMZbnrBH>0Y6n^9H3&8RBiW>gh$GpY)> z8C3<`jH&`|MpXefqpEUVB+P bT{~MlU;AtA%i7nqZ)@MzeysicFZ}cWBeel{ literal 0 HcmV?d00001 diff --git a/src/backend/InvenTree/InvenTree/static/tabler-icons/tabler-icons.woff b/src/backend/InvenTree/InvenTree/static/tabler-icons/tabler-icons.woff new file mode 100644 index 0000000000000000000000000000000000000000..e9a04839d55b60e15eccbe93dd40020310165c94 GIT binary patch literal 1189756 zcmZ5{V|bm<^LO%X8Z@?(#yPQ#rm<}|wyid{&BhH*tP`BrHco8YeDeFheD>PWXJ_`B zclW(JvmS~P5>U`kP*4~&zEFstlG5_=|Ljlo{~wa7>OY~Npy8pQ=G~zFi{At^AT27Y zGP6NJE&TrU75^k74OJH*6FXzaPizPZDs&kNni;F54gY7~$-zMWC%jiY z+J7)&Vq%fWvCmgr+=IUSf^KUTwVCNSB)R{Z{;xjNb?0g?Lc zl63=w$#SvZ`M%CRThZzl4jbV5FA0vmvA%4b9E=8!Rw*m{ko&0Ztcz~|cvtST#6McS zFRIFBX4&Yud@eGFneBXz>~7yV@^ua|_u(soV|q}Gs~xp?NW7#jBhG$hl^Oafol1Nl z<7V~4-c~DAMvf_Yb(MON=Fc>`v}a&dC+_j)VVu%Uf}*{xJ%oTl8P7SR00WOh$-w?O zhhx-N9hNBd5?lt>QOZ$?QLBnYzLC}*?;&r9hEt_Tm*FmX#_pmsn#RbvDZ7+ zWreD%r@0}`!ya=Uy?I9$x6GFgH+i=kC|I!1|H=N>_MgRn4}p8#(%pOAi$NAa4?oTF z-=}7#s-}*n)*PK$nA>^UDSYXC`4dU;u`@`QiFh$U1jrI6g|mefg+7G`;vx)~gAq~v zXWIx@<~j^OPCNIN)`mAL+?kNu#M|}TuSZ$4sHKLnAd{3@>DuC2;#$mFLj39If#@Ur z3O09(?BSNAjI8BcUVaz5{q?c>43E0HdYyW6bKt~EjvL>JhC4$Wz{mT3|Ec zguO;T!DtW2)o8Eu)VY_#WKIWNIfrC6DP+{5qLSXeCLV&CoPiTIecJs^VYOVMV%XZTT<r1g}~XXd(%hJXVKAUOaS$?L5$HOKeIfccvWO?3z0x~5;jv&tQiz(U?#-b~(Sd^Z!sIcmeT z(5`VKFwF@Ev+Zjp3{=*$?epv@vqSb6(002k28w#m*A}| zD4;0<;kH`7Qe08~AL&A2DPL{ESr(Y8wM^TWaa%J#K;;{C=SgZiQ-qHq&k(#KXuaKFhi9wLzM=q ziw=d!UxuZBqAV7@#@fqZXQ@f7bHhqy=>3fQrp<>@9(dsW<%wZVz7))=-74OCbgL6A z?}1l5yP%XPUYalg$Mlmgf@zN!ckpj&rI@1IB)V%Jspr?S#3kKEczvcftYU|eNByxP5R?bD+K9w z?w_SU_HB^)BV!6MM2a@nbXH-#0j79*p&WKSNsb>JHG_9lYY+pj&XSNgzUR>W5njB| zdapwFbs-z(FyT~{v%nXl0j5Kd1#o*Zsncqv7b&Awg;P-0dWNC*TLsB6#-Md685*lFp3NlL$cAXY8fY-|+xG6UKkk+)-WR`| z*2kj4TnB(ENh|hT>n!kIO{Kl+{K-J{k*=0NTBlr_5fD}s;`Yx}Ug<#Rmh{N*&m_we zs$>A+G_&+i^++Lgkx`LJL?Lg|yW%2jUp-vKW~M@spHfn@^Kgw#$z189XgZxuKqbsF zkF8p)JANPhBo8+Icuotvpx8npDqEV{cY@ofX_Y}?4lfh^Y8b1z8lC+X`TU)~WOm!| zmg+gqZ4P9&elHT|{H=$S>+vs!UkU(ccR~|$Dh|HIXM;c2+UHYEb-_w#W$iW`6tMH> zsR#I#Mb#7>snLhAQOqqaqn9wu)2s2U0Tv$xjdZfkbe>ZZot$%Uf440 z>c~{L#s2SJYj)zE*X|H9SgTDd2+9e$o39Pz!7YKWqx(wn+we*~dXajj@>;@JcHVw` zOWs`JM(^;U$jIqC_s{h-#q%{JDbO7RjXD2O*A{XiBK3Cl^IGlr_qUyb3#g>hKQx$2 zUD9P39i5^Mr$~B6*R~<(+RfSBgRUnNv31`g9QkkD1(B&32?6HumE-o5Z-(W@NoI{` z_*1O~E81Y$t!-QVY0Uc{JKIvD`OuC_)C<~Ri}0vX%h4@pM~W+m9Z3m^?}f6p$qoLt zMBtlDII!u0t)<9s>|RhmyCe)GLB86x&^GFayLE2DwErH*q`>}it@mq0@?aMJU6N5I z$~)Yn)?Sc9W9CKMv$}FIxp>F%1)Anai?Kmfa0C=HW`AVxjMURVt$X~JMi?IFzXw_O z`!~Y<4qMV6@s*GEFK=oFaU4cYESuApbZwdJJU*Bz<6j@NABqc13DT47gO;oj* zxey}Ql)fES=3h!@@woQ7bTMXLGwrlTS{kgh9anITwd2Eo9}URjln$;KvG%ALa-Hq(I?T*Ce7{61@bIk_|%#B$HfdT;BLh-a}ch0o*KeeFP_B6-Ivn zFDCuM;y-$^R*|ELt{EzMx~J|Rnht60l8^`;%Is;+skJsn9imyzhGF>SiFYUvi>{Uk zS`C^anDH@MjliNjx=0?6#-cj9;3x_19s*OJXo`mzC8Ed7jok7CO+{E|eng>_pGzg$ zeR-nU)zQ697jX6cGRg*BY3*jWg@DVTJ~lYEVaM=iC6QbzBYV<0oNK+V)toGND>BIj@KZ{;LPA`0CEt&KH_=dG(lh>$h-1ly_z&19mVzpo?rnmL2S;yGZ1w{1Fb z-Gp$=A2YGx$+EWU*YT`H$l|sZ<1JH;uTqqJi52B(_a2A#$+IdevA>xS2-T-rW{zEf z;Ip+y3_G#E|1y0qs`9OgNi7fpAsOz-YvoFj3omaonmyjq{(e$)@|`%T6&UZxGg$m# z)+kUx5wKGDilQmZRBq)Jl|03UE z;q~MSG%K68T-Zj{7$$w8@XVHGAPkkhHHK}V@DqdTC3#ho$1uBK9+PI1fH+dxtn3Xp zI`{G+#AMx}>x?a6^f&*CZ`W^#&3hBHN9A6UT!y;M@0VkYP}yo`=~YGLRh}fBI#Fhq zRi0bnQ*1YFp>d~qOM#K@YdeJrIm$(6r8Ig--p0{BgJi3J8321PYMILFa9qoAGJu#P zY`zj_YJ{)0_e!1E{>xGGU6sXVM`NFg(ME~vmAZe)G`;os=*t(&Zka>b70Xj+si;9z zphGRH(;X0cgjWmJs+f%vlU{7lEN_0^eft2xDll%FO{iU|>oOgOh0)Y=%sbkPbel>W zP**uOtV)t(@YmDnlJ3%0e;JZcCn+i1=!<7b~mtlLX|4OU1lm*@#Q{||N2*-7BXm1hqHnWC4w zzO*kgV6pYk;y2BUvD_->^Ow!q*6glKdabY3;4qq{KNJU2z)%F}zG>@3Q!1Fg>6`;? zu}>bQrNII+mhZx`66`lFkV-`+lB|_T5uIEuNbk+!Ly7hC z&-Cj-51X7aYA%b;eMgiSKy*TNKc}tCI*l(b8iB4$$~ch3tf_B&6+G(>EJS=g*NijH zZkg)uCgFt>V^)G6T!nDSaJVt_W;^%LV%)3*Kl{62>NlrP@B`Xu`PL5FUA7M5sEtIF2|i0Rj~^#(6V;Y?5Zs6X@0 zl68mQu{NznqXyGE*`FG|dr4JfxyAD9d4&U=6=vru@NZ4<3+hc^7qUwKDENFye`nYg zjU)He9Faut$XN0_g_BuPy8uC-6=;iI+W&cWzh)KKXojl3qWfC9xnLc^RYSJt#!_=v)10j0MjVS{zdQ24eQr-`aJ3*~Zh3_j;3;*%1 zhjka?}^{+vv$3TOLH3ms%xlWWvQ8EhK+#Wjdph^AFHBhoyw{vyNE1tB&K21iV#V z;dN7u!leFt{L*B5CwJJR0-;Ob@j8+xOwL8@l^It%>AU&Kc1wE;VKAwToPoKN%?K>m#N z{9!%|b7Qklm};ELo2sAM3|wB2UbtIG;;H}+H%&D`+?R9h@+=KagnxCO{c{|1v~|vQ zU3Jmmv*6+8i{o_wMe1Yf)9d-@r>z=z6#6vz6uyMNw9@QbJ&Zlr-eq5|UhjKLdf|FD zd&l`WJhSD<{VGL`dKIZeC$&8eGIt$H-t89AE{c7Us#Hu!^!r5bwWU?dCVv>INWGpMC zna;steY(B*`h3sgfO}tY!Z5j$HNf!w=#}v6df;`S^4I!r8aSu4JSvW5n;ku4J{Zp8A%imQGKDtITcve#t0i>}(V4=?{B2HB?t%Z8@hCXX>_Yt(^E4TsAT>5G3_nOn6tRJ*z#Ma}?= z;bauk4Cw1q_fqH6?$X8?b+wxsZ3C9e>PF2jkYiD*@K%L9k2gbt7E#uDAE!3!gR0YX zN7+Z|NBKufQ<-TE^}#^jfT!W><`D-}C)8nL6~Q8xp=7d~&`P{ItDzH76jWaJ-RpP= z_C(}ZWMpJ&q!Ttf9gaq2`I6q1PJeeKCiVe+mBuRmF%bcw4jYG1gWX|E{%q(3ajWU! zaXw*~J!z}Y;h%iT&|D&K_rv0R&9L=bVOp$$T(vcTsTn~+niQMrYiS9w5*n#R-X_@{U!{J6wY zrK1mgzyA~`!S5~cDJn8`)|=I`ti;-~m)s@kv7W!)(E%kCBnh1q{jS&6eN;?2tyyp{ zgLj+qM#3@IW|cc3a@6{m(Oo&4DVu^q@>9%LdKu9b{-|l?-@FaNXfFI_67|y7g7sx?VD7?jq8Jb1!r{LUwPv*v?4PY7XOdmEL6J)@qC~mXUmf~gczxO1 zI{;;-6`Y=+iB?bJj(F-OfDNo`vW%p}f`2ghVtv~)Otikviku7h_0%eAaU>sEcT{+d z#lavl&dE|^gQr28Pdib-!K)Mbl%@_miKZ*NpN(dAv%+ipB|@m&0*XJs>ah8NuZK(Y zwN#oZEqt*`=dmSvV_m(H<;BqKV5kPd`e@X9qYJ{NuX$a^146OW_)5O$#&U~ z7oKc)%3h7lpirK9SUJwVGMr7(P@cw*NtV8{jsUK(otH?xIImBHB<~ZsOLquYJ-KQj zQveQPph!ZzTL+ohyQbgXyuJ|G*$9nqCg#rFU(DR1`sKM7pmEI!A9ghPqZISkEpKcq zd3ID{>}g1fmv#m!N%()w736`V#m&utf&HlUBYZq;aHe`WV)*Pb8CRaw26B8^$^B4W(TM`}Ltw={9QEB zC&~&hqEV&!{~?oMdLtK2)_bNw_71b2&Sm{kc5fR3Ez@W|N$^)qw`rwj5kuCTm_8UU zIk{D)ug$jjIbX;&&Lti8FFRLH?k0<^tce_BnDJhO4|vGw{6y4oayET8G;4b zvG4c+~(c(S$aMZ)Ey%3HX9ki_(qD8+}V( z744HVLu+@28K_6POD=uyjUv*C;Iou>fX3L@o2uJ5nm0h!l52MSQ0fA&9%puBPAxuE zH!d9+PoV0QlJi66JsgBHNg2#Moj6zw4f30>dw492Q5ijOY-FMD%NHb@*eUC>!Puk#_Nxn z>>9i}+s+xjfpphXD$=q>_0GT~2$9rz{VM(B3Bw>WGRXM!J5&lYf$p8-9qLAg+aua3yyl`IKMI{obcZo z{L${yX9Ry6lx37}sVIxSTx4Wlor@I9pQWLvEqc4*exSOxjAReZ1IrQwk}R<*1YCHS zFj=qO(VaEiQs(En^>ox{DJ$3wdQX_eLAm>mVm^S%+HF-OE;3&~%#-25m(b@7tnpNAM#%Qqj9#Y&E2 zoVsP!(caJ1G9pxqR65^7#~H|{t|%Ul-c>P^8Bj@S*LTkQe7)Lz_15z8`4GEmvFv=H z>n9w)dY8NM=3VEE{~tym%RIPPWb$I+)FO z?=W{cm(g#*A>bxaE8VMVfsr?RIfvg@QA3)226Wa2S8kP=dCB*xj$UIUD>9CfAS<4Q zz=;_0bV4@>qd!)mR71xR{<%214FAC8Dd5IPf1OaE_p=6pH(dpBIXQ@W}L#97} z?3%x5e!WK_7}=-nh!w$Rj1*q~4zC7$8u*aN&QyM}?HvP%`}wfa;*5b9Qu!~8Ku}GV zM=&w`KM>s=|LozkTdt1- zPKTt|hK?GS?5gJ7pbscz-WZO%uydy;8LmcsEvlABCk?GA%hhx{Zxr`%b^@D3cQ2Qj zy2p%$8gl!b|EwTGOfZ$8knj>I7d(}15GzA8U>tM`xpc=U<;P6p5E^u9qJJ^ngf z5$+O4Qp&yc+yo}21l6D@r>9~G1<^($a}rbH^}FkQAg1H|(v^rrZo>SXZys?^FGB~a ze#2K$_IdbH{auE*LGnwg_93L^MUT-;oIY>Jnj`zq0V$13- zh5P>zj#@YB2Q5YZ4yC;CCwWWs_BDCbyhI$Q1d^gLsN}8_-QqTuZ=(PD8O5Tm#ZZas zjt~|++oRiqycOGwPJT+UC8#zQcXJUJ2$u)7ygeIo3n*&tg4k2D3++>DEuwZ0SY5}x zlh}&0^M;6>r$vM1l_B{Z2@DK3@e7OL*LIYNv2$K4QZGpuUM>l)PRnTX-1x&Hd}V4E znW+3by1_ceBr~<#!BIUvCAO*^Rs~kMR*hC+NAX9MN3F}&6I_Gi9s3#k#rrY)Yx^eq zi2GSMZB!5yJAAVYb8RDSv*lmQCcM_X79eww1+s1wuyH|o0k8mCFk5h2uv=JL;I5>p zJg9Wgt=4r2d57kH9_9|E>5yfoTdPy0-%eWc41M?>ZD$uxz)-XN%_Dpcz$I4y-|<^I z+SKmP=1CM{p*x(7oqun;+?Q8%x>(h!N0=?b{MiuwJmoP<^ub188 ziK|mUDJrX(4WMgDD9?iinz88i3MGnNjC`{^G9>az%J-u>IwyO1G{34n!A=J+~f5yJD*xZeKS#caKBLMUG+%3o}(E ztc+ODjgG<%&bx>E{V&+!SVEDqxNO4}c>=3jS5DCAX37C_5kD?!5Lb`#Chou~Y$|Ae z1EF4STCQ56KSex+JM|!zk2Q;>i1nGEKEOB-`K*?&Hg+{Gy7lUBb8p1`-oSTY?l*&gxPZnF&n^N>L3rez_@^~iv_{vPcxqUH=dqS3)t}-I2%hGlg_AMLp3!RmKi-B(@AcmKhbLvY~%9L zxGy=~S#EZbai-p@9N~?3q2gw2X7^A&uUd8Sx^G`;*Y?V~jy+hLU>?p(?<5a!crX6X zLByo{G*JHQ;J0m@abp2(NWa+7E7|vd!M4d}Rp+Zj?RB>&(7gO%2 zZa1G?Zl=y(9;>Neaj&VVsaS5H(gA$7yh|bQkQbLX9DmJ3=6tc4m|u;s7|7b5-5%ZH z-yYo7#F!BCD&S^it`(|fcH(lX;L;(i&e3YCaW^@8U#V|wJ}z*(YK?G1JmFe6tLE4B zK*T@xeCvA-xg$JzSj+=<&ZF6dbIaLkE!ET-2lOt7>c&hDc<%HKgv1aMK5*ySwci=t zc0UGTlIlHf4!}JKd){~J%1@Vgss_xymbl5cWhrp!+ck0HayN4-Iv6apH$KJe-;6iw z7BJ2;?&$0{R@!-W?0Jqt7#~6{P^yX7g?-mAIeR^jh524*F57@szcUlTf5x@o#LyD6UME_T%U$Udx}@2ugrZJasX z@80+Mczc)JF&t{o*B4tTPEO~#2rhb`$DqV9;ji(uI^0H2M@dxUci7#6rw1hs@%#!G zSF;v$*C8{I4gLxb>5JBN;tn`(#e0KeKaXfXx&3rwla&EE0(OhB8P<~lThe-mv0B!H z0X<@u=1E8zM00s@fxFg0V`Cf4>8Ja0e@lGCKkEUyxYs&Z8mq-N(H)2-_h)7(v- z8cub#2iSe=zvsO9yrACY9STD}G(PU$`7tXo12OAplI6n{Epw*$jc0<7F!$xOc#M~W z=P|kDmiUYpg9R~B`r}&!_N?a8Qydd%{jhOje0IP)RFE&U{fRt7a&k!(5t6h(nDh z7!25TQ7CMgyHSxD4+yx!EGt^@&3E&cx!AWKjS*QQQOy(RaDsjt7hIy?ps6xj~BOJcq!dd%K%3Iu~8wsX%9UcniJ&Od|olR-By9C zT{GPxHmR7_{3cEV9q>zJ`H~Rd{kvRS*@HJzppVmbqsVjlf0`fHGdLLiR%^YXyBPga zH1js|7`*?tdjln2Ml&+^;nTUJg2Y3JN-P2J#BYxBocs+ACj9}3W@MzPIK)Z* z*_u&FEYVL_#}+e5i5L3u&D%Ft_k-(uZZ6?~9XDF;BK_V3 zoH7`?hFD{@*k?*8KZyGhN8m=ar`d-@9${lwJ01f(a-${l$T!)OeAz1)R~qba#UO*Q zar|T|^JqS~oqRc;OQX``;h9<#>~JZNfdO8q=b-ZKI4DcLw97REZ1D>!mIjmVXy;;p zr*GtB9$PHLWgdeMmXj|zb5j6YlAgJ;2*NY8#lf(PaZxRpZ=VG-yNN_CQDU% z9y}L{f-kPy<1zdjEbL?+4JM-iTZ7&U#lfTpUI40B&&lWH%eUM#)gHymR~sk++~Nm& zmVp~|nLNa;lnw@R!IQEeqLz$+WRmK;c9eC}7U*Uzs=@m8E`q0M3&-@_B)7iN&%#N15 z^QD^(9EUAK{<5L>z;XB--**)%Hhv9J5>bxkB*xXgls?PUHSDs2Tc0j?m0d3;haI=r z`Ooe3cT^=T$N2^bdfT7eqHvL>U-|lVL^(Q{t_sL94a2lP^H?M{U=zDJK{`R6er@d; z{R|>D4*Fc=er)*UG)tDBE?n^_L2I@S4uRw;XJI`99Aq%Y(e3P_57cE0(yVWAtrK5Za`Qvbd<( z=j#QT>2+<^N)B-y9(mc@3RyK-;tCl_>*qyd$99LKF1{|sQ&y3h-Bxe)nUF8!Cy za7w`orxwc0Qy22=_sZXQR|TyX^HmwI3B6R>KJf3j>sjq@Qs-oCWD3g}B+hu-$tuCw zp*&`aK0_Aas_vjL|Gz;=K*VC!eaX#iq>Tzt{oX>}_v8fRzS1683M`>!@=oPJzLp}$ z>S5}92l31uYA{=!++)Lx{e+%pifJ&)M8Djc~ zHwq_zc~6i)2|mVZ6V(vKIw~e>CX2l7h~GdHpI{6IR|F+;%AL_{aQ^_TkXo_*0Qdo( zaf1^T^xQCr=kyKPqzyr-O2^3dD{bYSAuPi-;ghbNe^|a$3hxpo$+$8i7&#?Bras_8ekQ}bgQ*SC&vLnX&?`EkpPP~+@yS@ ztv;zCvv6pgLmxgovo(aG9C%{ZE;JzWWZ->|VMF%@(EyDuVRvNrLtqcCv=Bu&_L16c zux~TM(JvHDj~ut2!>}#c<6YST^7m(C?nJT0AbY$jH}Psr{WG;!-EkR%TVmM4HX+M* z0^hG4$U0>T)$jWcP}A`D^|>SfEWZzwpLhfFm8EDuQ=%u{D4U#vjU=J$DQo@yBSR|m z%l%++n2sRzF6|Lie{J5f6!wMvIdmZCHi(-y)M3^_t&>(Fa*5vRiX6CcL^%8Xu|+== zwtMiHjT2r-D6LrJk`-i&92nQTXNl%}%BUH%xowvZ)nHe*9($_Vpj;?2=Ve{9-tX9} zrBY#&XunhdZh$iX>DbivJ1j)Orj3Q>Ex%{MH_~8ryyR?P~Eq(z&g2n(NYI$N4N+ zp`u>($+O9+t@4DJ!tWMqAgGzRydQph5P{w5&?E<4384W;UPA`9v@K__o+(^%B=~FM z{frI1v~$OV8tr4ERpSx%qeM%Q1F`99AMp3SeJXXI?Dn`;vClLgw!S@$Ly)&lz*w;j zrOTIL(I>!Q;XVDz2paRS@4^+ja~=U${V%@%@B@s{w}(UHw>_}@Sv+_r_CkyZW$#4E zt13jvBU@sjN+w=0$K%_O+?iqnGashCdBTBrPCV@7Ve5aGoA%rqKD$2H)JK=QFW5qV zdnxLHU14sX*Mcsj(_6zH`~p4mf0`Oxcu4HbNOwFNLi|z^Ip1~iRZ=&7`({`Eqt!f& zBhXjb#rKcjQ9eP~N-B!k)k-gNat=8D{v3EQn)=#d4hl%WhN*s+o8*9Zay4lx!H6x? zLb?gqe7WGe(Uc{8qHBHSMBIzwOqJXU6?}EG@H)eiF=<2Lo;g}QJobcHpGCq^DKGQJ zJRSUw44GK+cAzjzk|3roKY3^l*;VLieODog$j zA(FH@GlG#>gD>tfw4k1jxCE$>R+cuh>?DEnG;qNvbqf)F!5bn(wplIf7#Y305|C?^ z?!rY)xx66A@ou#_{j-sGoG*d_cn8r3n%Mm4Uch%!lfur1VTO^H&&hK10IE7eTU*g_ zkF06^o?4Q|32jg^U%*Yx6z=5VzZP|75t)C!f<5>&dkKY|rejY2(9>2x8fV9M<+AGb za>S;^l-~KMqs`QTg6??-_K1ll#hnYC;zK9DuN!`zUB$ZKm9?Xy^SZRr z_&#=IvQn}nt(Higw74>FFjT!>r?X`hj_wQ(^0W%13XDweIqf>dDh$LM;Z5_4S$T*w zhC3hzIe!%nKFpb##1lmNNS@PN&?6#M2>ysU3IIl;Ktyr1A}PpmL*N}?IYnDSHp?#xEM z@$m8p9DWa|)OynidOiHE^VX^aolP(xj_iWmn&wun+%z{%6s7Xr-3z4)n0P8RxAz1` zBW(q9c0WP6XC@gE*7%h9{DpLH1uqWshL?_n;*v4_y7Ekf)=hLXN~Uc~N6G_c;j5_9 z4i{}&fnRr-l8O33{=gPy^jyRw={s(L_4fW&8&b*=$}CPxM0HLrL=qhcEs?-C1E!Gg z3~r;(m{*wn14ZXp~xK`;#R?ZRHe;{y3%UWZv z5Q`BaaJb>T5{eZLA^~Qcv8P+Gp&s%$8%Q2Fk%6OcxX5-5FRh^qC;pP6geTzq{1}%H zby30#a9RFc+eb;h{AJAM?qbOE2KkJH^GDJ^wH=W?(RF}7+_jCyf}zr}CFcBo&fn>^ zlJrf}j$f+OtD$rcW@V(iP$6}wCB9<$GRDW;DP-R;-&iNZbPWJ)rUs$3DyTrJ++R^o zJOx97aQj862|vozfDLB!(p1%muG&JA$`ZP$KfH`m5WL+A{g9Hi8=Lg+2mh8N8=j}5 zmaWi^zatpYNn@208owhxfVZnBdxmy60LckTQFNstO55M5ZkZ0;_w;jkTKBx+MpUb< zt4?4O^0(ta_C4bby=6|D4nNA2S!PeImuEopwcn*gA?3&LaapB-JrVYrKfOf`ikV=u#?oKd77%KG(zL` zN|A%ma->P1S@gWv_8yzdZ;Z=Ha?m!-eos?$#d2;#wb!4TKl*^a@8#MDy;m_<`0Y3f z-w~JP>W|#=rI>eM8I&MEaFGK~5WvZ;UO-c9n88#?)6dU_n@=M?IBxS@@fXDy;ZzbE zbtZEGO+Rz}dC&v8@Z>$MccO}jqBH!ZknQA7Ec1Vfm7DwuiF!XIvq^(rsIJ1-4zp!) zyZD{K-=t<11809rzJ^~qOeYn&P>=Cajq5L?9_p*_n>=*(*0wn0z+C;tJB6kSmAQLsU&Da$o1$!GP<{!{X(B@8Xb`17+I zFmHhv>Hfd{|KzX>NBaN4t|JMCWGFKN7pIv4i^1dHIOf9a=(lj|L2%owVCy0n`mPZ{4Awrpz^fH$G3B#uwTaC- z$n;2`)Xq+o7}Xoq7zK>#+hn*Ux`nvK-L;R~R@BHhFgBhw>Phk&xk8CetZ(HwR4{mQW`MQ)-5rB=Ajk}Jm zjw9=iuFCv!aPjcryb8lrAWbYvFpz_muj{bZ*MnA({bRo5o z=Fjma_Y66@7#OQ{WDw^1?B+U&kdGaY9*<*;0mj-z+r^#55=Rq9<;3cT>&LEzuMM+U zc(NDZFXQ*)W8+_Ks*}Na>r-WX%tgG8PtWCmPNOMi=uCr3WbRE{w)dphzu)Iw5eblO z3s&4_yZ>J^5N~KajcMfLdw?4*E*MByIwK6XL2Zh3$@PSoah%&1_l-41kFudXPo&;Z zfbBn()k$3`J95%u6$GYgXK-F2&EaHP*L8@?~Qs~W(JWB z-vt~Y604NVK#qTne-B^CnALHf+h9JBURrhv+N%>iYxO=}C{EwzW>Lk%Y`M|Rp+dg`l7CbVx6HYe+FKSY+HEhQBS%Mrw{${B2KBvwt*rCsny1U>YfXP0uk# zXAUtgUIQemUq~6K$WcU`EsB?lcoB$sb^6seams0K>SlR6Qwt7Uahx{U;t&qm)+CK_ z%(d*)Uydv4%w~%1(=)_!7dNBD^slVIx-f{ZOn|Wdy9iA6s2vHX8P-kIah$}V1yqd6 zv$%J0%gep3lP|?(G(1rBQOxPi)kfLx(WD66>VPCq5t)dgSh*gP$$oK+m}HO@;O^C~ zqOqdvT}6}q3S7b^L1{GeLG$^xC^{T8U(YvG%ebu=c^GkckjP2?_GS7c2 z;rP?KUXo&uawmIVwAYFTm+U@Ih`DEczViwmUIv`IarYB}Ych3jGwY55gd>yI{{io0 zH+>q1UCWq1Z)^f=J%bhAZ&%(XksubXeUigzi)_IW4U~4BEvBp#6lJ%3LS;`PkL4D~ z5ngKOh<_MenyKJgqz6<6*_JSi8|#KWfr4Yj+rf&2*Jndg7^z#mA8yY5GPssF`2P_sDD>;jt0UeA6GtvSials+oCnT8;N z*Y_Ur`;(@yCbf}#qUQY2a%3v{1aCcGr44y$`GJT|F)VmXdB}_U;5C++)rC(I4PfAal3RqMMJpCZgi!k*Ta_4t};a zN1q_~tY(;(sqvF~{zJ;<>NYva8d`P!$U8BWqA$3G^S4>4kiK#z*g|zLn%;&hhTEoep$s*8LHbVq+id z%n(YXCO@cg1L#V;XaVdbH{1j7aaX?(=wARfLW%|&x|D}BQ*+w0b|sP2n^d#@jI0qD zmj}(;eAdnmC<#s|GUaz|64VRobcbi8EuGvtgYR%_{u@6vs5gMhww=D5h!*l>W}jIi zg(I@7*p9{Ctw@~Xmdhb69ih2k(UF@D-{&(7ZJ;>9Pqz6Fz`mCQQ~0AIXl3idlN-i^ z^$w~6D+QdcjX=?2y=7zU7F!oy0;`o%$dGRZ!&e{pBDg(s!Ci(;iS-* zVCdqequ)!>yW!r%uP&4_SdE)@A)NLr@@PUu7r1h^B{VjZUY6cpMetlArn1WLA%23T zUg))da41gUwiK=@IhU=OS)|-{NstF~X@SZq3KdLTc`vbFY|BF($P-D-ttmJ1f^*HR zgQ_DFz&ivoxs)B2mtw<_X>$b#s))X27}mxs-{>j-LYG`X6LT!xir)S|BEB)WlIHPx zcau#vwzaX7jcwbuZQI`1wrx8b+rF`R$FIxNI zY$3v6>ycF?a;g80_Ch?!oVvY&zBtbe;X6gWx0+$j}7pO?@sy-99 zlp6fN{rc0c-UqQwTq+POYRh27Yqb*$B@DW`6?2DIU632CuuL1}TjTzixSd4teF3LqA- z)wz?jUG@FdIq7IjJ66Ppzdo5gjXjnZn&{eQj-Q?XLcA{%b#XbUW&a z_u_n#yz=tc?P};s>5A}h0;U|>jBjMSF<*OcM}HaaO+V`1THYjHoPeo^cB6pgPtlLe z7rSEsojt|@x-y0{x-?~)T3vy@QvdnSFqmmnZOS&S6M7n&D%uOmEY-F=dzIak0iF;s zm>D!(>Mk`@Ix5Nv`ZLN5P3Bs2kGar-Y!S#vSyUa04&5&`yt=kJF8vivjy89xyTxtC z-sL|~WGq@Pb&saETb!HxRo=LOO%NG;28;P^9!pRQ{5sRgXdY7#9YTlB9!*4YQu1Qz zU#fI%#!h30v9p9J(%NKP8V&`=o&(FVY(+DRs-~)@o~A};!_&X>FU1p*D=D^=KGpa9 zr}gtp#i^3D$=h^HsV@_Z6O!W<6Pn|m<76o^)R{UhdDa$d6%7w2TH~%MmvkEhqezSf zLxktIM7{Gxohc|3$n$VY4#(*Qdj4pMtPM{x4Pb@(lf&n|*>4v_ufMAN>t0$1Kn~hT zTTaKQ!th(kO$VpgG+K_Y7Xr)Q)L&@?Z@;OZSqt8fs;l%fDRC$4j{0_n_kL=F?f?kt&~cVFc{8<+QemKJ6MM< zVYg=&$17(9#UQhsI|pDMSS-Q=p(-}N$5rrUvwf+s>+T@=E4(fs;rx}KHfx!ZkdvuA zVN@$_Y=tRlb7Ido&o4J5Rr7A53lqo#duu1RI1fL`2X@;`$mhs?F6DxfYY&>^-K@-D z{S)2n%n(P0+XJtz6299TZ=;mW?%dm@X&_MBTFWUBC(;fnmB-5B?R4kC7#0@$ zR}qj78qCmQlqxibBwE=Ai5hh8C7&HXk)e?a0lg^_kJArg$h=N5%D_H>Z_;~#nG z2gdo7=~?JD5Q!|e>pLD&Z9ld~;$FnWxoT7Pwrn!wObYf3qZaRXD>;b5%1aIPpZQXo z{En6VsK+bi+$WxD{gX(C$8QiJvrCpM^!ig`S_CG=o9`yUvkNZ}CcHN;(1fSNfOVaZ z3ID#=a%#0tzi$FsLOs3e%)pbqVc$-=K>S;yJ98^ZQQl(^i}%r6 z;hjiB4^i%dC9#7x@{5aa^4^HSBh9sbzys1TerWBPDc5MnGK=b+@35BhwXnBFsb>@R z;YY&Pauvi9S=;Qgb+tmtyKSN@W@rwlNZr|+4|KUuO9f?yzS#nf%U<2Wr!t&+a#!LB zrapf(*=Y}%m9T))f2eLfs_^_trPF)p-0bjP+5nyamo{FHgx?^{a_Uh$y zzef>Q!g7&V`z)UIcWTW_^T?Ma%XF1K}#J#QU)XUD6M zayW?5be+SJ!d+%FcM4#?YT~4uWW#8uV*aeTmzW3 z$0I?X`MZkfn|^YG#nr7Etb)=&PT_f4(+wp=ri+9PP$~Pw)-^Y>fL#k z^&iy$*$XqYQEd(aBu{JymDrG88y}XzL(%e^S{IiDabiv-C8~;_A(_TYs%F#XbpB|n zItcTxMC}#=BUBrVh;nYiLWMe}$hsJNm;T98Tj}ZDnN^ST4as7Cg!1S*^vfFGJ%GgQ zIg}TLXSzbFGB?_V;}1?#AZ5O@O69Hgo)g|Ypty05z-bsjc37zU299dR_Um0v=;EIk zyLmDXe!8kFe6ZIG!F^Hbz`5_ImMDwm@aD$MZPIl6DK)5c5%O6RS~`7T(*Yb}BCe%F zmXs&~?F_k8>hH+)>G37a*k&#S~5+Rn1VdaoF?bx!~E?x&AX)Le!dXn}Yr7)(EjN z($*kxY`d=ibciOiHoAI>Nz@H_>dGYUg}SuTBYimh_wRJALKb^{jJ}-?AL;om-Wxo| z%BKK!U9`MWvJrc+lbNdP~zACA?IdE>`zN(TwqQfO)EPed@yfKQZ#`Vz8ZTL92Ad)G3_;m z!Zn=UwEcuZQi9B$G62IXuf3n2mE=<(X3o#|KaxVFPNGbbR z(BIfZ%7Xm-@=u(3TbUjG6$U=-;P7G*4Whj}^j-PXg+>ZxibG@WJi@3DwwO`|vMDQ4 zCR#=LCT5p57S$M?A0F?IF*`UvH3w&t=d|3zE{64K8gJNE5Bo*tg0)ap(hD=?kf`w7 zqP6r2>LjbCm-)M8(tTF95xkf=*U%kdiMZGf>fz5!P)zj~&rN?fvN+(=0HW%c{ zTNL7lYXy4RW~dk_<#_TX6JirNbi>T}4t`6ZUt@>eCG{Z4+bL;|vn9u4S&#$5C@Rhd z-(=f^0w2Ra#1&NZPM}3poSsocR5aK8vJ0qea1l{o#yM%%-q;tTn}xCiW&}LiUxf78 zi1l7R+GD9+=2bm%1dC~b$ZZlr%X}}}PoyP&ZNJM`~$gTy1y&TwD^94^v%zgO>_`ImN!sJ61<~wEquS&+t~);>S7?j zk;nS3YO4OQ0iP5y)@0c1jz8H*+DX~3}QuPF0~yl`y> z^RHTv#9;qD*1yr#jMsZOFurr>X$wsp0Q#BrGzSB)j>N*m`oMc<^m^Qro~si zvJ(n9j?p?r+R9Ji+xbpWG{CBNrb7Ejpon_2c`m-RI)7C41qE89WfZ1-xqtaN5jy04epYjyQ@xXvZ=*{8Cg(|b zwM1UjaE6aN`T}Oih))t{OHKl;O8;I9RfNij+cTj*4=)lfF`&{Wj&q3?DR1v3-POP(9Rwy}$eJF&!YLLH9@j`P2A1@S2z5BLC z7~Tu1dAJR8n%vCrB=CTB+sR|Jp$z<<4kPcgXgMV`rB_ zG}{hB0@CI26K#9;?}~z8)NVOSDz9gbr=H#Y%Ho3gF5`uA@B-d|oo|0QsOVwFU#Nxu8SKKM3ZteE zAiE2{i84ndjr{m4Rfa*S)FQy5^0e$Ua?OH{?J46pV$A#m32c!Y0$Y(?-nN%tp=T zdM)VD(5t(9g?FoGwr9QPU(bf`s_*(o%X`Y;RXE4^mxP>m#Chb$h~x;_2;Io{5r+|u z5wsDT(j_d{BQEN!hiO)`TBic1ic-zdU{1+b+L=FA!XA2VJXj%hm+^8JBZY3ku-z_% zbNVw0+cqD2VF*_bsXZ*uE^UDq zn7Ps#wBXTzQ*TVfXIG6W3zPfK5e}zLJ{-v2^x+?}Q$yJ5%^qIeU@|Sr(1K;gU&jKv{zJ;gSN)M(;p5d{!qB5BazN zaUt(h<*%r2OG>$hlJn%F8rrvVc)P%)fapIq@?|pm{RW4msQG1Qn=CT<^G++cA(H>d z3oc>N{XFu`u zyprt_6LJ}qpd^_DWrGA6ewI$_GNNX1dX1@=k6-+2(zI`&HBR83*9^x|85qT8dx!s{ z9NWMPOU^(sRd*?bS^~LNODu`DWt7!^pd+aVTtuGHtAFf?CNXRd*lu9`=a|Id0x-66eHGUtWhpP&f`Se&9h-9z1_yq#&7Lyu?2dH z8hZoOqow@b3smfA*yh{kDj!D zR@Kr78P=weHy2z;O#NJ6Eq!RP)S zRG{pbtdv}!tUe(u;YfgpJl~~GOd=}IW^6*@xxwT``YRB|j5jryUMriPWOst~WKiN6 z$n7bL+{0bz3;!6d0JsU<3UD~V5w{ztWPZaB{p<<_{JT-JdM?EJC}n=r4eb>jB$&9- zo4pxfcx%S~a1Z?~2nEdCtXMpwV19VU0RD|#o51BJ10eo`QWkGjU!4CSckV{x#b*8s zd{hU`4qG+8;3+b6W_0Ee`QrBg(u!zZd&OmRr|(a$=B9O+6pA)NC=A<*U!?nc@h(!x zbblLn%?wsh9uB!mWT`pmHVWt+zC0$a_S!8hd?OBPEt}&GYbkHsBPJUTI3p%nw=lS= zHiMVAsTKlHa{6|W2R1B-fac`C`6~IBb!;NkCI|UnOWI_c?D*kFBKxG;r^xXbgOyqd zZ0~cAOim^EZs^M047T)F89<22O1yEF(qm-%bRs?0j+f99$5XDpPNhNwR$#VE5BRyT z_D2r0x`kmiz+8-01FgVyG>w%XHifGF& zFpU9prqtx!6eMk6@j}Beu!P0@vazNfzct-PrbVQMr-k}a8zcjlddC7J&}I76u<$ z_t!R5ame0RR_EJn$L!VY*z8grk2bC?j2r?zj2&Dr5-&jyUW8}`@jlTVkri>Rn5=M( zaP{1Pxs|h~vxT$Nz5c!Sz0MqcN+CXzkT#hu5<B%H#v@6MjdLlbHS0!^PlZD61VEL@7 zTEnX`#w2^DBZt;ltZ||tvth(!W>Pn+oAv9Mvgg8R?YN=V6fkvrba146)O094`4z#z zZYDFmoW;W-<~V(zJ>8ytJ~=g6J!&(Cm&!%#W^h%pIn`c!j6d$f^i;j+c30(L;bGzt z?a}SA06aRb9^FW5WwP_zuJ3B}NWHT?)Vdpdd3hNGW&*u{8grANd(QjNokAB#l*yLkA9NUtrQcS5==A~A&B8|IIvr_grmzHgf+^5JJ zrzLta!dl=Qc}bh#h=O z4fBm|%f8p~co)2)eI5!|^uT>1IExOV5 z4iZhg;Da&?zW9_$wC>$g+-{}Yp!=oq8MPcj=WwcyMY>Y$L)jI(y?ZOA9xtvyZgbqO z{IrDAHB+E$Pu(^On4R$H&MaReywZ8r%||!M(Jpq^cCHwNC_kuesswl?D)|6@tIUJq zvQdKnDuaxl5uV~h7xqWp+L@hC6PoM}yaZ`1u$z-l)}>MBmFf}lqn-jvy?_K9+_hZZ z)d-HyR7ilYK$?F^HMcmpIW_guI+N2+0^S$A)r!vzgc;Oc&fo(3wcQpyM$?kio;b75 zQO1+mHoq-;OnSdtxsDx*KLMQt??0-7oRGt$E&T+Qc5A>`8B1`KVBe?z$aTnqIE*2? zDs>hwq@zB-;-00L++7qqqAEoeh2cUH5d(1RGMBAxhxQu8Z^x z9#8fWm*}qeyVr-@E8JiFqfG7pV);FruWjr7v zObz>q=xWiC0MH>brsB7TBoXgR%pS!62 zn5#VJO7<~2a;oFoYUc|Q3@mkbYMOp0A#Mt#VpIK`;hxoO%fJj2Q8^x(tkbXP!`AmyA#>~2 zPYgt}k#6D7`}0^rN2v|@Hy#2gh*@9(mZjmTDEycE?(%bl`_zK}(I zfPmuVrf!6@qSE)%r_-BLvvzVoq;MQXD zKV_PE3%$Q<^ZEq##)5(Tb$mLmZTh-r9*o$}D=&%JBUz!gCtAz9YVHW}YC1}oWWp+I zj=j~t@Nn`=k$cYW)c&d(>Ff;L$8F8to!)Pgfqg>3ZH+vF_=*-dPiwm4xUwg^bdA{< zuy?cHR3$qWa39Pjv6@&U;ljt-69vt-LYlGZ40ukQ>9;}@rPUzw;l{0sq>hQ0~#ZM`_D+pk?4N{ zOgB^!wXtrQJMsAp%<)AFT5>+U@N&9R?|EM+<|7_PUYpNbHAw96ev`YiX!CWdzcIKe zh}cuHONq|ZkebNC!}t#2-a#B@|6`eQ(KW6Mhaz!JlpWh|^_85R5{LX!=HIf71!^gD z6U22!^v02WJ7rE7F${Z^SSa!BOWcM%W{Bkw>w~L~*!LIJE>pN^1@J70*-}}?iJ?vx z?So;v7iYQXi^@>4^Mg>e!;*9R8{7MHWf`2Z49f-E@y>nGFrYD6-r2I}Xf(+C1~!hjRT;Jv zLaT4Ev}xp1iHhJA^=O8Y(+B#F`%bqwD_fR+z3+DP%EKJFLslo*c zW4DX&_4xf<15{iFsQP~+(Un8mt&-Z7m$ch{;&tUoVrTH6yI3b?QT6-u} zW-N^izHeszb-1^bE%7nd>}Djf=;}XY#i^yftpEmR^B!euLsRS_%&`*^oj;%CcC3>& zE91x;ks{9|^K_ z<58ys=^PTmV8jNR3E;2r@V3<4D6jT#ulUZr$jz^mb_Wr3jjs@QVPW*I#CD{35n*BD z{|ZP*8gHF)DsE~^_mh3CfL7ya4i%jlrBc~!F%|-|-_71AVC8$6SmF$T0e6fWFU3nkq7 zz{Q(;j4ns&{Bj>%M!2M>Y_Lkh(TNZm+! zQ>#Bi;oZ_U0>(3cJ)t-K%;L_fVtI=NF=%J}z4BRT``p$IFG2*sS34Ks3k}bj~ z<#Pzg_yt|QBE1%4fS$QUMwaPgDKD!R3&TMcAbJzs;a^y?!vERg-~FRWtPSErV3th^ z+#18*OoJDiSGbSZ2N2LJV28~eQdl*?9SA~OWgDeE^o7ge2Ws2*syIz#99ifJ6aI}( z6IyjE8*cdV7IDzx)f-M+CKk9PuUh}`-cY{QH19m>9814r20VY+fAhJcaEkQ^@hE-i z>Vx?y7+WX3N`#AHs}Yz|W)f(5CBH?Q-duZLi~Wcg5|txOMJ3);-+4S?1S7Xm(s_|bVz-ioR>8|hmAqJ@G+1U-Yo!V{H zrPT%MBJWD=a`RTzi>aMeJ3oJ%dZc}3myw zhk2t1={?jw**#o865JC!=0`36_zXJa9mz>XRB0{~u<@sdh)sxKFiyC?)PJ|@- zKO9p+o}!%^-2;rrsyBCn6D&8gln;Ag=X#WqnIZ)`;I?TAdSk`yRwv*R;?QFzn-YO8 z0FVXUMjkAPQ?dsuU%RS&Lv*;BXTXHlSFh_GF-+S|4k|$-pfMja$mI3ZHs?D-Gl3Ov zw^9JB&eUj+1D=o-H&tFD>sN9@8G(_>s#_mO`Jky%^clJ9fTH<#Y%PgL zm<$Ck<9KZuXq&>SRJUTl?JpTqq(zqL`!Bn`D2WEUy;S&CnZihkArML9t7#vG0u8u| zUVvtC4;&>Hx}G;|h3xfYld_DXPUE~HcdEA>u`l~n$xiCBGWB@dh`&-l*(#n9U;0pNV!yj*03!@jBO65a9 zda#GS9jyM(ll8lMBN*-P^=Jb#wE;D8+9mh$K@J8uk;+CcIFUprMeImcGdb)?*W&|b z)a>bPW>lSNN(%}yP86~1k`q^186k$T7vFS2k835u6Ld*&P|esMdYW94mvu;gqJNU8 zEqyqudlyC@7MWGM8Xpn1xD-E}i%|zzQY4hEVg1OvZp)XI$15mFS5*6gC&YGCgV^E9 zqrFhX%2WZwacWU#Q0vAYXeZ-iKm~J-tk?n8zBB4pX(Gc&XuS}&Qej<4BmFh#Rp`qN zgEz})!%Nh?(dHW|#cth2SnYk}x=V1@B>zjIIuR&!BHdE;N&R>>sA0|zl)5QoAlj0i zQ1We!vrK=X!gr>zDl|2M`&8}tqDw_c{WXuF${~P=fkkF)$+z4;V#Xg=GEnM_13nzj z=!@bMFnY8ftdmJ5R6F-;q|V{Xsr>tP?xGP&4!G(;EQc3E*q;y)-doC^TIXxQM)p*P zXLT1Lckw^L`{KK28%>YNcABi$2Go9E5wr_B&|n<@nAO3#@cR_Tm0&Pv0y8a(eoM%p zU(4`UxFfLx^Kpw$(oZx7`s=b7*kz*s;HEpBv*KTvxCZZb{ZaeJZs_3zK&N7Oo;E|? z7hkf!@QwT!w`rqA7niga*R)i3U%;m=2R$NEQ$I699wD&z*Q=GwNAqgOqg9*U>&G|u zzJyuX(GM%20C&A*6^bw`yU2j5zp5cE^}MvQ)~mouMed@_IF#Mm48H;&C?CSnJ6V-4 zEdNYWVAdk9I=T>(3j6-23_wbFtWj@71KUEvhMNDJblh@`4@S&e$%(E%{MihJ<%D-e zj9;xn^cqqM>rOwMRwP^INY5~hH%2C<*FX--M?2Db;d_ZM&VxBb41?%%`l@Llep}#0 zG~PdWB{il%oqu&y5-axa`0I*rDQssNOESJ-J2EA;M%U=gJ~A!GEHY`DvbQF+iE*-+ zhyU&ZRi(5%N*->swDL;^ztG}nX4jqD-6WG<-;-N$Kz26Lf_fP!mZ#>mM)Iie%sLY0 zz)iSmYR31r?B4k_!QO)uNq}^V=MT`N5&9%)=qlep{T7XZ|1%N1_lA?v2k~Cdy%|`X zVJrQS;(aSEu}HRCuXY zMkgjMrc_hg3GU2)W+4qFX5A?+zt25gObH{zzDg3??GgX2f;X4xcr^=@_ z;u;x_-KV?zi6Pt&bQ#=NcB0y2Hi4S~n=b8Qj&=xRIP<&*hlCqpSraJ0$UD=6>M^b~ zHzV`M+0gu`P+M$I?~^Tq!O&&|El%t6x`jb}UY6JLtI`yn=F9R0IUY=2L-&!J;=xu} zK90BTg~1$KAJ5x`%v|1&`)s6k;yq&Y=+!@aH{s{R-NX}O)0i)3qg%u?v3sJ?_)9F7 zr)6xScmyt>^b0e~-1Mi(b+bo4Cyyp}PUf$ijL5kSv0Qwg&$TWyoSf{>i*>Un9xsO6 z8G>v;d@sA7(Z}wam65hlZOrfOt%gu4GsO54y(Z4YWH>^bH8hUVE=WP7UyZWt#H34Ogmq`jJ%1tiPD+fxmlcs zisFn)Q@bhuM1StkFyGzT!RxkQ&*e*mHG{!NF-BWXm#zSm99vE>B3&7bu@`6~?xJ|} zbhmrfe)hGHwJ=JNKObU6!$ZeGNn~L{>!I#N@>6VxM9V zqOY-g&EM8*thH}=a$j{tDEezZ4C}m`@6$Z(Fpq-w?KD0Z-=*sFB?bsb2ORN!cECp$wvvP zOfB1`CFh)Tb-LZORSfGBYwu!LiHF!-{Soz4tfr&pxMqhIdP|k<+OlKOq2ff)^5pW~ za?J8eb){x&6TW5l?3YRypt`!e&N}-jxpCA2W^=rL)nwLm+&Z#h)ed_C_Tz@a2%c`h57XN1onjXSolPNbk8@|-RiEb0aN7zi<{-U<(Eok zayqOoTZ`FBv9jIl54OFPe!_kxesZ6IAIa~TuTPJ;7rpa-pY4B-MY%D2YR=mOj#GG^ zUY#~_x$ZaDj%}s)OH5>`)6g@Q*=%;3k{4KIH+U{ro1zx3xaoOwpS+)6mXFQ2dk0|ru;{b3*(<7&!&ax_zco0zxIZ+HN!c2b?sXymUD)AVE;>wbR}7CpRQ{l&j! zjMCoc`KU_W&F8%ujMy&stA9B3ycwst9G0ferX!Q-Oc*oTEKY-ycuWY>+$?v%Nv_6V zjr2y*naF9&To#|@0*%^9O*X5Is`p0O$qx4OWoz3OzsK-3lg3Q5ry1QpUN0BTjjfa0 zT%gqpr^ec;9<~uqa;NDs4il$6C(mQpNexD`rK|_1mZ>$i zL;=_oST|TBq%O8PL!GJqLSIb4JJ<-sG`u!e8_$h>4LcjV+v;Xu`=Jxgk?T}8tK0VG zKPRCBi<~t>{JGNC*AEXg*)iuze-A%xM~#wL?``58(;9;DB7`><>Uz(#?Ht-AdbI@4BTs50lQ;FX z8-x`Lr9+stR9HOG8Yp2TMj>TRPt}?n$9l|Hr34}v)rj&hPAqBu?A1WAICcZnRq^Y7@Ql61pv?ppwF>Wwie2nmAdLdl^8BOS7BhLVTknS=xZu?g@fPLxy0U zgpCPiV<^O0^b(jJW`gCBN&e&YsF|LV4I`6Em|wQwP?fJ>x(Ap30ri~iN9|rGa$Bup zCzGIp|3}a)F)34pb#N_=%#_q0E{qs!E zIQqMk@KF=ibiaf=E~;!m&sdhZ4F>lIVLY`$duDu593&q(qP?r0Q4^^F%4|;I9xmTo zPYLV@e)!}3o{(><`xEo*jrAh>$kbaz8$(gCm0_`0R$^;fUQb$LYfS!=jMN1~ z$cK{jK{)iam9jj&YOZF2vYdQw(U)FG=8oRf^u32X&-MY7>)$a(;Qr%`)$azXY~y_% zMc(a|>8o)f_W^tn<$X<#f9sOq9(*zJO)sB4_=+vmNr-`bg}B64lh@j`>@zzdW9n(T zxIlK)$yQRsjYnvzw5Z0YY>Kj63e%F1l*LO{Ls7A@<#ah|@ox&Rxs(J?Kt8&XBGVg} zxtzq*x)#?L>pMA}v?yH^kVj3*LTvSOi?STcs!Cr}^2{)FJu#spGT*eFOh#uyzEL}| z#FS_QLZe1PY30u%%}Pdje8PKC>f;hCo`yt$PUAue|7j{MDwAD*n|ZqC-{h{RhoO-S9=9>a6U4 zGzv)yLP6|IxNd|0Dk2II8~gwZPcT&cD4^>7kKA7XrNyqawPYhqbNaa(dP3!UhdA2f$62`Y4fvwS{OT8<1pPJT0@zRB zi-i5-5`Sf(ym}=gQq~GhG>xha3u0_wg(fVYB-WwRS(8Jnf8G1$={4FUSWxF#BMs;M zJ*Mc460H3f(7csop)~9b`BB+KPu4Qp)U-_p`8PMk<(k zvfe*i;%;=y&4>w!>LhmRBfd~R?zFr0?XJX6@k;O8NcB+LaK_) z!0a0jC8i>x^|MtZkKer?J(k@$k~_5!}?^z7GXST zv^C~0lnPa=nn#!b$1xM_W^pyIflfQ<4N=c#|(k z+yHIXX-RdI{d3wgo$-OH|MK3Km6r6Q<5T9jqheyk&3E8jY6p6fOw+BxM+@~Lf0aT5 zK|jV>?*wzQ+R{f#@q?O@v``G5TUv7Lq%>%a9jIB&j4x(tmDDGdzJ=HS6ci?dlq2ET zlI9BZ+y61P4Bnm)yo;zL6OBKlNn_>Q!Z+@G>M9zvXxMp+=?t`O_CBjWiM00fgzcz9 zMLsv?%ZC#8 z%US68>Ad{uJ!@a{r}d;>Mcc;~no}{n$`o&1sPlos53R}FcR?Fwf-fydLIj(4Nhz=j zMj6^Ep6bP0&dtcrshc%(UBFA9HfLj~g$n2;%{OB13FwqKNlT6G10>EeTvG;kebv-5 z`uGxN8SMB1KwmYC;y%8_*?RBuZW3qM6=>H#=l&_%O>J=f(@D-`V zuxL}&H`|CgKj?dnyP%aKnidv<>(Y!xiKS6$E47~*`EUw`G#Og=X9Y7W$+jFx z6)rG@8y;C@2-FTvrD_`|HsA%(llCVDmj0EhihjsT*$*nIFr!Fu&o)q`r$`H*bZGLS zH!&&lh8S8_e>kUki=Tn_NT~C#tdHZdZ)CaDOrrQOwk8B`3Z;!hTkIcZh-J1n+H|tD zo?))|PcEUL6;e{awBM0tjBAjGoK8YKXPl}>rJ)H~hd2T96bp5oQsuSiQr^H9;w0=@ z3TnZv8Ad&%3Rv^su9c_?a%B0-{t)lc&xPJG8lhOTr~;MEo>jS!dNR(X1jw^0UGa z3Ib*?F!%O>1e2qcbGZ_Za7BU~qnR4gKp1~`?|J@4q#S=VN*CsSh4-xb5G?%84rQ3p z&8`Eu=tPc3$?ZKVOO8@&H4l9Yf1@lDlxpy2D>MbDQ_cbHxt47d<^^0CQ(V@&dutqvwQO&IQ z$ViZj^^w>Qf39eeaE4e`^WaJ86j@TvE47Ub9+#HzN4&xgO4ST>%d+&CL#{c8sKpJ4 z&-`G{_`3x8FeGdnqVnYT;}%c>zbWcUX&O6W%6futdF5G-fV3p`aH@|?zVfxM(= zTS9VD-voJMc0Nfclcgjm6NqPQ?_i(o9T2~HoPo}=8-;lm zhM+G&R0s(D5p4*zaKrKc=X#on<%m$C4+7Wuc{uYz`7i*_=yo6)zfYbwhwWa zlb#{MXi0nK2}_1BI4&q}k#5x`y`u-?k@YU^ONLfBwJC2^;N2v>>xqd;d**f}B5Lj3 zmG&lZX+8^X58+e%=AP4n4)vIMuk>FqqH}lt!&pxB50U-B|B;H26TRl%5&w1R+3p9@ zV*~auvycH7X*Q#NalL7iP`CufmMk{W*5`$FY6CAK3YWp`}-it8-l11pvd z1oNIr?LFg*GhNH=zGC|tQD!Th_Po@{fxGYH??&M>LIB!`)rqTI?45|a4WH$2azhFZ zdOy2rD2)rd=vgRg|MJB^?!0&Hz9{AA@aq;n#=A`_J%b$liEQX1K7a0AB7pa(NV<#t+6?@db5mCQ$ohp8a`F<^K1+0hl}(I!+3bC7W+m zih}f&8_w22Yhr7z<8zXW^@d;vt%Rhk1C6rYb9E~0Gfiz!rijs5RAOR_pdO#De)Hem zv75e~bL^=D0LkU-nVk%369f`Du;m&`h2c{wW+h<{HE>d{(PS z!bevi8nk@N^73R(O&-kBV!SpOYBQX*?guWWODu=XqZB@;u2MmK&4yjc$i3hEp@#{C zOJXV>@Dm#*YaWNb8Yv9evm7omlxVh2T)|@taw7N2+&5)p-=j^f!FI`j4B*5~PJME;YP5Xpn*Kv%H)C4CE zFtR^c64Zb}3K)5@h1KljYR|J_dxb8OnNhiI!Y z8<~}zqIRZ>q@s3bGd*R^!fTem=j^#rxl7|;se^`-p|$UG;2PB=1KnWk_XG095+o-y zkrqZN`j;fbDE21EBC?*KF>SXV=^8$r&i8CpyV`qX|)Z7!l|5NyEe# zKAL{9GKWdnK;_7Tu;oYO+eo&Woo3GxV^AY(JQ~YfvzR0e+zqQ24#JRA4^eq`WdC#IWLdhNsjo?G<;q zK-b^)DE6<^BoQF$BPj^g(teX6ER5tb%#{8W27)gkw=S#`npmmM4Gl|FZ4XJOmN5>2h;k9;lpnJ50eEJLM*Ql583ck@o=bTvNC8wqu6mdxU|K&QKt{jz z;WVokb%>a;^pm#aZLz{eG*3f3Q$x`VvZZ{){Ce#grlkTc8hd^g3Y}NYYIq0?3kw96 zFX|G_NpR?9a_G#|j6T5`%KU)PnhHm`$s+5rj3fv`$5gM3Ja$MAPL%CR179HdAcHEA z=}H1$p!;BjDpBgn0$(8gpo20ka3_T-(eh@4GEL~-)NeuKMQRm;QxlI;Hm+srqgY>N z1VMBOTGkzuiY34Q_}lDQLNsNO9Qr~u9M`HDyk>ZV=e&Ye{()$gydYvQ+l@<;^`vdS?=ZSEUXutW6ks z9S0Ob(nqE1%W|zTG}ofJ4L#!&dI%eur4CLK;pI0F-?|cnP=YB9r@?5K!@h@fp<{n^rgLUCR+>PP4BZ=%#gIT94T5;M8<1Lejo$?i8O2=QiG{RU-G zQdqTOTtW}YJDS77Xw|fpxedWG%4iHx0$&_uc7`L`HhmMiwj*WQY!@1?KR(Z2g~;vESL-HRT_(DG_tIb{{RS3SWzp0&dY5 zDcU@v%#pc6Z&>@Se%WC-raSbp8Rq}oixLZPB8mo|_oxYbO!TC6rm_v;PS!NFhx;Jw zldwVC%gG(NVWbf&XUo(0CRZ2b+7&(G#Qot2)=|pYgK!VUMpg{qy4y=eCXD}PHl=(^sqBLT#^o$9t;2ipdpeTGl2BhSV zzgG1j{~rL;KrFwBaCj~{Z?pvI03X0BxxN|ICeUzoOGekkLZME~S%&3C|=6)YlugVGDpU?(nKYlQw z4GMQSkJlu@l}z34-!Q8WNkQ*2P$U7}pz2k**Pke;%Detbtp}C%E(KL-|3N|3zP(35 z)x5PPW^bY#=ec;^#zS0LrOk>hbTh06#uhrzLO?a17ieQvDx5uBA7^KEb=))x2B#&r zP=+y*0rxUwTcC8Re4z|eC13mw#~*^Sx&$qczj+u1LpwJQV58nJwsfyu43HbQ^V-C4age+KB3b)?;FtY5@!Cai9) zzl86GFi%IYUlC)V-i}v6n<yRf$P74j+9JVUCR?-O|Fk5z}npNsQ#jTa~;M--#5ys{}+l5?WDg`^NY$p zq+lq&Y!vsGm|t%t(GOKG_jO{d@Oy^;FL;~@>)b$-wkGu)@*Ucot5SGdpfds16zEET zwFXrf${h<G zT(h2w=P*Es^UL-J+*3`{V7o3ul$o!?x3DJhy?1e_T% zgu2l==V=*~v2~Gq5&o8zVc7jgOoP{~sXK$mG@35aJ08ZcLI1k%UsOG8EW z$`?RB8SQ4mzYl&Zwbdy#@FyUvvi6>7*#!A!qIfK;tqMKSH|u=)cU04gmRdiH>r>ak zIr+C@g{%JlHPokNwsU`otWO?sGyYwIZj|1SMGwW|I${l?e|a)%T~5)@C(aS_Gb73%7t3t_yztRyfHbWT3h5%caDc&F{F3){6x!F zt-Kk;0f*lV0<9XQd=>}4f?Exm5$<`;qG``RDF2N|o%?_IZ+XN`--f?oHu+hQbqDOD z`G3fN<5N?(3Ym7`#1q~FI65(BV;XtYS$+idfX2%jm;Xj9pvm5Z+aS|8&OkjN&AW2o zTi`v;^*|<-g%fXSsTyWuaTHCLdlJYv>j z$d)b32#%ktIkLS~@?WrvxsO3MpirhIK)@#SM}elV;_mZ}!<{xCUC6lEdL8-^-D^bevJ8saEj z=v=1r=f>cMjBHfZ+q#+o@-mnGWV7csr6^%I*4|FJ#N)OL@pChmm3Cgq5x&M{KK>eV z{GO8@chz`qazSmKFuo>CFDF7&qQ~f^Lx~yl7-R1I8_=a)qn(229&YOB>0~InwnWW~zP&FP^_;i(9X8I)O!6RFa^*<4~y`ik15z`t5Uj=8Qh7bGz z+u!MZA$n?)IJbmyMXF`A9*T$Yi@(7rWGL2fN!Fn_pL5B7BQGWDO~U?t8H4l%$~aW( z5{CTAwCS1@?(V{vgw^DpNMNY-!yVzAMr(ol0RbmwUwB!DCyqjs<%=4e&YpV+ zH2>ttpiGJ!)UWnj(>_?6I7dRin=+2eP`x!}=+4i*E#JAAw%D>{SUI{kX|wZPeE-wi z&?+8GfHjHVOMtc655qU8NOPtESqi6Sz;Z%{P_6d;8)(%2g`}#Wa?@)B`6z@qig!53 z&f53luSG`(utWjbqmzz^da_<8(lekXs5zisxLi_P8Um&~u5_n6O^?+AV& zByusB0%eEERYHdBXdA4P?wYIIc{k9Xfi?&-LC;G(^vMkde_K35^m&6s~YvKlRtGHV{ zC>|HjikHQk;(a@BciDrM9?1Bj#sNZBe#$KCHpEm6M$0E4%4KSLWU(gm8|!yvo*$9) z_dX`p5rOzz`6(Wl`x2h%80y`50I)qd)l_!{tL(s`$9n~3K(PzK&e>TIES zTSzNV4Ws-G$i+?01KGR13|8%(BIC4J_c7QA{;C3txc&+@?lJW}gr1o|1pEQ?cA=X; z($H3z?!q~WW`&6>!@mU9zWP^dqzFCkhoStGy$w6Mqh`?j?!2x_oD`@DmOrlRJ?-DYZ9)A;(oZ|lKAc-SP)@ZEybesC0DW<(K3>B6Wk^KT%P4!^CW1~7 z+2^A#ej7>=)_DFF&?KVowaJoEo4=KSw9Alo$63%6qIV;?c4w9Ro7l(BT98&kI8IBG zZ$E`^6Bf$y2+|QLo-WUU?x{k_{w}p}Uk6F49TNpehxG{ zVR5MZuZ-g!f-Ds0=ksg$J^VTTzB$KSX`XIgVcudsYQ82|g;7FW7!Xzo+k|7nHH+0U z$`Y65pjRw!SPoe(%2H6aHEiv&F0j68-D*87OF;K+L0ibyE=xZvZEx5P+RoeVie9lm zY?fu772+mwzbxt8mSvpL_6GY5`!f3m`(FEL`%Q=F7~!aOOmi%CtaI#koOE1w3eG%d zxwG53z`4r#hVy{)tn-#jbPab^x_VuUT&rDMU58xfU3c6r_b7L*yWhRoy~e%WeZ+my zeK*6EF(RWfqbFlQ#>$LM8GAEMW?ap9=m~lXJPn>{p2eQmJX<{nJ!d^Py@EH_8}_z) zXM2}<*Lin(k9se9@A_Q65xz=ak8gqR72gKmF5gk#1>bGI)t~Dx_BZ>d`xpCH``_^I z^Pluz@!t<*1V#j+fv&(nU|Hbx!1lnQz}di!AQ#LG<_D{T-NAw2%fU6lEx~=k6TwTt zJCaq(kqYG*>6PY7%ca+)ZPEehlypV9m+8pN%Ph`}XZB^z&s>(dCi9KVJ()){&t+cE ze30eJ%F7C6#j<*`W@jzVTA8&jYirittfN_Hv#w^{%@(qQ*(0)xvum?EvZrOw&t96n zDtle_mh4^G2eOZ4pUJ+IeIxtcAbyZ*Q0AavgYq-JgQHh!=a^BPE#EUBXJO00WK{NV z;D}UVRo;i4)rfa5I2EB*MB&Kun_$+{g?^-`@{)pm?HDXh#*U0drSw zo93NuDDRn&_r7Y~l_(Ed2|PI#Sbt#+5_p41;@10sH)A#GBrZw!NH%l{Nd|7pN0lab4OKLdP;q`#Ka_|xFsUoL5}^l7~LD0pM4biHBKA&Qp>lGD3nFF{ZhP=s#I-I#`mGDJ~CmD4A6U2qxT!cchR`3 zFWr@xEc@z5)hEtTSJj*bgkHuOe_Pmp{qWNpkR0u&(tJfaG=C zu_uInd&D+krrF?=qwjWI8@UtTYD1Fhse^gC*+Y~;tylPAqZBcR2@J)@ts;SGz~cZf zzE+9AC?kM;v}JB=iS93|SOYt!UY zHFyS>sg_u8#J8}$J>#8f+J)`0(c0BxAf5p2M}m~b|2M$ZHK=(MnyU#ov471!B;a@* zE2p0M7y(yi5qpQ4e?-8mu=TM5KS97ztR;Y3R%3sP2-$jB&iW=nPn=Cw7XgQ8d>{){ zSiMyHH4l1gCIPRLw74kNd!S_sNos^{)vD(`7*A4?Lb?$uABciC9Yw+MPtCfLKQ2W*X-@ht|9=PYAC1IKb;#$g7I zba7G7HvC;Z3mCj2c(yZeybe8YF>qXuw;sla+|@8X-Y+oU#jzEAPcil2e)&c)aNIB7 zCjoVvKw!!{QtT&}zfgL|2>P4$Y9!bZ) zsg^~cKOyHxsJ9B+UR1!U31{qM#sO?^GY&FPxQThTGNS{uUJ+>3TOIaT^E#ouj0VG( z&(r|*`ih8g&`*?d0;-=T6$DgUCB7&D)z6n20;-=a$EY#G(SCv-C!k2XpjgX&5j4K) zydkf*FA*?&3Y&gR!0_%eT?QDk>5YPYb|Zg|pi|b2vbwwkOqGyIv3)gR|8FM0fpaaG zf1<%O?rHfrXtSvson_y%>;6gvr61KPD2N3?N4>qkC?eTBGvr37po{%$qF1&axo z$^pv=n9BVs2^gMpUo8Q{;}U$87#9>{qKMmpweYxorf$a9Kh|uR>S!GH=P8$%1N5c zWg0!qsxTn`CgcuFDOd?>@`lv{R?DabZBmgtihrY?g}oesuaxi3jqrW#eD&4g`l`|Q z0vxoz4sJS%mCP2f8^$^aZY%x;wR2wun_JvB(<%6cXI+>J*1(w03-gFyZI&NnOJU&l zwxjTRg1Njerc=t_`x<`HkoS%0<6tQZBW3!D_L9=b=i$GVcvvUlWdwMG@IDMzY`PKXZ z{s!2*zHHuMz92Y+s4!pHD4Y-;Sn@6XmerO6mK)X_YpeBT>kjJ$o5L2h&9`l|ov=L+ z^TmE~wRk|hVb8Y5?JwCk*^k+8JF*?Mj(Lu?j{S~HPQjV)>~bz~ZgL)RUU#`%AyCNzlyxrc#-u2%7-V5G`zC2&8Z>DdhZ=3J9?}p#yFYvef7x-WE@ARMa-we0{`GMxZ zKwxEHOW<(eQs7}QCs-Ej4lWF?4sHt`30?|5kTT_)REIQAdPUkK?UPPRH!_9Hyv*{< z?#u<5t1>rd?#n!tc`fr%R%TXVRy=EZ){?9>S=+J>Wu42qm2J(=%P!0A$R5aEp1m%6 zNA}_DbJ;fs@q@Al6%J|`)IVs^pjCr54cas4_@GOJ?&dghhUJvywCBvsS(39lXLHV; zoMSl`a&8Ug2WJk>A6z}Sd+@;Emj|yIyk+pd!6yb^8hj_$nwyhbm|L6MojW^sN$#t; z8*_K&9?CtPdnNbo5bKcaA^AfphqMowHe|t&WkX&YvT4YUA^V3M8*+BYl_9r>Jj@gG z{CT-~qw+#|(Y#n*YhHI=f8NZz`JO*;IUrFWzw*bmyZsxN#n?46ao-vGyJ_f|sHU#J zr=e#xjrY>fv)adhq@ib`w7Tx6p=YALy8fAlp2=$GdXR>m$(HB(R~mX&qxvunJ)76y zM+x*55}nPQrazvBo{6s&_;G6bgg8kj($rti(ElV2eH}x8G7WtRL;uq>^o*TF;8YrV zHiOO2($F(nz`*G=^b;8RpQoW`?70JH($F*cIRd{(L(h7~pG`y0SnvnlNkh+Aum#Sg zp=YxL{W1-GF++bo4Sf|u|Eo0gjNMS+LK=ETQxf=f8u}WB{$d(>M&lCrO&WUUya-%M zLtn|z|27SM14Dl~4Luv5;LjF%7!ay^C8PPqp?u*9fYl z-W{GRU>B@dbZA;Nc1*n;3Qg)&>}$jIp#B-!a0K6l9CLa;ICXT$+>{@Jj8KRsDv@3q z>Ub|EC{P4QW~}Wd$i#$n5QZ&rArj9>q=%ge)@y9iI|lY?VRXLZ80^Y<4sxCIn-KB899xO2HlkJVt`c=s zDBn#cVR_@ws>D%47M0Do&1#%1+QOuR!ZJ1{{?df+67iIUm$dlJDE1Yy7H?7NwoC>K zlu`-h4Mut5k&ZQDodq~{oIpQn^MO^1A^}uLOiXrL(6AhOIkNx`o%BpE?8t&B0x}A` zS?Ye2jvo=_7z?+IAK{qu26DJxvD!(p(t=UgKSyqIYVG#x^1u&_BBu~AYY4HC=B^t z+(}_bi>Dh*PxU+1X|R_;vq6oU@ImlxN#HEPe=1fAR9z^}(^7c#X6L-g=E7DDMVds3 z)|MN?QERoi6ek+i(i>_08r-EW*GtT(9jyG#Mnlg9Y=L5qfR0xrlrp(5B{3k zYFL#vFaBB?IkMtI96gY-Z?N+OR9i)M8v)h&YWgcff~s$>trS#! zb)85-@f#~YOpB|g#SRoc4DYVgzOzUGqs|7)NTMvxIbfL!@7Cxm4e(c~WgfgKQ)h?u zMWQUS-*2#G5M|Yw?uN2a*jeb*ZV~?lFqKomNZ2_7hI?!`6ENI9yFkG38nfF87#)fk!11~CEGr8zM3bqkA5i?-$dk_IhgWXGRzQ4@fIthxe-jX}WUyxv z5YUd;4}!;>dg>{bp4;&IIkHG=lG;6|Wr#Wo;Dz9Mhk$@bzSl%RK$`G%L(OXc73+ih zRL!ljbQuQ-AzhkY!*AJ`E1Rys+qA}wO@CML`bY>%G`olv3)>?4CSg3Z!qm-u z4_=@VzDf9hI0h7qv}FLtjsm`C*$k1ZFb}i4^m3+ddpqDTZ{fZRuf@m?=TG<*S#CY| z9W7SVK^$c%&K-jHV!0m6M*u6YBli^fFYvkGS8!%!WcZK5zfJrr@NXOcKk#omzY_lK zyM}mrT5AxG83uX?n%9#dO$o$@GxV;mi46elfq6-^m~6 zubMe?jyY`ZFwZluFmEvLG9NWxFy9ueLXJ=<)C%3gY+;G;s<1)WF6)@W0v_-ZLGI;tMP0nYu`jr!-3tnakEskpe&c7U1 zB|!RAwp7DyB}q?hpM;x^Qah5=DC;}>IGhDgX>S7_8U3XEH})P1;Y<-BQfhI&iN9Nd zEhUk*6GhsLI{&PFSMQZJX2FkWSba>x*#E24bQ9kZNNhc5jU&R}K%O@oO?wFEsUdrV zdAf5HQ!We`7_s1TgYTgmX@$8NTePEl79mC2Ud6HF$*&>F=FtZ73Na$6g=?@KVhMQy zm@RPHtMwvS6SlS^q8FRmu{D-jy2&(wfwY-RfO`|8W1bCmOvI=N7jbk>ZES^KW6LHy z4)#aDz4ds8_1JO=$?Y*y2euA^@A97ku8R9=`ViRZK+E};usx0v<=zHx=%wW{{9Ud@ zv$X#wcr3?#|KNC;CueaXuAh6E+bDCzbKG5%*HmDNn`W4nn%0`On+};yo35Dd@&fPY z^Z3zx$W<@%wmPieVEoePo$Q???{suKG>kmvFVpab8WmTaysMJG>2zyYgZN?o@`SR4 zcEPInmnG?gKLYWY3|nQt03HG@63TB>sjn1&g^V%$p71(EG$JwR<{gvab%~=ERCY*% zmX%TSJoWa-D>#|ar+tjMf)}TZTkaT*(0#oU%L$c8 zzh(O@j+~?Vm+Be?b;rCP`&t(ztHT_`zQz@r7Er0F3i>2-HQRTwFSHuptqh_>RKb3g zrA6Dp1U%BeVZ3-2$Id~ch9r~wK9_`={X!V!j{Yz_f132fj+I}>Gxb>D7 zC@kX{ETWvX>>^xXVH$p38Cj7MsxTYRWqZp4Dk-;`gBjdd6DCBL>hW@dpObHu0zdG$bA~fYz9I8$jdYPYEcB zWD%Ca;vWoX>pdR<=~Nvbtn2Z-LP4?C%kwb`iur}-6BJbS2m2HSRdrzpKp&&7CRqKJ zF#w}>we2%l_fny2TI@X(tX}!g^FI^}G%23d6b!}Om*5-dJrPAijd`B|nChDY_DrH>b^KZM3G0l{UjS#-ofE0`x?*iti^s7 z8lUlwB1(Z)Ncb)GK)^fE@>kHJXgkgGe;~)>I!xWBmvB5IBx!914*=BT4$~KjU#+G$ zh+j>@Z{Qc+1farA6?@0dDq zWTPt6Q5@B}h#vtk<*)z1*87c?PSuWIJg4ev?0KM}i76Skt-01|)(zG(HkYlz_Ofla z?W!!5wTsKe-Qs1t*IsL1Xy0T%VZZMf<>+y|;@IuDO1MX>(BK!_!s!s`49T923&z~pg*u8uq|*ha3`1@tPai&t`6=Fo(n#d zhRYJbLTR0JK)Rf1%`C|5&Rm+gIrC`djVy0gIIAyfS=Jj_N3*VHyRt*sJ=sgMH)S8r zzB))8R4}M((BeTG1|1x9IY-DDoztGPC}&;H{+x@0xxpg_#|O_Fyn67?!KVh_&h_Vp zb9-}_=5EYAn0sjmH)Qybh9Lt(ULCSy$jKqM^1OM)c|Cbc@;2lh$h(;LXy~w^v7xhv zt{S?1=!u~>hh+>44eK7Zc-Z=3`-fc^_VB5^r>dWt{?ziPHa~UfsY_2i8lE@2dieC= z%ZG0serWim;g6oqd%F7R=}#|zdh^qVp1$<-qY-%{sz*#8v3$hl5r;-x8u4gk-pJ~a z(?>2Jxq0NFk(Wk38kIMydern$%SUYCY^GX7e+Lp1JhQqtSVz zt4B{Cy?pfM(FaFg7=8cQ%xA;Tc0ar5*)`AZeD=h%*YmCUBl2VUGxC?`Z^}QAe?I@- znBbV=F`w!7`uAx_OZvt zUM=JchZR;APAh!5a6{p~!n1{U#(BpTj%yz`f849%wv9VF?n;OY<%KFk{h_6y^`X6? zGojl>uAJ32+s7Xn ze{uZ1N^fO;Wkcok%B7XBSMIDlR(ZMdK~=D-u&TLgX4SH)^;Ns8PE=j3dQ_cVU0mH> zJy5-(dSmt8>QmL%YxtVnnzEX%n)x*=Yc|*HuQ^k5v({QWtTtNPQ@gPC)!Hq!2W!vO z-mY`hji{@x>#KXI?zOsYb%*ON)ZL9`#74(rv1zd-v9+-sv7@m|vHSJ@`hxm+{fzpT z>(|xqsy|+TrT$?{_jprI~ z#jWwYcv-w7J`i6XUmxEUKNi0fzt@z}G^(k(skdoi)2gP;P5YWoHC=0Z)STH|*c@-3 z-n^uFP4l+qL(S)!Z?#xk@>%(lX|c-!>0C2eckwzVBySTkYkgaZ>!Pq;SWVTZqCbVqeZPsjX@6&>q4c6J=;INx!rQ|Qd; z40Xmkr**#6`D*9p&b^%{IxlzL>vDAs?<()==$hU2a@X3fZCwYu&U9VxdNeUOF@Iw1 z#NLSuCcZLp!^B+^k50TW@piY+o!wo~UEAH$J+FIN_uB5Q-TS*wc3qMnsK8+vy39PT;WbG_%`Wbfn= zlglT!PM$V-;p7#QU!S~n^1jK(CtsL+bMm8JZ}0HlaBsY~uXld$vfeelZ}jfzJ=%M& z_j>PxDXuAbQ$kZ>Q+lQhOj$Z*^^{Fhc1<}v<;;|;Q||T&eZjsFec`@_zMj6>eT(~6 z_O0vN+PAmwXy4hst9^H-a#J&==1$F@T0S*CwP)(gsf(sApZeO=jZ?Qx-81#j)Du(B zO}#Sp*3<|6LVreocK`7Hg8s7p+Wyx5p8o0m^ZH-vU)H~>e{KK9{w@7G`uFr7=s(hb zqW?^A5I0mRfzw-m7e}@U%3Y>XQuD@?O1j4~spl!?hTtg7A^bL1Er zP-3(&UzJPhF+N)o^+d^T$H86P;It)GzwT;nM4IgX%jIbDhni`m3g0bI+{PH_a3~qY z8<9&T_ApJ>1m_XR6QD{><$CLJ`>H`Rs>dCZ+u<#f%OwAj@hE;xF7t$A;rJ+*{bcJU zco?z^sJ%h)-ci&|h|w&m9t9{Ti(-xPSuP9eiKsd<30WSLgIrvS^P8b}QTg8Q4axNB z))Cq7w`F?c79kqsF^cpvvb1L2&Setx)iBrU`%gj?H1qFd>c?Iwwq3YxoLNUwdk zZtx93Dizl&o(GS++nhg7(QXv!Sk*tsv+r3C?M^-F6?iQ~JR2T^TC+g#h7H@Dj4%8c z+O6V{rCnIRRWY-flY|;aDqyIGg6~GXwzeTk0-n1@_O(m=3@1GZNBf4!2Kr*M(gt6<-rcjmTYvHFB7T(S37&f~vPj zQf-Y?EgDJt8bwJHHeR7&V=PHwNa#Bh8Kxt0HsLMufjGLl79 zQgcaA9xB1_QEec1II<;DW&!6E4_-5viw2m1V%#p&Ud2Y_Ymh@E^=<`kciZnUrMeno zm}8+Vj7awbag7}BrznvIwN@$tpC)AER0SHeQuk_#Qn%+!h>Y(3KZ>#x))wjQrO#HW zOqu-LASq8kor(Lbgr)TTi26EMg~FOnjEwyyiW1o-Md5T~cDeuGN;{LzKB0XJ4x#D{ z!yZ9VQ5mn(;7FMgy%MYM;|-Ew&h=mkP&VM%Q_F;;gec&_9YC4-Oa<8>xbrb6L5mSQ zMD>V1uh5Fey4T>pWXdWD*$W^$W7QLh+5P;pTp(f9D{&TDBorYQYn%9=$#fNPMwH@{ zt5#yHM?srD-=IF-j<*)pfRbZvtV~DF4vuLfso4NgbT!17X!*+(+a%`? zD7tb9Wp)T*%QG!9lIy3~r_PAOlN_Lg`K}s~1$ocLREg64NoHI~?nBo1DT+?nsV(q- z=2gYLmZDR>(g>r+o)SM&##t(n)EF~KWC8!d6!S*zyKl;L^lmbi{|_?jg*+LQy;6pF zf$7&cqXvCKBkwtFHJff3P^mHUOYnK$!h2<^WPL#AuDtfmtrQixlF>^9ye*lp!doKQ zPgTxQXH~I-^d(Rk+-WS$)E7}yXY{JA-Z_-IS}3Y8tPN!qBMS>0A;~()U?ggAeOexC z+a;qJ~st8thSfj@gFTKYglDNKR4doQ?U-4@%k`R);()Qvnl9EJ%U77zq_+qkC4@m|U z0Z-DEL;6JbGIh~XtZIip80xBmo>gl6hdDihUr$(HiDy@PaQ9OpZ(z3h~zoP5$JQE^;b1gEB(LGm>(ALDY8_=NK2D%;SUkqpzzF7w_SPNzp z4L;e~1bNoYPJ?>TodVf9$?Z0`QT3=1DZ>~7S)4d!W5h53C3G$=C#8c$j7 zGk=x(R-<-*!Z%fAWX)frXmAum;33F*R^CPC-4sn+LOGdAfN#{Iy=UG>(X?O=+kj^p z-O;ar)r0!VZ>Wv2yhGK4tQq3KSCM?7#J>C()RRmmL~l`Fpy~<3&JIIct0kO~*LgU_ zoYtb-fb;tljcWgZ#sFz|%3LSFW)$@ziQm4vj2T1Z!H&2J+8Yti-&3>)<--blZLlwt zv$_n%K*E zH6u_g@$L}(5@b>+mrz74q{CqI%M^nLWQr4$zYI1r`WX>{RTIJ-LtgXzRf?iUQfP<5bFr&>~9PZgWbe^C_lngf3x@r4u=%IuViixltHR2mrZ4pj&C zcz`;>uq&&?zf%-(*g>_}Iu%}e9jBOiDZ$ncwZL6vxZ^ZMQ3vwA!td(QtVrd~XDNyX zSZ64^dqhI{o_8|sP&Mi(kA~b9=WdEZjm=EVob$UB1-8Y)I~dyRJjV1zyWLXYcs%C0_OnxG1JR92VoLzHtz?#+Crs6SuuX;gJR<4s@`p#6e8|Dq&>N ztBi7+975sMd!Nb;8^xED`A_~fA#S9~<4CZC?bx>==a7C6Wp1G2AF1-nH_#YI;A{?y zw<$cHb<6=Oq!#fXO#9XQG}gY`KdH693`_hK5)p6OF_rl~8l5Vb1Nr-o=}i4G?aT*R z&GACQ_@T409CUUe$18^G1Nl%X8O%RJl}GJUrA4_14tjjcaoz)sKRO2t>W|<(BCk{D zTmyV5aByXeE1YMU_M^NKi0jJzbhjn+uUbOhAP|AU^N_-qYTO0gh{` zd$XwWs%MQdzshM=Y8BUNO=Fj;Mp6)wvVboEUY_MGmn|2PKE)*qtq-3f0aMHIe00bfkv+t~WK z30#JuG^)&Lgm*%=_9U;Ayo$CdM+WNL=2x9a<@*-l}RM56WA{1$~pt*OIuUex?83R?oQ0=n#zBS;&*`03FYQf3S0uoLLKHmrNFkDZ>GRDng5&u+h)F%0^4r>OA2hK`F09y zm-(+LuoKO9QeeBye@lU#B;3b78f4~=7PY^Y8fFHoKwiZ1v!#y0R)Qp?`PW)v%zBPV zs$Y#_?_JNVXOv$6-$E>L3R{k)K;$75w$f$G@NGTPA%;0Y6_#VSmkUpvi>8~7zn2}U( z$%clcP{_Ng>iE4DsF{}WG;OgrA8M|E zwU+3qJ4VB*`gv00aE$ye8;9HX2WI~w%_`O>_@`j3;Tu=Lm%wxC;6@HSFE|Rv3TV(y zG*YJcF0&W3S6oHY!i~o{@C;tMxMms0N*mbI%k*KU9G*XA3{C%qbI%)CznCr<)QR|D zBQHWZy`|-N|5Qmu{2&TPS?Tc4QMd-!jmj^1U-Hu^ochiKv&S!^aMTMc|2+z)+M6k| zcbGp;;V9c8{xswwWNkozEAdyTa_Wgyqi|RLI)$Swam;Tr{X?r4M$f#1!qvjbjHNd7 zP6~(4K+p-8y3M;NTpaHs$h&I(dIC!q7s=S_kVI*KEZIP<^O_osG0HRkmLahpkFb^=a{i>!7Y+&aD1Mr6UBUhwdB}D;i4cvpa>nMj-N4nHwOB|68X!`&Zn7q zP-bZYdL?$g$jk$Je+HiH{50$%L(4nodS;y|w*kC&oL^&jB$~S-MKkC8I@3-yuDF8x z4$~I&mojb*&Ql3%9@)GU$+*)LE`sllplxxUVa6Is`7tQ>4%1F$?rMOd#dQit%d9ZS z-TX5h$7Ts}Pfl2$jc|_DN^$r906#-o1NKGdW7scUl}Jh44~XwEnkcW3z|XYkYF?`W zPK`aAnQ#V#K_ZmD=p9DlAf6X0uXxsu!;w(Qi1Dh_wcT)TAzqmG2Gc*ngWdZV21n+m zzR%!DFLp1-@(?sOjZ#anALJK9%Wtj<`^Bp=k+Q~tZ*jE@21yzUrjEgAaue@>r~&$n z*TOzfV&=Fh3}LUxXHXczLXr0vU|v^HdqaTZNxNVF(LJ{$&cIW}BCL#s3#mMt!S`@@HVI>2-@Fvv-*h z#ZfWkGQVfWK-2j1*BDHTglu=q`9Cr(P~&Yx`5O!dNwLc4+{BS+6ZBE$7OD)=pft$8 z8q6IOrV;iJjH$UhVchT;Z{9{>knF1L{jm8f3`Xr~)Vzn8Q`I8B#r#bMqe@0)=DiF? zwIGU^|G=zxO-P7Ni|Mc__L`A?ErsvlV4fM?P%rL_+G>AwPk+_~+qC{PS#CWoaOOUW0Lr@Wa z$fAn|75{{|#;`6LHCa^F#UC2w7-Q78!rCYNH&c({!wYwVi-rB~;{v+6&w}_USa+FO->6YcvJ}FA8frhm?>Dyey24t>tP792VAs zLpuR}mC!v8>^}ov2sGLbbYN+oYCRM}Wu%T^eHjV?{cUivK)nSxn~{|q{JhMnhqI2( z^F%7u(^$Y2!stvl>B*#^FBUL4)KGNkXL1-S(Sh}x{!L*-sivEpC3K#P!E6E->CkyD zRzxi%*#Y!(g`Vb+2Nd+>0woslHnmSbPnfx^Evf74fWuleRm8uxM0u9b0y|qwbLec( zh&F>{)fwVjV6EyRJxhhQmRa>yjeW*BPX2kpQr$RD=xK+EnJbO!gqbU#U1*!JQ=m6` z4kf2om;wuC^Ki>nDp?xO zdbmp`)x#PG%W!|NYYk6?nQQUtvLe$xwb3lXxk%QtZ_|@NKGG&oB0ZCkog>ok;k`7f zUN$lytYB(6Kt?n&$HNaOFU>_3ahT~KB~7>ZMPxnZpKtNVa&`z0>+686#GKJxVe?1 z0`*cYq?JqcWNx;bU4D_GJh8*{-YlLD`l`95mpr@Y6(XQL*mpvv%FR$EP@@66@O&w`ufE_0qbD%4L$s9l}U!P{V!kp8F( zIk-h{5FJO|E{qSgBX3qev&Iu78frUjXUh7*fpc~!TEf$Q(7$Mxa`oqJ9gDvOROn}(_IHBz=Nb;)4KzWXL)UX~`?e|@x|M_5+V8>8Heozl={{jB z1$y&%`xu*`zf{x8#6C8zg_yb?4UloCXWp%q*J|t$=%*bxM8SAUXlDoL8VbhKLOU(J zI5`I!|INYM!E?2Ru7r9#p2Lw}GW9bWipZ}R zIHR42?Bmw8qnU_)B8`|0>WSwfC77J?i0a7I&W>{ZfGAx`cgdijHPqadQp`lQI9Y?qZ`D{SQiB^?*^?$?Qc02@BmKQs$yM z=lz09!r1%9h>E=FwF77dhNiT8rf;eqfo(TFnl?)O8RLUx2 zV*hac0)O+eFM@5Iu5xX7?TV#Y<0Vn@dACK+W$StK>;69>a>TQ{!;cVuaz7nBW~78b z-TsJlXuotk%QwLg^dmO%XZDOAo)H{jqFf2q9Vb1z=b0l(HuPQ{T=+%lsEYFGl(UgN zR(gc1R^(N+_xTzp4eZ`1qnm3LF43b??ol4PZ<9M7#(d257%3*Cko_)q+~>tL#f31E zNGWG4cL)6JE;DE<)9Cw4Y5CXpzNVE*shWFM*7l{nE zNhg--cVvs)nZbpePdXA#KE)MVCTjOvD2vZv@1>+m*1jnFiA|ThNT3nhS|o)vKJ7 z17Gm!ct`JA?!AAvNhTYqU^u(>r-e3I5?b74y!+iBDs4EdlaN5|qk-&Pf(I)4{htr+QMo z(w6Hyp3y4b%+04fYn(No-cX2r_Swg=`;)=*lH%)cu1~~Xdp_CuJR@pd#25N%?^W66_#4uRd5 zO&yNd1C;v=jK`_2b!M;Cmlr`lYSdr(e~VH7_Qr4l=JV%I~)^{SuqCR=xLg_HaG?oSXPJm z`c)CTAbeH+MFr-S!*VnLdZUZWIc{dav3W zO>zC=Dyr4qil&|D9Ii)o;_0dC{6siC@-y4%^h%8-h4o4X>Zak&3dmeb1X^Y;(qPW|)3l}RRP&z`rx zr3%zlV`>Ptf-Z$&VhjRD;po&4jFJ(P+%vaTyrApCazs&;5@{c?MD^@Xi$@lAO_e)E zw@*L4J!-708|Wk!5f7>+Em5tKAUNZqPVAnfn`KY3)iSKXPsdwC8&Um+StO_{+}D(9Xk7dnf6avC`rooq810 zGt;Pn$hoMRUepIEKcma~f64z2{t^9UiF;!Wu@MHvtWDxgoWK*z8vE$xr`iJ^M~X-4 zYsLfK{W+0L(Scc|nm;(y!ji&>!x+K_$ZI&F*|`&@6Ig~QhZ={fh9rluhc5K*4cL>^ zc{QpusT5-G+VS+@9D9d zJX2NOR_@}voZWio={mzu6*Hq_!}2|M;t;YrHwb;h~h-~!CrSrbZ~X>b+B~^-PyqcucJ=mlq{^u-QHU@ z)xq5?*L|WYXy-)Cmp=Kf%SYYNTG;tj98E{^Ck$&0zP3G1`#Tyxx@v1=I|~)DX|g#O z-yhl^kw_6s^x-(MPe4+*l)I$QBYz{84V-A5AyXgCr-zG$HKm;(t3T@O)u)?~X?oa| z)}V|hQ3@s$xi}3_ac(xTsDYH z-q1pgJ81eOsn^?s42VYapQF<_=T*P5bjKVt@3d{J(aT%9BCB>;^e0;)G(>CViLb|K zmP{aJJ{^-b#-6c&Ot16y<%PJj)d{U;B3F!Kp2uhD+c@GpV!e{?rKaSUeXfDI zc&)o9oZx%WsZu*l9T6h&fTf#qhSx(v8m6E~ngac8xdr+Jfv};&p_sQH8WVfs#tB(o zST8)D@Kjr*ie_knf2*Zte8Gm^iGQ1^rypvPF(@OU(`o!Hhoo~&VOOW(`Rw0jibAd6 z`K0gB`$K!wCqL6~Hn)SGV@ z=9iNWivmBJ@jGYjMP=3#k}Tprf_AY{i0Q&?QmT+A`QnP(a!${^&WOA&k3F9V6fJx# z=+~c+eLM7p=83@b5a-nIXgB{DLapdE=BB_$TVwgo`*;%45GNw(;7~Gy5R&Xq5>izC z=fvqYEC+r0k2^K`vMw1e{e6EDkqND};k1iNacz+P@bnVOwSL$lV}9=T#=$dZfNbKX z>4DdieTGTe$wH&(!T_|~S5M^?SWuWsr7p&b7CQxM;&rIju;}>j;2CnAspodozt|af z>S6Z8A8$0%`8(Us-h%IX6+=zCrYL-^gt2cN4|87+JQ!pC%{0V>4W`&!rR*0ICu)b9 zsM&bnp2KRLI=je7lN;@u@s#3~+&-=+ebm)r=zu?-ZQKO!l%*|eN^QXmHc%2rG_bMc zBriRW51Av-2~D#{K#qc0xUEC9*!$?gxv!+9nqp0XFD}nGt8ljUSd(Uck;+LDta7t( z;%Z?BQi3Pm@%v4huP^WHskmB}+J;4CtRwAB6~XDByZlboe>k9f$l${BDdLB~vEy$A zOD$>@6Z~JAS=SwO|9gJzrF-aU{^$+&iTd{bgTtG=>MFwTWK`gw%4eEXTl_ap8_@e|L z#>&X-R_ozFWy@s;RK-)!pjO3vBR_n*VOU2T!2L#+$$_%akY?1x; z9_S(_|Gg{lL4HeTcj`Y~*y_)}?!tO@C-C9hO<_Rq7*o`%kT``6qRG~Imb%h} zU*=05kVzx)Ls2(j6nIhTFT*x#VaM*f)*W*Py^M+EE*+Z3n~J1Col`}|ApI+xua=w8 zko&U)vB&a%udN?i*=tmJ&gUbdSC6a(=2jmpeNu;!y?+rx{Q#TL_u4S?o&uZI%;q2W$-6mn4 zL=UH(7frnArDg4L{RY}vm8>-dQzzXZ?9wr_zrH@^!z6JZo|;RNRbEMOK+h;1M%!Ai zp1mX9jr)t81>8x{D|F-xF`DsuYe<(p;MMw+^!vouYm>D29=uw~gN5%s%3W%cQ=V?z zFJFbvX7QQnHro^p>f?Vu>_2SvApTeoh&?cttxXT|e~RaArz9O01kUWe#BR#z-_8Tw z6`D;>Hv>mE$8P_rmiUEzM`>&!CBE}z+Nn*RQS`Ub0G#OV=L`b|^f1~HeDCovnj0K| zcrY-NG3bWQan@VSmUDPCu0C5R*1Ye3MOE8#{zh_y(7KSy+Teu;Bra?C#W#{nY+raK|E~8ZnqcFjB)P+f8x>Bdh)e`~N`vID7~x;|93nq( z&dsZTsOBNw4eL#i2x4C=>}QN542kY>e9$=!nA2X%6&cI!k#$o#T@9LnM0h9_&ffE5 z{g}vO3tfDA@I8)#=XVdbDD?KA{sBzZ8B1J;dXCa$P{xe2Imb?$t2#-&PSK7@qilHV3jEC{DCsFe`LiBTPZ_?=`TLf{RPIRD{mU?f==!@m z>5OO#2bv$o^Kpe3?4@F6z2~1^zN~rjtb(AHC&FCu+1=BQ8VS0U&2ha>x~_m2u>4h1 zz9y}Q*D?2~_fh25VX&{E79PdUSNA5Q462^g3G=AyU?Q0Es7)gSJBVb|-og86rg4Yo()`rwH2P=oxkyQ&!>{2$3o+4g7L zSotrVrb9vvERJwl7jIi-($m;&n$b_1xa}vB{)7RfFwT_IxmfS5H z;A?s@o+B{{FwFz*?C%$N0{yxvJV8I7M5oa|A}YeNqhH*>e}nsic+leO-IL=0PZ7w= zZj$w-$4z+4uXke)B}>UKNStwY3)3{j@2KT@WnNexE|AQs4>lHIa5Hds+V(^IPF{_> zKL|_^i1n=H&$p5LM^{fdNS#|1w<+H;U1zeZV@m%iLk*qyZqu=(+cmV+hme8=2)@tcZv+DOVJk~bsU?j3~?-dU}0 z2p_cfJANej=;u2fSw!k>V|$qThHHeFemXmEQg!mVO2}sHZyx@5{sj22?`Chfc3L4t z(n*r%Fo{i$`Aa?n<>(ac3d$WQBi%pU*1uDsCsYpQ&G)U(5~3^~w>$ zOb?_(MA32Xc&MSO{RjJ5D5q~=&&lORTI_mkGWEwKxgl3Uwz5Z;uM=l8zMGvHG)EM$ zae5~6mN*6N>%3-WjS`=YBr~-0A`ktVB7vtixtOY7@o%gwRk=7T>En0C%%6#F%`Lx* zGybr5JL`k?6<*IhRM0w|7>FdWivHj(ppSK7mdB=^_O$wtV=0>VgT2I^LSt1EYtg+MD3$u|mN@+D!yl4I96D9**qN&f0>#-l zCN>qH^Cm?JNOfGuUp4$q)M)m9ho|)ONXP#l_%SFg835~Lz2-A6W znb!_5J(o*w>BQ^rz>LXqo1%{H<2|JrF^0$#Y^e#&<{klgnA z;QxO}x|b!J+uGV5$*JIHKNbp-$A7X?ZHDRcmC7WqwzyXFJe#iA%|=xYWozQc;lGgJ zGEIEWdP6KnaJyb)mvmn<9(Ipt9c+@go>*2X+i|Rq>nUWTdD`$|>sN(t4OP4N`7W|T zxkd_cO}p2>6<3LPk;1kTh#=F+z zy$aVw1nQ`1aB0yMgy=Y_?rR%6Oz{)FtD7mo%6a5RduKma;=QVV`{s6C`P9rqaka|x zal`_J$Hq*mafEr+C(o^!bz_V7s+CL`{7ptqbMuUKuGX(Am!L0LfrMmgxFmqPE zlutgv65kXY6v`F2l**OL6&;iu6djaz6?T=vmE0AF6~h(Xl?j#9l++Z|6vLH|6^4}w zl?fFH6^9kL6v~yu6^<2;m5-Iwl!vFpnpI3yRxjRwRajMiD*hv@!e^XXYO(Q?HHfLg$DHcJamR&NWhz{8!-a%p zYUOdeg^$Wq9pV-XNy^lBD zqcmD$t0#F{6Br9QP>QewsX~5~@^!*P>*q8Ij}l&3zobzLR&JnGRf?OmeoUj@A9rMp zm8QZTH)KtC6{f*9J@`>DXq2^K&`B_4l z)Y8L?i|y?o>Cwd{GqVcrwN8Y=%>ViGgqt-Z={0tOTYm!UB5{jfX;UK>a z#n_s1P;i5K2#aOR4?&T^5*Z5yPz12}?EDfG4Jk)Ci!;wpK~chz%nRmF#IS^w zd^m~$mU1t5IC*nweEs=eiD_yT#dJz`mmpQFy`z5}DOJM1qkc_&m(l;r_;qssm4e^ zE4m%(A(bK(y}R|WN-4)K+Ipo*0mq*7dT6DXV>hJUs8ZOmcd_29QgW|Lyk4tPXs@TW z-lY<}*A1&TuLSM&Ue^ayO4D^cs+V-3tgx4+)aNg|_*y$k*u+ILJK@18Do|n3lbtZyzht>n4400E!7tUn=-53aW8N+rB_)xE=)Kv zm`;e)Mmdo$jW*R*IngbRd(~z+Q7?_1*LFBDElrTr2JJrqk4D!P>^}pKYt<&~Q-H_D zYa90I!4rJ75&KWuMyqQp_G#P3U1~G-soKU4YTNdyy<(Pa5%qZcp!3+f@%wi%^Evwh zzCGFXw)L&J?&cEM{bk@7>gKuK) z{(RFP7v27<{&tJdxTW9IFG+w%4zG9-7BeuYLC+Gf$*m|LH?u z9-p#S@gKHjVyq4rcX`W=fKI21do-nu8=)+*1GPi!_gS`?9Jm>C1zLE%9 zAM+tviHEOM`OvK-!`IP1cq?(*k#mB4_Ts@OYj#*#7!jX#8UQ4*5xF^pUE;&N^J<1ufJzDT1$r;%`y7GHy zF-U#%(~rPnIOS;557%PI_-MvY^K|t>`oz;uajRtKSMDdTNdxZ^aSauE(ag zB8c9@V~b14fE>&))4$bA`Fk)XNO~>sc;J>Ga5(2^`xZBF2(uP=^6Wl*;8>J#!r}zT zJ{35ydO~{3g6We!3B07f=f?~qjt+07@8zG!;*!6`e?egKQjRkH*Y_71mIS7vJ(Su1 z6ranHkr62L>_}?9k5gccT3KMF=2TFNQ!AvhSAfK66;jhED8;E-Q<*3j#c5hoiz#Tu zsc%sED454-Z&2eZ$m*(4P$??t>S|C>vniS`KL z3oB^qsw1OU8N;`;j6`!FE#d zBjvJ!_oVzOMTdgxr1B}{okF01%wvk6zIOr&k12cm{_SKfs0gSVQLguW5|GuP zNa(W`P`qU=4!3_V&ix!3n)W_9m3J$&<$ZQ4KUL`W_i=A{l0%E$r@i4b3Qc-%czW*= z^@cluYOfDgC+kF!(Fd(lbfR49^Qx2Ir)cYQsZ-vkyy**YlcA>w>9cfGpr;(@b90l+ zq$ugLcT>uw-0t&nlYL8((r4qQ_?B|6&(lr*HwC=U*-iO3B_h;!t@F}Q;t3)wWX=01 zT>a{CVH%fQ>@k)L7Y)<5g6P zto7VEzbERcu@xmxsn{2N)Pr#bCF%~d+9cPjm=rnbd2xm$>JPJRCLgQ#6#3}|lzleP z;bNss4p&hudavhJ_RT<#i!CX6SjDEuUGHj#!Tslsq`OU7xPf6gyJ3ohif|D`&$%qx zz_^@aCWTgoxJXIQsw@m?;J_}N0#V^DGSYJ_i$WSXa5Scft1uL4>DiV=APslfJyT#R zl11ivu4OSu5Nvzdg7!Ia;v?0dq8C#-_NlMm(!PjFR8lP{5}0~ppZVH6{rRjad6DXr zwSD+$!fV5HcFh#1icpcsl#_k*YvXi|u@ov5q9Vnq_x52w3?S^hDMl*XMTS!j_EA5K zu1z2uRVgAWbVZs|Q2U4LT?i8&vp5!&Y{)6c-gxk?E8(D*B`GwPGvBa!NoFqY6Tm zv}mqGOQYuVE+EcbD zCRD^}&8guvyMN66>tlI#!KizM9-9~H^*r45T#og8boHF3^}OJEZr^%-JolH%8#wNA zVsV*ofRkd95{8C0Dcse>k}@G$EG0?PL#WNi?n+__nI_}Rwn+^`3!C)rT4E`grsFKz zNhd>Bn^^9$EwOLk@G(;-MGXDieCn>+lK2+F$C8pXGPJo#=&slj|JJ0M**K|UXl9ev zU9%mIOr zC$|lnZMwL7w}kxGKVZ8^z8Uo23~&$h`7EKs$V!?VGAO@kdHliWn}i-CTTJr6pw*_^ z@h6|J61v%}+Q}t@(nI>2_QxNAExmp=+eGsApvR`qv7gVEb{%t8{^XQF^-Y^&cc1U= zdgg33$#a8_n>m}F$1tCucHI?L*JSvh>8A6smrqE${tDY+^gR-8yfSb-c(aLpEPEB} z_eQFxbwqj7>e%h-o1fsd&|mwjNIxSfj+_+!LF!HQW1FjRKf_LTixk&E(5C6J^HsE; z@x5Xv$7)Jo64M}Jh;(yxQ+h-BI0txRIqcRTfL%JpVvv6mv4Plpc9lfWJuq~1?06M* zYZSnNNRb|7+SER_y<)nGxUIQ0yk`$g!6XE}RLCRLZ)T=YjiXf5rPQ3Hloy~>ucK6U zqtrf1k|9V6jh9g^Wz~Dit(sVdi`i_j>Lpv&dnddFsR7XALph{i~uILdZ1^Qztyki1|?<;^KLe| zE4NhK<^w&H8^J}IxSAL;d^pTB%(AJyS$C}9Qx0@KZvMoSVT<8awaC}ks^vlbTNC#Tss&p;Q8mNv?c^Y!mfl9a{ zU308@OUI+U1^L^7QMe{ud#r{^hp7BJvd4j}u@s`gTb-<zTmnpM@aI*#Ry$VCT+#%hRmRgH)aU3nC;-+{cbY*E9xx=F{hyb3w%K-XBc zsO4Par2{U{LXJC7H&!faqN~q!e9JqKD-KMJHH+Hl8WJ76@*rgQ?i0^aaSev*XdUJ9 z0_5cGGtWwKEruE`9ggw@bjv-%dEyl2UMPc9NVSxtZ3C-u0GK5E^k9F?=pJUv}!Nc zFzS$&hah`*$<9h)8j{u7I@;wW$mw00vr3qjWR3YBFfwA7ZA!7D(pB+*KOA!*D81V{*_X?Ipq_`?Omd?qU)4vIBh|vp4E(~ zu(^L#r|xR`A@X7u@2ucj^{(>1AV3#mh$vr09_|M2l1AAXSkcaXW4Es_wkt2TZ-v?w zL+zWk?5elyJE`pQs3xD<5i}}5-t&ef8>knv&FR^3HX1-2c%zby)Juxy1np=VH6T#l zh-AZ&Vw*X4JF&*M5EtHY^yCi9j z%Z{>94PsLjZe&`T`}>T zk{wH9eJbbqP27Qd4h;xMzQ7`)J~|;WYNhvTEsY`WNePgj;K*_ z@x60clYwb5@0^hxccbB=gL71q(T#~|N!6T)9bKd5BGfse$#ALIdCtoY+-SDw;vCat zyi|goBeBD4lwY(&hk6-+iy7v$>^K_r7wyrJUPj=OtU2JA=0^2J8+5prVOz1;oQoZ( z(R9%n9qna&qu5rmJQpy-Xos*TZCq`X{-L~>vuK45J2&txmYg%U<8MU#Kr}u>Cs9@W zv_D#OL`R()`IdCdN!c+qYA@QNna~mEHRpym#r|{m(*ZjQCF0X9d>>U)JQa;SH6=^- zTJthmisn!n}GOF^omip~UKCLNjP z<~6y-NN!Zp85hj3Bi-DrCT|Yuh-y3&hnaO`n_IZ%f{=8ms55q$en;BMTh}}|(iBy7 zCIU0<$XYQ!%=JcsQCVkvFyoGl6|=*<3#2cq<4g)>(UG%a!IVpi#6tz0y|~u#PnCMh zlox|kMirb1T)*+plrqoB)kbol63#fUwXY5Q)1}OE@+OeBs0JWo!dw4rDGQ5Sek3(2 z;*9ND&p)m6twml9(il~7CVUOKv-QvFG+)hiMS@TnXS~-&{u!NSt9ge=Z&cfv`RMt$UXm@K!o62dRxJITN}zxyuYNN90-{`B5on+}DP8=>cYlyj7$t z3VsH@HoK#~%MP%>7zXBIilvc(bC_RDsKDKrGmdNhyR`eafq4idW(qTFb!rT&WGorj zt2qN*o8D#Jn`3eVkNc@YYE;n(t@$Gxw4 zdPV4ag(Z4HSS+uZm9SXy;s#ZmSOwx~haxwW2w95ahE<#k1*T|Gk*7+JSPJ5X2A!-0 z>S-4u_mxOkO5#Qaoi_xIX|E!0l^z!4>JGkiq7VqD{TaEYL{LzuJN(i)QDB&MGxAso zw;*44sMN_o0LT#)xvNB6P^>#r>WmcFr9F$hR>CgGn;f)rdM%JnI~KX6L{v~TIc(?r zLtv2>9eJ*VS5PoHwBz(qpp|wx@<55Spk#7n$N5y?n)WX8zW;$$uE5|kr^f=pw7rpk z`|+&`1%{tFM+)@Qu16mA<5=Yja6)pNGz0mtiUmeeoks<>Xip-q`mwC? z>IUC9@dzZ-jzn(u6IvD34Zm@&41+k{I#mkI($Pgm^|M2OOm2FH9YTpoP zGRtF|4B}3u98-hZG=!VXR6>nFj;X?95U6uQw8>nh?JS5cm3T}EYSj?7fOLY2fJ{?) z$Bdwk4N(iTPPR=Ta4N%?7Sy&OVqs<<>IL#ml^ipNx;Dft%7gVbRZ+h`C+D*2e|mbFLtRf5<|CR7V#n<_MBvgPCvEjE{FI}V~w zB^p!QdhZd|f_w|*0~x1sj~Q+`cto|#-Y&egtpBcm-pdJw|GryrOAn#Q0nAw(# zM@-AyZ`%V9X)4~B{FdcOs1H&C$_Ua<`!R74u-*y@<{sPb0Mmeonv719qX1+qxxA47~H#-5!R zo*vdgGih8qMOIT?$Go?EPlB!{Z>z4P4^ht;!kApyjX-_=Qf*#Mz z6wk6C&vZS{k~`1bG0!St<*)EJ1eM>6n7Qkc`qUiQ8sbekD-(^lxEquD)f|f&rc7xn zBaPU(85Zsk{_7ZtUJeOwNd4dJG2mGMTL6+aC7 zxg3)khD|94)hqH1hsvD{>&hWBmAgj7z;ZiM?mSbs3puO2Ho~sRn;CR)60S>!j8$$K z5mgk;3_CbC)-6KNmFGry6$LXxyH1{Ut&ru)10zykZ64WmKC1)f%*y-O2adVIgS1Y> zb-|F{%D=Ptj)lU*w9Zj={gCy_qgfoseBq&VC(XKm`eMj*C2ICDu#}IaJCD_EK~5^K zX0aUe8V4axymiTtk;=_kLdT-UVPFSPHw%$A-K#vCedJisI0P)rbxn|^O7tuVu=0-p zt7Y9eSR_|4VkOl zn^;z4-dWpO$l2iaG|Wk|E*mmYxjjp?S9F$g2B);@ zsDEE2%Dn<}?xJ& zg;wYJV&{b>^n5jXp_5@gkD-oyo&c@j^&T9Sh17y_!1d=j(FR@);Ha!wE!z^f&^!%V z!wU+I$eJ04+QL2N#n5lPT);6|bK|z#aH4r!w49e^Tc{b54@wPJpJzksdD*u`n$7ar zrog%9DbZ?PHf`Z%Gu2RIxZ}Jq8sg>L7Hu|HZ9502n{->8n+`vr5`8aQa44y}0(^^NG5S%JF3z30JbvvU{Un2xy> z+e0|%JRVy9-0~*WA1MW8f@{xnp!Lt~ZzBC?rEGKH{PWak^>dq>aQ~T3s0G}09)vbM zcfN@Rc0E5kZCBxejZE{11yb}XT6$mkJm=i%ChQIw0F{PY%=4oW`v~;2n813NVb+ zF$}mdOdMr(5oCoXbgAyJx<3VuCo0quw)bve`twwbR={S?O3}Df=x0j zwM01D5_*SF8}9C4pUieGDGr2w7v~OzJ0VyxGha)fq*=d*6P4($2DZtp*Agpf*Y7Ud zF>vPs8)lYk3753$_m-iM?hatj%vLSQlFsQa`<>VBv|!E5VlAPPmgydQ)DL$E*g3OF z3tZAM-HqD$=q?U6%dFM{m9$OwqEM&qFtC4SrDzk1})V5uyJ8eh9ogJ*7nUh&I{@S)xs5cEY>J9~aWVQeac{&@qOm=wOsle)) zMdN}%ex4o^RHeHS*fFzld}3VOwxgkYVaLf`1ZuStr=l0_N9i|?iySB}V_tKO-7}$OXqm!A4Y)J3sJUM3Io*O(c;u9mS}WZ|*EP+Oz&jA;3}{M1Dio@lzryPoVh(z3Zs=%NUZ zH(jV&GxDrxnOUZF(S#?PE>*41dhWHHEkAORhsQ0=JFkg&X0(hgQ@N~p*PA?- zTF}cRF3RwPr3LhwmuFkc@-m}~Haul%3B7*qdDC*Y{O~}=I~EwzYb2f_ExpTR2P)o) z;6;Y@XwQL`^<{zs1@Cz9Le|>-hL$JLWtM3UG`y3+OIhpVp1@yl8TUZWJFacsY>m$| zrDbH9@<7cyscq40z1lO-Yp!K)nfO4-JE3i1dCkQW-mR#(zdj`e&Bi0aN zdZ*`V%i%KVf$~Md&BEQl-P-+LfG475bs6)UiSfwp^l)@N`yZ?JIfeGwYwe526Q?{A z=kyb25)&6#{HM(3SU{jMsJ_p36b~C}-!LcSFG?9!M;9GU!BFj|=8yObQiewMZI0?; z3+?;nB>W{QBO~a|qhr`r`>pvyAgUSU-lseYhy83{GbgAiG#=(gCmjvLHrtQQaclC8 zhbs0BkIG>)?Yrj0HO0mw73i6xUD#RswK+Br0u4Iu3m>J!#@e^ciE4`Gh8@w3M~g6Y z`?)z@O~KsI-oEEiD{Q&_z?`(EWNu^+eRgyWyKBE+c>u&qgLM1EN5Qb(_P;Cmu7#js zI&{=gKWx4IXa&bLA2gJ)uXz-3Tnw9TN3A?|Ee4HbpvR83U?=TYD_B5yHE6oedz1_t zY2RESbS;7po1&|ZW?|C4d+lc{k6a7jLreS4M@_J$cJvB~YYBX035`BFhuyT_tvm#x zu|e=Y!%;MBpnZLX;IPnp7>v$38i#GSpRC{>=6esd?VBA{!{*xeR)`Oay+_*6%SQ(= z#HWk)o0Xas>_ZR`z_ne3Tnye!`|e8~Wy2=gw^xV`i!M?w;MD6K$L~8t`B!|=9Y-s$ z!}g06yu*Tvp_~1?b^oLLvrgD*`{7F93Te(I(pKu?JO5RE&1HGbRjcb|vFlaS;bryV zRVUMB9@7!|CBdCSz;E!zu^ zOR>AR0WQ)pIdc=++ZRNaxOZ{^mWWUwe%qqHP`_lm(+jXiL|V-9Z>L;vUsB$w1=t|M zEoN%Aj4vE7h3_B%&WLD>xti^{3%X0Lh4ZGkRKFM02b0vr)htFx}#@C)!I z!<`nez(lOh9Bz4E_+Cn8Q3llPl$<&s;Hv|Ndlx4+H`upd?w<$NO7}7ClAeUzu-wMo zzYP2#-Oscab24y4ej9er8dxv=6El>vt9?>(BXpZ~&lA`rJ&?0Eak70wbo(86h@cM9 zXR*tFl5)d+n{>|=*of%2*u(7CoXp+O-9`cTXB!YdS9e`c;5Xpgtb4vdIAUOR@9^Z} z2JbfL{spEsuupoI=_KZc<2K=*6Z0dmUwSX+Wa5VUHsYQQQy=&fv1@Tsa|61~xaY+* z1r8wgFl(zPhc}38(%aSBko&`Xrh673F0I4#1@20pw{g(dk4 zOQ;qL`~eH}4@(;V>#I;4g0H~K{x`5#QI)5x#PPU8K@_sX&kbY6Rmcm8r*Kh0k7fIx z>&J=>KD8#U$6W}bmmPm@919*K-ylB5y$ZsT?atNF5q1|;P;hCvRpXSqr`LZy^Ql3g6nAeii3uI#T@b`-Bk(s49{pt2{q zioXQyD1VSF;y4F+$=>A3{}R}t_(;-3}=1c+#Z+`2E{$-NRtrO+TL#*xO=53=t*eW&zFD3x-QWDCb5 z$fx`Eoowx^HxxW1$vEmkHr>bX6l(?FP*#!v8|$E)AkXgWck;CY^At`bO*p1O&fVwl zlxv0NDfdavaeRaPyYK(Ve0U{FK~EBmqa0+_ee_4+gPKasZ+1M@);Y4^Y%{eNPY9G6dT>HLU0aaV&dUzuJI z*bmAvhU*Y+>JZH65S{(PANxg!{zb6-i|FnZe($TN?D*utVLg4aeyOY)wCqF)A)Gyl zmgTQJQ`t4>iixH}XnG>ruRqOSJqmmBT>W2{b z1X~u=y3MmX(TWgdgz)wxTUOM1&a*qwH4!a^F!V%QmehL8v+dJ*5w(R#_GDYu)Oycz z?9-hS-GpHGeEFOE;e#kEy;|$H-k!gILqAxHa?vwH6AT2e_ZD{f+tu{lwkQ0L@ul}O@=ijl-sV?Qehi%itHFmo7k@+kSzU78(%+K@ z5MYQA!K*!oe*^!<;D`OfkN6iFszN4~uYe4tnq*Pxi+n={UQ_rTN`1s4%NnV`Ou$UQ z62=_HqROnwGQ>Q@!pY3ZQpQ}yV$W<}(D*U#H12U+WSmCaXdF*mWt>yoejI&V<~N-y z%q{f?M}x9AjgT=&;~w%3Gh?2(!DYl+B(&^=aV! z76x=LSn!fJ1oH%?`Ug~k;m~8bPNh>US718HRr$GNWlm8>>pvR8Jd+=DrCSI+t$PrT z440x(h+CW-kb9}easB3*;=2r9-9o$5I^poH#vig|&HYU;^?0u5NfiIkE*0RnYvWOH z()jO(GPC8!Wa$(doYo12Q^ZJl$&#hkaEB*y{PW$zkbiO9k7jjpybch8@R4s7a<^V!2{VzE;)crbD&RPfDdZ+UAS-19ieXQ_K;8q010c}K5PJ>`G2C^e};^;OhXOIDmWr z0=~NdJ_7IsvyLO+OA8=7fSdpVzUcr`0mug6_dh4%#lk=#=uZQhpgh%YUNQf1>#R#IOH}-2aI#|B0>t6Tkc?a{MQn|0lx!C;qQZ{{O^)|HSM6 zM4JEFgg*aIl>JY9^gr>xHlZ*76D>n!oJE;+=)T}1m6)*_bpd=0An^k9!V6f5 z0AyCkZF&YEU{wcD5I~>@RsmLS0J#991rV@00yqI&jDcClGzK3j@*JyC6F?zmx`G(f zCttSV%vcky@;KS6(fASwY_d-Q9L)c2`4s+KEr)iU_yQF!fC`8IRfxft2z)^H>HaxT z;RR5E1*o7*_GLTfg}dnWCwj6S$uIb)*$Ox??H5=bC1hV#ghFKwO%!r3=$U`{GLr3d ze8xXD2h99{IR!9t17<_OObeJ905jmd0+?L^GaN930kaukrUpKYKouskojXdh9e<#e z`(XT2DWGbgG7bzQg9Bp%TmqS~I${7f4!}(xaG_!Tbpw1Sf1uS)pejZV_$cAPte$*X zF%Fe+K$;A0Kn`2Si0|ctlPH_;I{0&_sGmj z_THtCN-C>VBqS+hOIAYt8Y)S0BP#9^l904Z(x3=+H&j9;6yfh65Y5Y>dQbd`%Ia@G&;C7aMgfL>wb59F-JwLnUY5Xcjc{R$FD8E2i8f6`n`BBc- z_!We*A<8FFevGm>%GxONd4BG|=}#y}q1=e_8jz`%FWq*_-P!>R00%e?@ zM41z1R+R0s?8i1bmc%SL_tXN^!NtE%qE%3SJ^0)n(n}5mX_->Dg zPy{Ny5lxJ+eC;}TL?wY~_8aH-GpZk9OOV+L7AVmb(2=EulTz`$=69qX4C+`(avqEBA!M^VbtbTiMnop;v)gah;eL<4*ykPaXNAOPSGkO(jXzz-k`V2Tcr zl4!pGz!P9IfVyD1p}R77@M(JhJU^12FMF9D1BU4k$cDwXPfpjrrzrK?wfYj zt=HZ{>9sYOI>1HrNlU86=|mAv(;4w|J14^dEC6BvlI>8;L{R}nZxlFDXvHZTG@O$| zD1gufVLo&*rnGSqeUg-+ae7u3MRv4X4$vx?J22lmE#nzmEa~_z(O-#sOa!;=A$#t- z^^dGuGdG+?2Zs2ti4aPk+MB6yqca}NT9JEfTnJ}8KoW@XfXpi+73+$bpYi-JdD}0m zK+SVqQ(0THoCj5ot4Js2uS=zHp=0UP{N=?c<#-9^wgg-}uj}V+Vy!h z`C>Ni#HQQ+`+M7qxstx6X?W$}l`rYLIR&pQyx0t`-DS&aGg5Qptu_z}+?ks#loq;T zA1bSEzm-0s#L;s?7DN=J+;LIdyh0(j!8Lppv`v)T@m8DY1nzA9BA7PphMo}|x8LI1 zfTO373*<3K5D{&V*B~8vAp9UvM0h~nfP8WQu>oNR(ZNI!N+3Kc96df5ZQvY;I7ovj z$U-97Aetb{iEv!T#|&G4`y8(0qhOlZLluswHMYE;&SyzJ_T(}+QMx!#-$m^9#=NSm zHrbZ|RRAvtqyxwR@B{b(!~skQrI|@9azrh0N9RM2ut`bOJ zhs&)u3e;aMb9-ZXeOB9w5y7;Ry(%1rdu(}wzG8wGn4r=Sz#Cu(fE7TTGKb-WJwPr1 zCx9M+4Zs`#D*y)oAAs~h$;V6B3{He-1nNK62Y8p|G&aB4MUi7X7tfbrJU@C#p#HGr z?Ty`+v)V4=pLJfZuE-3{LFf2Jk>}wNTpn3MCX>P)tQp1VwQa!*JRR zAPQgz;0b_Visa+#f&fB+_-%T1C#&tva>2C50%eXUJqO-T{&|v*n^_D_#4ilgpVGR$ zar7lXC_oRuJmzlZN6`vJ4is}yEJV=+cOPNL`)S|+03Uz_06#zxKodX=z!-rX0096S z0A_$RfJ^`Z00jVRbV%eiI5A@izy)vwpaQ@HpqKzUBw~gcO8|C&9Do76c+r zkMWC`tRmh#pPy?-|Fz6;8@yV*h;fOgjN*^1wmE+lj+yv0$!}vij6zISo9>_rN7LUF z$!|YZ0{?x4KQ3Jx3OEg3eU!Mpv0z>qn**rIpo*b%=N)*X|FB*To}cObIp2OR{$OdA z)0E^r!JJWpJQeZ&&8KY_UB73_b@{XW`z^OoUQHEur$y6hk54Y zq&S7IDI8*iITXrM_=iFX3VpLE6ry&^Q)tO0gr>Uq4Y9hr&>7FWrb@Ozw5?|P_Cg2Q z=##RMueNgE-c+C|l<8M)k3brMG=dNcNXR4LKp=%6h=ddZaRlorAR&icQdOZ^YI|S(n#GMiFB8Wt=5W#UASx=9ZLa-G*j-%;%dMrBvF$8N#&|}3A zcu_!t9?OTo2tl{KCH^G6Wg=gN%H7^nvqvbix!XZ@a)SZ_Rs?(qjO}G7dnJG1+sIes zHolxA-Gnj|O`!U52{Am3NJl8MzX4Ah#5{>Iw>M3NQ-G%pVxB}!1ab&sNMN2s2?Tx= zkia~N0tl=SOp(Aei3$i3DIkGqW|G)p!85G5RWe@OJdL!BYFm5L3s9IS%@o&cN% zXiSO4f77GN{~da{@V3&0M_CSQy#+HbRx9(b_j8cFay`#<%O2Lq`(M=nbO8DQVgN<~ zX7`~efTA^uH7E$6kc3ll7;3@-p#s8ugmaDv4HwVp^NRfI6YXTLOiQ4kje-dZV^mN=d)vS7 z=99cWCC4tQh&@1W8T6J%Z>jXg^<$g+kH!CWo&HbkcB$E&3t28v2YLkaKZ(|;$aiQC z*jk=ieIuJ74?$ysas-7)vEu8qo3xBh_Rq8L1g9 zS2NOuj3pyAqUCc&s`D|NWG65(7r~upr za66Q8@f3g&!1g=<7J!8S+5p`E;Q+k=bp)sbGk^+!I=~YEKY;51djP&t2UY-e06l;K zfJA_4fC&QVV8oP-@3FtOs)`MEOKo?g9Zq?Zp~&3G=ftv0CWGyRF>WCox6r2n&;_vh zP|BOT%FK^skKo#Htz-oXbdzM{=2TL+j32c>;6t2;Y07%0)zwf0mJ}|5=aM-0T9?Xe@Q<{Px#P~wW?z0>{8n^ zoQF~@1(cch%Gc6VJ{ok{c#Nd1AzAc>Hr=9X9(m1Z~!atr6?15C8xFi&n$m#`R~r%!8PK z#5vQd@}R{J*4XqUu3hUEBW=_?q<;R3)xFa4slTGw1Y=|4;x_h&eS2JI&C2KTNjawm z#w}j_Ix|Rw86+Ph*&f6YBmiXY0Eh`lD-l+ZVvuo0+fQ!?=?y)mRvw_YJbFu|w`_V# z$JsVHNaeQH*b&yB%eFakVt>giR+GLx3SXxTvzeR`0wq^CZ8 z%vjQ6pI&4vGidpZv81OzJ%+Zu}1diIh^406_#w z2+}El2oObJfZz^-0usV``0zUHE@Q1rWSi#~@BB6Q=vLQ^9w!1z1l$O;5!A3DSd2gm z!37F95SSy7Mi5E?9|C>^*AWc2ArL^oj35Jn41x$=1Y8Kp5foCukANM)aRfdTP!B!? z^$7YXpdPFU@(@@c7^5CM2&xe@Q9wO75u8B~PXYB1K+u9gh_0Fd7|=fC^& zCez+KDm$;{xV+mYk>A#(E1y~FXUXi+6f2w;{XXgMGh3@P~&4m<4&!2D~m!lBuPB2XA%h-o@~HOnaSJ^P;;zuVNdHEho14IKSS$YPh*lA=Wmig^;O#D z8Oh0ah*%N56GUXX4^bXPA{2>IMCu7eJQN8dx<={@;{mHEdq8c~Gbv<2Io6fJN(w77 zDCD4UgXtuzrKKDV^os^EyorH27u=gPuoR*2F@?2^kefmo3cpbp#R$15l%Vhph2xBn z$6My4K(+B=8{hCP%-4GF@7q~-IQ{K*6`uB&&f=*Tau;!X%dF?EHojsCzyfHHvP z0LKZS!+L%IO8|C&0|3VWv;o!vT%-jaK##c6(9p37eEHU z7$6KCUegR_06YN40WJaf0Mrvehu1WN6#yqd9zYR*1wb^wH|ihVMGGGc9%12CxX=H9!==5WthPq@uC!e|FXt@VwowCvoegzwW*Z z&AzBI>_E$(Ec*II_1KMFPC>;BX@Oul#y@vko2|QCv`jPiiY3f-(+mB z8{79z=IwSDlUpzIcI>+#*U#&1ah<(7dbhUk$Yq;#EVgN=7@BwfF=mA&* z%mQ!%2mr_fSfN84TXpm=4FCgx_WX@Fa|IPkOVMGUAO=Y0VDuwp4QYz&EZ#b!ooNFtH8D17sWg4DqG)fU!C0k zvV1Nzsk!sJpzlbiWc8#Gi}#Fl`h~>YwwEnmch=#b!X3H5vE}ie`HJl{ zw#>dG!vWWNdy;n!p8TF)dh%vnc<#Zp&_3yt3#!9Iw*+3RzjRpIx34>kwWr?bzgwur z?hN-)u|~9%36U^GjuaVC#DeI56m6l%j3Q=4t0-DS(GhyU3T|YJrBJ>9fx^{{kc&bw z3SUt8oDuR+C`aKh3JocIynsRx3LozrDRB-;rFq3@USpc~^}F7B=T9jVicqLaVIw1C zNC^t9Df~mBILY;b6e`8`_T2h@wZ`dfNI=f5=PlxC6^T0h9y1$Q&P>*+T8@Nj0xSmD z`Yt5kQQPyDc0NemZ05Sme03!f>0MP&=3jnwP3;`qnssZ`|ngAvVPzN3W z695H(7JylRnfBU<{fAlKhJS0AN0?qQ991MKKhmQQU)~42mWwMzlR2 z9moJ+1&{!c2S^0q1P}mF0KorW?a$4u=ugC_n87_v(LL}06#&)XQv~2swBTbV;vQyj z4^wmxoUxOB`ae}H!@sM?_P*`>ezh&&ZAe<{t>+xcX%&2P{2nrYSQ_WG=Qp=fJ>iYL?;uvU|vcVQYb{F1DN=GT*Spv~9`nLel2j z;y2&2S+$F$bJE0||IA3lZspke)~@V#ujiaYzlSB4@>})|p65aJYg_GX?leWrh_)?2 zB;8iqIzO| zR|+dBtjM5{gTf6Ieqn?R$xNa1=lLkvBCazdyLJb~)<5c6|Ms=6OK^H{lWY+mh0zq6 zQ8=_eSiss`!m{t<=QrQO3QEUs*81f=;pvPvGgqMSFNHi5>MlTdU68_C6y`8OZVDwS z{O@~R$HKRvh0AaC7#HlT3D@Nd==0@hsc&4A5FTaryY~|}fY`gxLhZI5WABWb@M;zS zF#u_RJpj@GMgXAzJp@<*Bmm?A5&<{>_yA-8OaOME!y8cmDS#*daR40vAAkk|=){o?t(?s@6E(29FEd))KWYl`GK11zlMTcYDw02~390UQCS z0Pp}f!vP=%zyYuVU_C%Bzz{$u0qURtzzkpy-~^BZPynC@;ExW?vHEmFfYTA}J??`9cmM6qgWD4b<&F`iLR2%psZ-TQ6ud)@0~ z00;csg#Chq@MzH%V+)Re!b|NvK{ANd62j}*0}8{jwZK*vTh4&O5o|f>@Vn63`L^Ue zw`_EiSOzD}jrm(f_Jk>a?(xlc;~lKGSeq8nCl_^gaB$1x^au<2@wa_>_Y!{BzrW1X zG7`IJKcXCp0x4pnh}0vBc2UHF=pv~L6se_RRVa!qY%x_IyhB)?LZL8)S`=0?LWUHl z(44|A6b3P*5QSEs>QdOq2pLj>LhIkg$1ne(P@JTXAcaaK z(-|R2AI6*p6yBlmI72e#)TFRXXxpPlicgOhIGxqe%e3|Jmrt#~!NL;0*NLt7r|W{N zACCcC0PqH=$pDZ8-~ey~*Z@!mFbvQ`fI27uFatOMI0NJY6att4M4-cfEC4&ea)7k} zmjLIc z05yOP03X3^j~W0X00#2_SOL@lbOHJS;sK@r#t5K85>smZUqt{VfOY^EfP4T202_2j zVgXPE&;)o65Dd@>P)vY2V1~cS01E*g0n95sJsx0pR;Tp70~P?b=o1toc#hy5f;j{W zsG}Zr44@fXmJpQM-#c+-LEZ32!RL4wxZH z3t$Pr7XU+mV1P~n)B!Uj;U4~40{j8s0gwRD0|-EeR+<6#@OLr5M*wXAZ-5#C=+H_t z;2!>(155zO0GI$o01Q$GngRFl*BD>~zycr!V2l8Dpc!xvf2{##0XP8!02Bah&>3Y!3M- z7n+0af_^8)0Bit~0pN^gz}Mtsg17})p4m1aDxAJ{3_+byGu zUAx0JpNQWJ!iRI2O2V6kl&@YgQQlua;d~HiDIrZD6+#~fu>g4z(gM1xO3^YQs3S_q z)Lg(;q~hcWVK@UZ9NoN~;1Yr%1fLTuC-^vppb$Y3fVByp=_?~GQ~)hREbkg*E@-ULzsL;%DA!U4tH2^n&LI4v2=rAY@AO;W$Un0IC7{1w+P~RGtk? z*#cw(@Bo+qC;+qo%mT~+2mmN#EseKXaCkCFUwLF!5TFF09Uv1Rp8z`8a04s>kOa64 z@E+hEfCoS^b-)ZsivdIdDgmAYQ~-1mpbnTJ$rwNupb=mkUI0N4Rw1rQG~1uzC+ld`lgS@3ZEydc0P02KfifP4T20_cz|3?K>+ z0$>Ob4A2Qs4A4p)FvGks0Dc?h<^@A$Y80PM1~{RZfufwq+|-TKr7_>tl>6I!vUYPu zs63Oqk%mAQK|F#n1PLh!ln}TeP@rJn(inaD!=rCkJ6=!g6#T+(?edSsZx#g05!4`P zaYn#_zz4w?1tgdexF9Ije>XTUb$G{r5{}oi1BAY)B{}?4_*)Kv00J8XbM^>i5GWu} z!fO*=LU?)NWq_Bta=#-h{_fuFr6ygl+f<&p?H2r^c0Fsih!x7#%Kf*Qa6AC(dBN9K zuL5@MyFXfD#(%iqAxhaXTA(9a=(W|7(5!Frr}&kdGRt#N{i1Xwe%mxf%!q=r5J^#V zmm)5T4j?*7(I<-7DauB)o+5X~12mC++CtSMDio%oY_^cXH59I9glQD&P`I1I=M+9k zp-_dw6%-mWLPk$*3d1O@b!e^F6vgitEz@Bp^g4XWko}g1uG2Dy`<V69p%Wt{>B~alGDqWQpH^jkGd{Ik|#NXjX+(c`_k!s2yhV(Ll9I@kct2o@o+tYU<%R@;36LGMKFZGHw6JM;-M1) z2@0qOF5=-<1O*gO4_w4UF9hBcP!C+h!#xOk5WJxtxQK^t2uvuT9=M2y;RqTipdPr0 zhkgiRD4-s=h=+*?rVv=7$4^|uLk9#kirtrP96%tAU>HFJ1=$G15%eJ#qaf#1i_obt zrSAS4`RiiFnFISfGPCxWC?H5Uh=2=0?CtA?9zw%AtQ{^k{gJ(#sIsKh_M*(R@Z}w! zwQpZ9sSz5^Xt6^ej=%!J7=k1cLI~6m6jMM#41o!PK?HLoL=fm9Xr%x`+8!@wylCxo zQKm|zo6ksaIO9~-9tRyb)?)2`*S(kV&trzr>*icI_h+sz^K~{q51a%3% zA-I>|IKfX0NF6sY0oExJR3dnbpcBCyg5m^qsN)6}f~o{H2|gpZmEa?S#~F~(k!Gw@ zCb*E`LxNuV@AB7+T{b#bCmk5-7`o?ncUHG_)+M1!MnXO+8$y-pov(H~hvja&#Q4<1 z%Ju$NyB)%sw_VDA71!0vbXhJk)Zun_PPcQ`C5cP9LOyyM3Ke0DonXQ<$jDxvI9JCW zIP4U9j?&~taBbZ*M+jDBSnNK-Uq3Ey{EJEMZVAB^9l`0o;EvN z&LzD`b)3B>0w4jf1HcL(9$*S!6u>gYaW+;kd-{hUz$O3{02hFK0C@uF5GxEI3J?Nd z2oMa=32+AB26ey;KZF6c0?Z#euTZ1tY2)vNVg`zGC~~0ahN2HnH{kRbzyN_v00jVM z00#gUfP8>rfV(Q5Hr7B1=<-_@h#hD-kT*~b&>&C?0d)B-55NlG0^k8q4A2UY1n`$S z&>Wlq9smIVtpM`?85p=7dm-c+!V{Z$v!^}r!ImJ#$SyqD(_PNzl6GV3hphm%sPbYv zuk4Axb3Ab5Uz-WG?7C7betHuU4t0qSRPD}-=EHVG@pAN4KkVu=Z})ah9$shB%M4)Q z7&x-cW$8t^5lNsTLaXUW2GA2i>_AO~ya_Ekgy@JelsX=_%_9%&3=2JNAw5kCM<-tp z3?cZOUH7kF2Oeh_Yxc@IK+U|(Vq#hS&^U; z!CM5K2<8x!AgD(j{b|N#Rf3uXpAp}E+qJnpclal1icB?FgntV z&1wX72=)@(LvWa24+B!i0mh6<1XWa{-;CtatrpTnn>e9a1l{z2EH$I6j$cmA)-HXS zf9Y_QLZ70SO}$f9Qds7i*;n$F)0bISO>B1g=j%OpfFghj@PqEb4!{8* z6CfWz9>5YEVll%Hx`$-|s{twiIswiQK!;e&@PqEb31B%u0l>UNRnm=pD2kydjp7~@ zWl%IhF+$19X22OB4L|}w9v~5b6F>k!0l*p{0Uads*UbJF1(E`a0+ImI0}23YA%rf! z#R231;sFEz6aZ`hk^ugq%Ws-P1|SAN0l)?z8DNe8I!M}ACGo0w**G7nQYb~;;GeH9 zxVtXfs-z{LI@ro!Ygd)D8(S-Ead8Hy{>?#mfy%n}x!ofFbmu)Wr8mc=m*k4F4{xwA zH^MeA?L}`_B<s1M2p%MOlAs~MAcBt>9r*}a5acI# znqVWrD1x6DkkJvJwA9dsATz;z1k(xf5ELi4h&ryP8EZ`mauNI=!7_r&2_9!a>bRa} zthFS_PVfN1V+6Gct|fSp(UE4XH7CeN@D#y1f}sSv8IaMDW~{X)$VxDSU@k!!l{$y9 zFuLg1qGaf%gQLiZlhL8u_fcAHQ}0}!6qdGP_Lca_>C1A9CpO1#`FfB4{)>FM!<7ma z0MP*7_5p|i$NlDv0f+#o1God6rVf}PQW{`4fE0isKrp})0@MLBM9Kps0I&n_ z07wAn0{EiCHJU*RU>ATGfHr_PKs5n$xJEPJ9^S_R@BzpGm;memctag%2HeB@XaG3? z3xF7aQ3BL~X23nXPXb^C-~`Km_IU?akb5WV|mhzbexs};0N#nhzFPgPynz7NZ7w(_O~Pe z7yh6ufmQCbeI!3|C=~qwcu`ISA?y zG$;6rpcFwvg24oz93;q2P@AAJ!EXf32u2YcVn9YmPJ(&_tqJ}m$WD-lpael(>gY!^ zHfazvAow4_g#?!qEMP$D=tna)Eh1<}@Fzhrg4zVV305;Y(u_@71dRxOC1^x2lwc17 zGCI5^BPc`Agy0V9*w1!SE-_{`8OBX_(B(6(y1|i5y6@~O>Bi~He7hz# z`+WF%FZ%w={E@>K6f6|IZK55klfLZ-kOJTV@CMic&<_v~FiC(q$N&fc1OOxf%mQ!% z@B_%AgQ;ZWbmW3v6Yp07YyxNpZ~@38fDWdZA(9th9Y7?&djNF+cYxE>0W(B$1FQiE z0eB7&4Df^ib-)af`~bcHdjZA)Bmi^)e9_?=&Aqgvh{X&)=pH-) zHUr!P@BlbN03Bj6!w~BE;A%M*Q>Ht6R@&GCZvL=KszlDLsfI@*x03rYe0a^h5QWqfr z5rAL-J%9j!R)8b|)Pd%Z0Ehsv0Z_tEef)l~HBK8G@ST-(s7`u;GkhPux`1}sS0`P? zRt{SUY*GD%Eh`SS;_&<-AB%6T#&$bKKIb~%&29gi-mXH)#=25(+M30+OEx}I=$mqyJ(1f5o!5aks z5F95cPEdzB`YZr!&?hKF@EpNA1ak-;XF%%cLo+rkAt*)g3c-&A9}!$j@DigV&DgM* zpcug_f-ebPAlS`-jE*#8gE2ulg4YR75F93GOfZ}}_AzEOASgnx{JsuTa|gjfg7pkY z9s9V`r!O0EPi&T1@q2TE0@OhveZwv$?z#`Q0CoUr0GR;%0J7*{CJVp@uoS=(pcLR9 zKpp{fFvASHSO6RWmH`|Ar~q&WI87Ze!!8bh6#(l2Y5|4-o)Dl8Gy^k$J%AHH4nP5b zE`TpOG|~+00ImRD02csy0ICU~LnF{%_bruMQIfGpeTc)35pRVE0+&A1Ec{+0LTL*0&oHd04M-h10RKC5=A5kDF zpeP^-AU&V}pcX>t@<$v%4j>*t06+o21|SLGFS`7pIb;B002Bah0FnXb2%v+MeaUg& z(v{1dSDs&3in@X5_GP%cXSOBBmw@VED}$|F$?@ITT49TeTa4=89CQ~*-*bEJDHr$f z(qvhBQx@$$Ja=2;qROl^wu5$?sD{vyvxwB4pgb~=70ZIzu+!6A>1k`|Xr(9MbAlBNm`PBcAS*#%2-*`&CzwM}f}kFC44@fX*$6Hp zxQbvI!AArO7?3&!(2T7t1f2-F5g*u#K~j*J}VzHipx`=%1#Hvn<~oB$pG{s7GYGXRqWsDnZozHeOdeFI5r7H+cYxE>0W<9409XOA9-tOr2;d0; z>OeCv1K0yN0ptJ_0O$hvqC+Fizz*OF;0162pa-Cu06H|%47i66&H!!zg#ZlzI{@BL z2bux*@WCCx51vX81|>unb@|Km|Z2z!?JQ zuopA@q;>I;yCq5Yh4FTx^1pu`W$_3&8 z&;hUjm;z7$umMN{_)A^b0ki>30LB1p0FnXb2v7%3JZAr@W+~^&frDq)L^yj^nQVqL zcbzCtUDX@{x&d2bY|~aXf5A2mTWi;epp;cj(-LL%zZ6_Ub7${~9Ie05W_q;yRGXv5 zC8M-#&kdm*M%bpNJ=mvVX-CObuEf#RrGVuOm_v}CpcO$5f(HqnBxp!5h~Q&J zM?QiU1o;V`CfGh;68%s1bGOG6I?_c*U^msniAw9_&s|da%c!6NIEjnJzCdfn3n4lcN>jWnV4ihvc7?uV2Y5_q5f+7UV zPkgU2aR}*`3d?(T-S8F5^lUwck9})I*GBE5-KA~a8kbzs!dGs{=jc0kRi3ZjA;d~L zEdN>Dl2^=S6Wjh(aUJg3sD4zuuXCIya4L}BA?cLl#0A2$`0So~=A%G6onE;dklmYGlEC(n6&;{^AhwCf=3jwqMUIK&y^Z-;7pbj*H z3V<3w2Y?Si!?`OF2in5Ve=7{!X`wY!F8L<)VT&e5%(+#aqqj`M-|kqmz0d0Wi~4xa zF9Tx^W%d2}uHo@a$9g9fwdzKcP;5uhWo2b}{<&3s@&HzO04xBi0Ga^L0fGTK0nQMh z4$J_`01E*g0nC@I>hrfNt8YGlA|Hz8DDt6Lh++dyN0hGW8z7JaAOK(uzzUEFkPn~$ zU=5J#QdXacE;GD9WEste@gx)TF^Xhw4ix9XhHMn z(1PZMYN!K3eMpJ(|tA3C#U<0-*|Vg$59!RN&Cjg%@MS) z!yNpS5i7lzqrR;>uGoHb*~MF_rBVz}8{qsVRMI zS<3e2W2=n=#}H}ZkkQdk%^a@d{yb%SYto+G=y3=ckU=>YWi^xyQN~jTxXboNpxl76 z1!NIeGAGJ7J%;iW%A6>tp{%6QF@t9&vbm01KDah*T2|5xy>v(}6^*7;H&CMQ-L>gzFd*b&gl(wJzajUWs`Ed|U7)Die1h@yZM zfgXYc1mg(wm>LtC6%p7Y;6WhqVX{uKp+^1w$gmTBN~FJO@#oz&6BmhKA%cSa2)Gf1 zAlOO)34R275r`r1Cc%YZD*`VHNbn)pgTM$u4+$Ow;RyCnKtcdPA_6`HCJ+M)5Nt-^ zMghbC%@Kt_2SEb~nj;iJI0YnVj(7xe2x3Uk9Ki_u5Cm}Jv(okKz-Mj3XC1@!G}HC? zBZ#K}*V9bblZ0RffdZ~4k*>!M0Vf5x;zSJun-FADfF6me2s{zEP=FqZix5O2xQC#a zdMG1UhCrPH>Y;@oqU*rF9*24A0e)*7W>mOK=QV*Am# zqI}KSCMEzS0A+wX0LuXi0CWNT@&H%>76NDiyaWgZ=mDrEKpmI?Q~=ZfIskkC8US_x z^iu~`0CfP}$FWm8R)oBJWKfnqwb7Ml?9Nf~flN)E8w#s8{AMb@`rQsihZE0kWdh^_ zDBQU^I?tT<%IyLZ6I1Nz7tNeER9*Jyz47w%DvCNKJNEd^=}!X|g)#V7JmoHzc&3`1j7n$oAaLpYVyES;|6#mf|~8X@3FnHA-I@e@JLv<{H>AA2D`1dTf0YBoXb5g zm2SMlqvTH`yH>UFf#0wH#@9BdZ%L}YS0m*u6n?Y9Ge+KeMVM&%vK#U(FG7;pzl_CM zNp~+_w%lc@=FyB}*>{o^yv@sQ95_@Ta(k7=---?91Lu6UPsaWDq1oWs7jS7koAx^6 z!g5#sRSk!{xtwj5oDcj`xTs7n-PF~5O^lbS_OU9hspP)rq9bST{z~5Tcwl^YRHFd=csjS-#V@}@#&Lnd9&>B zi}F_wADpON^s#UJ`|4*$e=Yjr{zd)^>$7{Q5vMJpn$tV7=0|mQ2d9c`J^Hx(qG-ZF zHVby`p(BRY0U@_cKBbvO^6y+|@%|s49gfQ-*gmxl^=~;I(BKySq>uaSlb!X3A3QZ`;*S(pUSY|uFwn$`}lUrU60kNFM}4Z z$a1;t|Kin=s>4w~cj6ylSboCJH{iOxLD=`17ghm$Sr->_I9$7a?f#&${mFuxeaSmn zJMMjd($QwIJ6GIT{J@{XDPes|p;a;`e?Gai)bNeIrg!Q2t%G~=FIH7wsQPJDP`Rnp z`*AMEhadN{O$!nx4VU)x>wE8u>RVg#PoI|aVXwOl>&lC#LgLDv-A#D#d%9;?oYK#U zns&GNKbF4R^eUGa9kg`Iebn&qW%&X910C1?@-+57{T-@ZwRFw>TVjikB~&tRNU*(b z|G%gEp7yW2Y{#W86wFe@T6XEIYQ50;EfqQ@=3hAfx+EyNua#!@ULUJudgAtf13-`d;nx2i1LJzt!5!_cHTktSOl2J~zmnW8R#7eY@dC6Oma~Z`oH-ww~QD zGdq(e4@XV;S8spcAu$%IGZJy|%a6V%y#qy3RUR=hXZFn8zM40a*nVu;+^L%ezGXQ} z<>m`FX{Z^o6v-Z+*!HTVy>ySBs;EMsyZVa{?T!JK<~C9De(Y3rj zYoDpO`(tDCXx7LIkJkU{PgcJ_*fBZz8UM?PHEqCEq{u5&OG>67E#*l5(r2q}j*tB> zxNM#DVdG`-Df{d%Hol5l9ByCfm2-^U&eC0OuD*dwrdaRni97?7spdne|xA@f7zy;=T7XE)l`yXmdP*S zSQ(TgjDL6Xe__+(QQ^BAnyR}mYUpnI?EAWVSGv%DI`XHr?=J9>l(Q}7;o7uoe)E-4 zHuJv=*OV)rQghJZu3vea&&|N@h{4LTPuDLB`uMv!H*()Km^e}YJNV+2rgdG1x)#NJ z-Fu)yqPT{mzU}+buoFN3>siwN)9csV{f}Erwe>a6nWraf?iK&IO64Eb`gTk8%(D;n z{NAK_)cl#{x;2|5LQlW6m*0L`I@{FrsQgt=KK`Zb;x6tXQR&#n*GNa9NPbFV`=vXkyHr39bz4MdJk7qs}W|fk^(@q+knfsIWvGdv=ldl;p$?uAO zUHx-u#-n3QN{aQKMx2e8QP0aYy~*7NqzrBx*)?$J&fxs9^0vKcXN)K7I#oT?^Ai<4 z_o*NG{K8@0tin8Q{_V#3^$FrNLaWka%3X@?*q9zEsaSmMj8bs@JGm6S4bKi-|kX>%R)-SvnmlO-Y*;ruWrE1vYGFR!{W1mY;k6%)d+j4KywiN=Q#+wiG(G z=H5egor8B9530P>&TX0%8I5hUT^VeD+{7&|PwZW3$@~4Yt>2Op#V@lZ%G!!MCyo_~ ziG;PMeQ)KOf2HzULO*T8#~VR?v;Rfp_g>dh-{f~^UC0`XufaCqBhpfXSMs}M4y>v% ze33j>vGkll)%u?m3RV}pSsd7%j(C-pj!T?ot7ID3A5p;HCd2HrYUaLOzM^gIlf?GF zEJN#Rb#ACtxJsp;TFk@o%3}D5e^ctu^~XIQ#>te`e!QKUT&v&K@mAXSoEfu9iaX09 z%apE7yYEk3jQz1KuZyXODIz~;IK%bQIdzd9+1kvCEdQquUVPtC_{S+{TU_Gt_bE;( zy~j>%n%?n;>-*cEiBnIyjl`l_9oAIEc3(5Hv=dEV!CO2csTHYw_us0Q!DG!HvA=ig z_OQlA|5LlaIPGwpviZAryy5zswf~-Ckx#i)%QJpUus+CpozvTOMLc?@MveES`3`su zUeY{obMM>EM_hN`j{2$ZKil@mV2MTAhHS1)oNvv~Z46YKZ9T*MMdy91Kv-XJj>M4I zo$)OStvj^>sb0qvgjxskA3V?;KdL z`<8=IVX5I!XLqkP4Tle{`oY0u^6_t${r3*Pk^=q4Mora4bEIxTMsSo?lRR{wYU!f=9?ernsAjcfJA zI(7ygyI#cvRt&H;#z{R(Ra7E>fx=W$95gx@o|yVgBSH1YV%4I z+2^F5ggv^VDVrg%$I!cbb8GK;{}<9pl^>PcrCx6QVD@)!`=w7Z)?daJed3MO{q7t2 zt@~hm2iL08Cy$TZR9ZAzqQ3Q)Mpygv?wa+U<7MU#ycC@$NB&p*Bf?@%J4D4rWt+K7 zLzYXJs^A3g>g!^sPkAz5ktvcg?L8AAz~U*Nc}u&n)Bmxkg2M*kaGNImH9i&}e5#^) z`lC{Vgmbr*Bm|~K2n*P zJ0R7)B2B`sYr;32O~)iv%AwPK$>Ut_M|+!A?l5Uck8~D#9Z{$$4{T*4tx72!o1YA&HfKPK*GOahDFYax09mdheoC9W^{Z4 z-;vRgndEpbEJAw_hpt16fcH3%n?k8e|2 z9?%iVv1(CCrHgmwN;(5oh+cYC%)p>|6^EUF0g{{eYs53;Cw_9`e4=Uv2P=wJ zde)9yQ3WAG#>=isz(QcBpsD2i6F>P0@x!IDZNsmE7)(MUumpw2U5+FoHUQ_sQg9$O zCj!z=hBva4g;2~1>nDINL+iIpjyEm)g3ab*j}6cSGnRcmM-$iB98DN3Llf>byj`asc>3KqDD+x5D@Oke`rsh#H$WxF@O3Gs=6 zn+9@h68XR27GNSsV!!*4-<||sYyuUuQWXLKJQYdq+Wjpq4$G}ZH#;#e3 z69Z2XE6)vQNl*L=&%#ZttBe-%n(q$_lNy)F(=6)cw)&D%(^OCtfT>x=iCgjS@R$)z zH#1|tELZTS3nLc*a8~e=bCUCMU@*{^z#wVmi(h8&_(3h^c08-3!TsD+T7LWl(L5gY zc^Y}*$6UVjB7R6nc)3-+)MFAdT442q0sk0dqlkT~NPF|Go^ic}B=u#NbEf ztDuYPfh|?m5&@XIQ`!Obd+OLm*Jbo(7kgu1dN8Yf`%7KJu$WvU&9cSWmEDD4T!?Csk?byTA{b+i}8XY&Tv1?^Vh(7 z3|OU-@*hAKXz~opLV*G15+OFe%67Qw9qV5v#zqWE#UFbP-OI;@FfiJeLFnGEDDQC< zs>lXDMhngowXrGkBZe#jWvwO?m$W$fwet5QI7D?n1@{X#m*T?^Ar9EGM)zu}uCIGt6XIkX|!m z2zi|M6O!49w}G8lBW;IKwnbjD%c)r5W*STl$`FzWH8-Pry1vjJ7!ts{ARu%Q^m8x# zWlV@}1xV4|Ym7AXHLh{>490-@=pSkeqz z(I7gtui;h@w36xOHMW|9Dli_}l;;$i!`*Uz((uMW6|JpVY%Q1C(Lh#q;76p{)qXFH z6uHe?FBp;`^VAFRKW$;|aUt~e)Mo%-0W09@lsOzpKQ`J`8JA`Y zfluM9O*CH#Fb7aU!_wG?Q+Ne|G%5D)!M72Wnf<#9)Nx5{WiU#&hdk{=0%z%(!_xf7 z0G~brzMbP!E*}fMX0{l_$p}Q71v>)&qGhx%qP8+xk|Vwjn5B#{Seh|gwfwv9s@Dxi zlPxtkvhit{65M^GdZ^yA%%oDUdX}2=>_B!4XzdDS1O|^bS7TY=2ExPj$zq;H$!KeD zu5g%@DgnV!DN&d3>FrW8rK!NBOR5Q?4o)%>5y`yA^8siV*uNCiKP>BZ(-$Oav>3!8 zR{y2=HZa|R%K`l(BqQ|z@pC8(;+)xr3fSgpj_{)uo^R=vsexEB%}cx$W?5lc>5CkP z%Kj-mzgM?GX?~PiWdICcOcaP=Plqcsv+j}j$4fRrO2R8LeLP#!*3CLEgR@>{e*wG$0n+*cP=;@a6Qp0RsA7bS8g{-;<|dZ zq7%z}jECt(Zeq*tJG`zB318ZKiV96(%j>D>w688ncWQ#2^ljO0v|$dV$jT z!WYlo&Cj))4ZJrU&|aR*^6-Th+A7$qY&^fG7yQ{1Mx_FV2;85Fs1a_zAjgvmOw2Ur z80ZrjF?d=F6pCt8e{_iyM@Yf#o)DzCV0&m1WKf|&Iy8vc6Re%Uh+@I$s~tz`H15azD}mP~nmV!??u zeN8Q1P1au?S*@XOva~|xO6@7`|{i6F~Ek;lRhN<6irjN@nyg87#d5l;ix!@4do%yGG0V#emo0F{ ziaYa_-W97t1B1hZV*y*2BAEGJn#R8fYaC)R-T8n_JYjhPo>WoY)bNHn#=2wF>+cFF z0i12;!7c$j4Bu5RXuPrl^dm@9I4+MHX+W5zz?I~8LzJm3K1V;Y!MBz^0-$*O^5H+y#k$a_{c zA?Ab^(Ypb+Qf%0oO-?({zKc)u5qw4D*B};uw;-6sh))4CC=V&2w(3N=9H-|Y1b3A6 z&}3p|Lg!db$d?0}KO-HIE|ad5enWb#bPq^dn%~ADOV^|4S^~;}>Zc3TfZFK7tgr_* zY6|z;n(c!0WJ?=fS~bAyeRzPHmix38QuN~>k$<95cOLG-C5~T*iTp#0n;8xdZJeGY zAk?4?2*$x3YF1Jp5-Vf4Is~v9Q@v3Jdha!T%Tb9!Wm>7I6!#4_%)E%Wid`rb2uTo_ zfL-gJ8`4}Iw3an;MD6!gl56mH!{{IQ=?SH|a!wCzuYdH(#edQ4e2$UG2tw9jZiv4n zvwS6DjLNP*q5F>0XSfOO8d-tMW#sx;B?vq^e~nAP9=^O?D%grkLZ1yA1tKd1fEs)k zPzns}t^B+OL^XpeAf>))Tzr%u38XN@FIn?Ka0zs%x&O&0`@aC$W346!Ho01ik>;52 zLu6WSd@ke=f#u75-Yy#+g_yZGcmqU9@%s1Wx5?AeCDM(e;v-#dQnGrjtcqh0APEtO zQ~SUH1t|So8eF8ObF3q-(A$*y3h|S!@CY{%EZ01w$!YZG*IshrD?_l!NTyC{YV1Tw zrgUcW`sdc0vOF@hwl}wSe3F-9V68i+@vvk4ns*&IvcnIXQMuE)egC0@mdU&Tf=CG5 z)~(sLetU0^>l`|E;oY;<63G>3$J@;zI~P@oa$6r6zW0i9To|qTm3Z8>3oU}^gr;_9 z=C|ycn+yZp?2NASEThv>NjZsY<74B=(M=oXZEKAkcc!-NJaqPs3w5(fWi02bhOXO$ zX-2KJ<-+G*|CMdK`#)sO+VN)FP@~}Na|(&BXLkIj@*VOF=-4*th;)r4^}u`1ZAMvH zM3#pYArV+e8&9DDrUfJcwh|!x!V--|5@QpOP{Hd~L=-r?Fwc#=_&DTIMo+AFz?a|Z zj~jr@Q;6XEtnj?hDLt;8sxw2B5KJs$& z25_#Lq2}r@LMWM$tC67-{K7^>HNXnWFUDxF7Je7R3LS`oFXIwBaDkrifWo#k+gSku zr*0YsbJB?5-m52Rz7v6kNit$?&fxGoPg96UCr#Y~(HrPy@`FEVlCBB1T=$#*`~w0X zsmcDUm`AlLyJ}yeGPd(F?%^-H6n&z<=Taw-v7Re~0g+`{(>)CW%gO>HW+|}aQYp5B zl1bP?rC>++A%vYNV)QREiEkwu&(*MG@6~El81JZ8?@buNAHNK%D!%M8^sYmscKU{*f^``o0S; zJ5_HADh{A$uX%xW?2UrzKN8o-^dhmZeGGp~s~u{K6MMeacS&Iq)^7n0BBHHTi_g4FeSN?Yf;2 zfqR%HE)3^u%Bctd)agH+1ZrdkA}66yAg4DuDdh%!2H@Z}52UzlhSyN769xzmWDXXRY*I zQ-|>H9xdZUN&c_k#F_DCVE0}Hym>BQa4A?0y1}a{X-LJ5Ll=HW;h?e>7m6m8mf+LX=}AwKF&Le$xkp9 zC&-Oj`GcNftB!w(LVPA$z}P=mbom%2p(oeM#gb##o=Fs~G6unrUM-g*u(xs(U+g;& zxT&=&7$h0k_A|wW14!}Qz?TtG^Ocr?biMUj-EgY~OXt8E>mx4VX+RqKvpH2|W z88k4Ns#Ys4n_xt=YK2#{xmr+x%l;eI$-~U6%4ki`NDS2^w!7iD4?!K3dt==&eTQ&A^_m1Q!-S8kith19UgklbhlvRkLD?X zsaSOfW(hcV{kZEX^cI6Ej<6uiYnA3eEHLQapIMZO0#Typn(JMIC)uAB_~C5m2lwNz zj^^SxH^yXa8|^FC`=#DFpQkkB~409EwTF4`L)#7HHfR55S6)hi5RbP z5NYL5b!h9<5HA5uQ^skT^%WKF@I!odUy<|bXKKwVr=#t142F) zH0Gx-uhsh>_9z)HQ~;-!duz~B?ZC6 zyw}W^=cikSZhn~Y6f^}np@#pet3WG}8Y;(*_Ai^-mbl*0x$ba#n9}-CPqp)QVSW@s zJauPRwaubaEKWIg4aSx)7l#RL)+=km;BKW_+}2=G(ku@9OEtv!3H+3_8F+Ol)s60~ zs5MAaVM%ImA+TsJrO5bdW3$nQXiqE(Epc;xE{S*=xZP<)UI}&6%rN>hzB5HL{{q5& zP0m%ShYwdPIaxz0`G#Tea$EFrU*>yD!bp4g$YGE|UPR%UW4jJdP12230tT_VkxowG zZ)>W{9->BBm&1H++qPUjl=ZSfAEJDx$;)oJ+~#Yq`MQ4R_HD9W&x5bk8*6WQ*@Ne{ zTXZ^4^#1eLMkGH&TJ1DX@B?|PJSLUJ3c~`-AWAd4;D{vQ(dRo2v2Q_=VbbAxfkT5i z0bl2_;*F~4OD@qBgY+MDDmvKYRR$-z(V##;>)O$Ywg}_yW7uRw|;E6kWd(h8`-(qnl*d2 z`%H7JT)o$Wm#Sl!2BM~&G|u|!{MvK(n8=E*WUQK zGhS+>AxcDVMM`gMb8KsPc6f`&o&S(8H`-&*yXi*e*LbQ%nLBrSWF4thx>&YFS%qdSEMcVNCKkffd5(2_Xa^*ey_FxtS1Wlj`b7IfbeztCe_NB%N z5X|vL2^6C-rDgT}gLvU7sU)?eDQO*F?H4FE+i~d0Y~W^OH}$j*NbG#GQHS5@gn4a( zFs$=U8g;>U;rZrI*lS;b6ul64VDxHSoLv0pk$h1{h}Fv@zKVYKB@d1N3~{bp-#wXg-Z3!x880%%%&*L{{*(RxXy+@smJ}v<%8`v%iwBetPX5{T*MXZLsDIA& z;_uIHxdl;=U4I=+$;;|iv1Ca_m{}M6@P3f#D*zF`SbC-Oo6_CV{nAIIPf35u_W>*j zCWfK{xtH3OkO^?zZ7-x->)O4QXLVMeMMHp)?JTgSX_=_P8m)ATUYh6S30OsJ_e#h3?rO!%# zB7Gy1yI9G@u07x?7lKKY2~KatIh|GK&{^R#cxrzkg(BI4LQ8xl6S`CFW{FnbmoD9^ zb?U1pD=ybteW%{?N!f-HUeS6-X-HR5t)TG=>=f^@;*Qc>Sq%-Yne^9a*{ynmyIE-wc*%^-%sT%t^#jb-S#>6r0AW=dht6m{xI;FAE%vYKL9y!hDH|u5yS~J{i z`kDgX2Ec283>M0{*b2Rpp}Um4YxS0&--b)MMs}$%y*?T~#U)2qT*Fy?`H8_f*evOq zFUvu-$n)mbDw*6Tosh1QZj@do-6_3Idav||^hxOp&m@a0_9CY~EX$^?+G^a)N_E7- zCqS|@k=hkXx@rJcEE~r{f|JkaQBQWFgKQT)L+82TJ|{WM)z?dw zZq!@p#CyEjXcKBT8+YiHiec0$>PnCKW#7lK@5VAVb1yulPwjv1WH-u4rKa;w{4;Z( z{jaaM2`a3-wg(rC61ZTUzy0XaoxYR!NomgnR9R=BQ) zT&TtYfNg8+wEpz5RcztThV3x$rShH#V zEeYbUhv%L_Kv&*A`BkO$RQT_gOY7oiR!Gj%5#T^{e=Q7n-RZ=6)y)t6Dx!UQtav8E zecwRnrcWv5um82+V)fM0za-~ptOk;@6r<&(QHW%=fDb<|J$rSW=BC>?+EZd58_GJs zw3^xaLeSoXV;d_Vmc023Po(g@ZcJ&4tja}@dxJx7^`dXY|MDX)_>~nTC%UQ_`5dB)r)dc{e;y>h;0}_`~|OI>K@OqE#+Z6uYJf@f4@fQy2ScYpsU;eLD8_*8JklEXGWPbXW-&|2<~t19m-! zOSMG4*g|n=>JG`(bHu5XRg8y*_jp!0#5E`H{&Q4dtf8JDP!(ev;ij5syb6N z&#oxsbXK5$|CyX=s$GJEl8q%g~&=-;2F*;k*D zGJo(iDtyZ`tL=Hpa08@zDgI0MY4iARR_ql#S2`c`m1FMLOZP}0gb466(w9%##hv^& zb~-2TCg1+w(wVH-*Z$@I4xV9ku3>qaNZJF^??{hHe<=O=nZ$RY z8)fm_ocpWBZ(Lq^ia3f{yVp*S^Dynyhv|Pow3h`+ANW;5x*M2XuE3|bKJqSB8PgS` z?CK8M&79KUFf9)bFJANiX8@QbHbmExd+@Ik>V4QPS(-;Fi}QMtuh7V?I#hPmQy+fg z{|9j)ugm+9e7!s(RizPWQtWEml&<0M)eW8jCql4>cmRoK? z@{o+Fcm5HX+MoYCUswAyA_RR}rkeiw&)dd*YtCD9=Z@`Ud;fcPz8;0I-?6j*gB?5X zymOHIzDpjK)2g;{PzIryUdqIF&{H`iQRKxv@2A!UAKM_`+zII0nhCP(e|8WkaB zvMQ^ZHTECk_^7S(eEe+plFMIx+i(~0H3USEHd-{oq<~qkP0ao)Oj4iId6x^!7COX4 zx50r~li*^p=oDKA6i?5^aXHixdVr|R*tr_H6_-5w%H8{OR93^eFj2}Uww#zLkJP3ddF@)n@SFXh(Vktib>!@gYqp%d zdB>sicWoM~Eq+@`+zG4~#||$vHaP0|sJ{E0J6~6sQ1Oelj*qyGX|+Z+*+Ebn+xNNM zN8OEyOEFV}(v_9DX~p}&x?tn-67sFrR;`SUh>5C^8mjFSESdnu`! zNm~ucVD0T5{4MFZAcYT!HPQ7b?M{>K2;nAL$XX@ce;^jJhqpr6uUo^=5=3nv(6B&?e zbuGd&VMfJZM216l;3aOT5QL~~_5Tr%BRRI#H0yf4*h{JqF`NUcRcM%aczCpBDOlD^ zd4?J}!}rHROXY^KSk{fLah%I-C3wn~WjGt{l*^!@qE(%xdzEO!NvK&bz*HMSsM~f; zS5;zGUR$V!-OVFGDe43tODu*Is`AYd%u4oNNmbL0OU>xexE(r1HPwe7$?pWbSd+E` zN?aAw>~+1lrG2ThgF^DICucEVl5Sdy_<30cZ?loD$mL>y5hY#q zLbB+R$nhY&qV)=2le>jCh5;T_S{Jt)Q9$6pAjEPR?o^)(L5#dYHy%3G8%w>LVsbW5>#TtAzzha@17tr81GcZZE zX4$DXeo9_*8<^32Y`~mqv2%svml!W<(T3{B>O;DyATE1wJg$N$DPeg&P|!i5I6E%7 ze7K(Y3}o#f;-y3VS_{7tAv2#F`=c)dSXBt2MbFH;^^P%B%%gm9TI)2OqTv-OAxa}r zzWk+TerTT(KK^)TayXpYS#v76p-S0_I}49L&I^i`>LldH@n49D^$i@uac6|fnQs-_ zuCo>`J+VzJ8O&1@v`rylG_s7njd;pFqY>VS>MP$g8`(x%aAn!K0_LY>Yl&Fz>Jka$1;BJoWTss z3Dh9!#AQw0Jfj7XY6HXzjnGkjThSD1H1e_%&?gY#E$mE&3EI*PZQgFc4!c`czD88< z>I6SQEmKB?hEC!8wy*x{<*$fbKcIynhF|{27zthdq5KYc9OAjFr5A#Yp38O|ltoOH znc|cQX>T3Df^-8%E$tMO5;(QVX-%Lo$%6C=@3lL()C07dZrB04o$XEUiVi3Z^i`q& zd?P3yssP>$N9n%zx@v+Mi@@b-nl?5riynrHF^e5HlE=s3Ak##*q@;S?d%KEbnl4ep z{ODKC1231Wm6KZ6033kMyXq$0Z^ zi15CcygMdAZ&AUh@_tUa>h)>=9md2$c5VyQLMPYmklz?G^4pHzlLIwj;!NEKyj%d6iC^SXY%5h$^ zK!PK)5ECNOW{$~ZdF63SwPg$n;AliStP11?_Xg-jR6E?h_??yPzS+M^q0IuCmQ(mG(VZ~Z(iC85$Gj=VcsTvSmZalaWY#SFfti*+Iku*vxZs= z1G`OUdoyVVnrzc!GZI==f5x{|fOC&a!ltxKY>M5v5QsKjSznvvX)OJUj_P0A>;c4O zgy{7NUW>!*pr!#|SE&*hq$y9sV`EG!Dk?+MAAB8Cm2mN=PBU^9@>bj8U!`ISRR- zzlr#prBC|z8&Rjt4k1OgC(6oo%IF%3&eJLjk){<7j!X<`J61Ef%`4n_FcfS(Uv&$) zMzIko{r9Y7HM&Hp&X-3^>fz&x_8YbX{>*Ufk)MTjY$-%hjo1oK_qt`8N&olGnsh)^ z@>RH^x_*RiKMS1$5w)t8a;n}?|Mp~ls{*rdeh*7)rG3(~q~}R5m);_MAl*eIIDUGq z^@3%ct*_8co`c}u8*GCV+uX#LowTD8h=-B}XX$3i%xtEY7e&~Luo~&-P1Z~g_QZDR zxEu4^ihF?qlfUKatB~T@lKRGu7t+O$^1obtvEo-2KzY%R2da8lF8cr%J>;owu53{a z%i-U%4hurfXXOH=rW<{cr@LY!u$` z1ABj+y{no5l}*K}fG_3BE#p*$>{z}wO6Py2W*IU4aJDJ()7e$ zlWGer4knT1o22(kACaWi0DmpDI2*8UxoIA6VVp)L9F5AGGGM#Z(wQ~}+AmT)Hg2_- zw@3=_CyJtl!oq7_T+d6+l5P(|oQ378gmkCtTyLddzz>b$wAbl;6Ti-;K%8J`({!V( zgHq5oKU%Hh&rWIoYDU~SZZ@SOF>4$8ZrWqYN#eD?+n62n^T9_3! zMNQT0f08IhQ)kM7$GymktE`xxtQLn^vEmfN(M{`anfj<`S!M%zmlu7-tMCm2V3-eH ziFd@VmtBUc0iF6EIbZi|pD>;2R`?i0~# zwu@yZ%P7ul;7LF3dn2Afp2ULTn{dW$y708d=cf`WfK1u8*Od7SgFrOf3BWf}&t#%7 zGm4r6Sy+dPF=%gKc_YAjLU&BRGk`` z9IkA-s!-IFiAGK(tE6bVkJ0zLop#l-#|6v%$Yi>vQB5^Q!GM+=dvFn#~} z&ATQKl!B5|SS>tjFSaM&AlItTn(7X5J|}^pn1LI2hNfFy#LWgMzsYI9S5A&}X^JO%$^ql&&o`s2o^~T(QUN5umM5*jj+%Os?$#BiqANNfq$T(b zG|4KqucIf?U?+Rnj7JitV`1`T6z$R%e_@kqTsE^KO5}%br5K`IQ8!hDw;TY);95rLRYlwfkul=>ihid_Y=y{Z@w3m@G*k4&q3$(sW1fHTG-bmn(Q!U+B#WIS_0V{hYD7pXy&15A9Rl7Jr>^@s&B4*vT)eKfJ(9!dpfkrt;@RR8V|CQYPKvM@z z2L2IX;15FEjg-{bseli{$|~NG*dwbr_t%1Rd9TWw=?!@Isb9G51x-E`+jQBr37wdr zyaz&XGS_%hUc&iCTTOz-A&BFMbLTeK!dP0`?|K)0N?MT4lP;HT&a%}@8;O8+%gJh{ zWT}KZ)+>E@lBqe7k%8sHpGP<8g$lT3J>|SwDut3AX*LFfY|QMuhps` zSVU$fvnSImHT6n!{^Fy{8R{@8xDZ><9H$G0*ZrP2`$*yN#l+TD-%jvXEt|i%CbvD{|Cb@Nq1N zMkC{&0v&i3_h5GWt0v4N=x-JG!{s&#p)F zshF>Le9v<8|IMhg6rU(TiiZb)2&etd+Wb*G+Rc}JBVQhcAh8y^CWMz_J|4Gxs>amHKv>hUf3wa~TiR zn!4^{8Jp*<+i-Tx)ZKTWdaqhY?1Z>sT*_A`a;|B3hWl#Ip~ct)_w+T++pW{cY8-## z@rH@Vw-{LAd28TFHB`}Ywd(7lF@2%Mw6P7j;!m(VHu{@KCc`>23LS0BwY7$feW%lZ zXQfwf4)b$??*5u>_1M%@bCXk@T*kIwUrNG-D>*UmL2CG1H_^m#?D>y z)2iDEbbKp>J%;gy)|>jHrfMMipsef6+`U7-dQvT#3eP|8&lcC zspfh!skQ6&=CiQP>w1ZobUm@l2;IZxMt6F)MuNPIj-6-CI((yf9{Y=L8@DuyCltOF zc?gV@8oiSTD9xe!4_&){@wx{d;BEtf`Dy@;9>eo(kK>u=t-rfJsOMjN_@xM;&Q@jD8j@uZv%J<|M>tPD zg{j0g(zUgDui4I$iUZ6mntpKykv6vMdJDa|%_z-&q!|+qx`c4>HRK>I$VvB^J;N=U zqWvdakSFVTL#Tk0@0(07YLSYSV&qUH`Y+m^35Ec$1~bYA?^B2s$1Ru?$vjgYHc>qR z{;P#io?jX*sGMF#Q46VPX{+SgnyfovS&^ynN!Btnm#B#s8%Eu8PjOjJUou+M4laK7 z;0Mk-4}YO(1*Q!?35T|cbZ_KhgXLWKLjO;5U?LT&z&}K+9GV9NRyOh*dmeA}uX$wg zdRKGsaFN}q6o(PIpr}H~9+-Rwgj(!BfNDAY9VIuyj^^S|jW9irEwB0cF;6?qrAudD zM2f@syayf_z2%nvi#Faeh;g2f-zf7Z@EwzG7kh{S56^HW58~3Kl5NON_iYYVteea0 zQdwLI!n`nmW^rZ$#VLYQ951Io0=X?Osx}3CJA<}6c)p!PRn$$>Dd>H zDks{b9@V^0=FLcXH6 zX6wWze(zDc)U1tEnr@(2o7aEj_{F=bv8ySYH?hjb^=ECL?HWe8x&{3AlbYV`Dt6Qv zmaC+cGfKNpcq-GQ=9;-?&5m+2j&5qYTMCEAC+0_{z|WhP>^b*Rt1~;iYuotHOhM62 z3~p%Mc&}CRiUPo|(Xe~?3fc6wS#G}CnOxYs^YU|cuJ^;8)lRX*`_>s7D-~6pp4qu| z!{!>>w4fcC(=?>Vx$$uDYznZgtFn z-e8XqzJ4OBhOG}Be4P{cFJ+^1zWoKbG2SqgezW>wcnC?mEb|ZnXeu^=WIFg zku~)dKQn_>A<+alZC(g+g;t5!Nqq=cN*TzR=qNUj%{kG3aFCM|&kF?GAvSvcmgN@f z4&Qje!QPBZ#D7h#U^bmq>F^5Vyn_h zN}5{8U%lh({q>;@QyZ(Y_U7wrrmEpe;w!?RJo#d;GgL_CJ&rKZIbug(^ z2I6DMipe4qE2VS35%bkqh`18;*lLl&_9U~zZC7!TQVb_94Nc5%-oJatHTi-{tf(`$ zUn|JMa}}Zl1CpuzQ*`mhM!RVb`f`J>zFlf%J$zA$2it7$458FU1O23)sF0Qy01=G# zKYpL+f5;p16P9?JF9w~A0K&e9>Ljr>d>dHS(f%jy4S4iooBT;aOv`y&E^+}`gR{Mt z+0}UIxd^k;1bCTMPebU&X(wvDFnAt9+SNV_#h-M283tT@j5n#r@Q)G2TmSZ$qa8D6 z$xKo6pZ#23WlT2klw1P!SG3Y&yhk<0JcGFI?J<0q_Ti>1_u0?p#8UX6SNVJK??_|3 zTWi`FENyDDYIqBsc`=mUV1W2Ku$Fr1(d-^n6@z1PSS8DMknKEv2veo>=wRTA7#H9k zxg4d#{%l@@VOx1C8_Rw85l$bpM4zn3&Y)R$Mxtyy=`VD%6Ren+c%llU%!g?+@dzBk z;xCrqK12fyRdQs;G=66l25jX__?&p_-T{`L3F0yZ&Q^F9J>yv!cs92Dtbx@7N>}BV zNt6xg$B0oS`a>~SPIq`0{Be5AumXdn*@%E)Fud>&1@#1j2o1g@=0Vbil<^nSX5&k} zQ}Dmy*Gg6KY^8RZ*x_tR8%CxB9E>92t=m?MSo(mMfp8(sG=@U$=!p|YwXkWL_&VOE zEtN5<_-~$yO<&gV)SG>U3gYmVZu_porrFHC<=`z|+tu083obYc;Z56>ujAd=G6+fi zH%)yUM`a5x;qfM$Y2UW%WVh`Zj9-AM%k%n~=m{h6K_ zgtIlsc+jgkeau6%fj+6JnjJGWy_ey)+-xLVDyVnlIfxOayri1H>Ft(14m z-LOv%GyzMeevhS~pJQg-!wKXYDRT{9$ZO1t$p+6qeCo&Yee$G~11q#&l4xV) z(si8mEkPW(3#_-)Yf`w44xgGhZZEX}T4~nNzln#6p0$4CdB?7};=Fy+({Z`@{QU>N zZ?s!)Ja*CXwXGeFb zbKQn=O)(a_2loHo;e)phwb6~wI(*=2O&hNa@4f7Tk1VW{<+HbL|2J%RE-dGC%)NlB z8O?E`tJvDLQ#^;m%?4xY=}`xTzb+7izom`!_?{whyk-59!jRhIF`rn3GSKXUaw zteGv3QzWhG-#ES0C2){STZ!H2(|DGmrR*U^;vo?tN4K1(?q;(ZOCL}43_TtpSbpBF zbM_qExw}>gCMM50aM{kyTgRsQkD0EFMki!GM|om29W}h?tH%62sh+m~034)+kgInU1z^=Fa8=A>Ejn2 z-#b0wRqJm!|Hymh*Y>aF1__r-r84II`$?%>E)l)A1n}QIceCjjn`h3w?7|OE%`s(adhemr&H{Z+Thlvy^x}=rX>C-L zBL|LMe|Xo~ow01~X1l1h*(u%3Gt(#w9Mc?&aOJb9ZHWd80fXhYrKNy{Zqmq}DV@o0 zCuxg5@mU@tJskwT$wfa(!em7n3WC(m68sd;+QCa9?D8YK(1lpDf_zv<^Rjk9#WL1l@9vUDC;b!{Hf-8wa6=`8oYV*^IfWtQpi&x)J}$x z?3?5lpAZk(S18Dd@5G&w@EP`(fGPh-3;=-l-I?$=A4e#{pVTrT)q+CuWP0{I-Q!gsk&j?3{JeC zRE7;j$@^CDIByG%RJYO6OvN&FmvzULGm-uO{KC|k>bt3^m0zy# z{fBkM;*Fcv8%EVp%(zl6YPMr|vbw$;SVUJ$-Qzu;Lx91{Jja&9G%r}i^GY&wM!H`x z)bcYb|9+Vnq3BY*!D$2x>rtgtr0{uEG&WRxm$&fLWLf4-twW}g0XE^hUMua9UOcEN zUhdJ%3tCq5dXPgu$pXwSKhrs7b~CMre;QjiqDj1L7}^6FKo=54v%R<^uN`s=K^$0k znSI(^n^^s0t97_~Wx-PP0r%8H$_GxxC(ZPu^8aP-O~52Msyp$F$c%`*@2l?0s;;W8 z?&|8Z`k1SGW;FMVM$;pWMz;WgBs7vZZ6O3g5+KB3v*xz3I3x^6!W@getnD>m8yg?r z9}MQQS(`QfjIlA`T^0-DDg7fNGpl<>GZMoG-?xBJch`}b@4a~U`#r@f^-$ED3e3PM z8I+~)D^M{tM>S}mC8~PtYa1MSR-1GNtb%;jAr#e$r(>A21gxKv2SZzzVyC9kK$4h2 zbL9W!e(U}V@LSnQVO>mF){V#TOd)btuX!Pk>?f#PLSo&(_7<`f2r-@wU~H&Au}ceX z6Fm)o5v3asS?Ev0JM+fto+%nZ=CgcC{44l1;RfN2Y>(DrIu4btxlSQPsnfCn9ooo# z$dLWaG%6V-2eTj8YQH?Y7-gO9d1FVuxsy=>v%+c~&7@ne+VrnhPAT~PLSXqV$56Xf zjLTyI6Obr8`P`|wsv=9&WGdKjwSKK?_`$SF13bMR&g|AS$DJ)Vy^5v)rI1W**+acU zDN1U+=47cZsuS&QT#SOT`kwyq2})s5jy&CqMH+$4t*Nf7uFaVQh%xLh|9xYCF=SUDvTLl9v3e)szqkd_-8({_84O8_`4we^|Cklp)p$LohZmA)0 z+*6}a?a!|mK#bzfs37rXE?u+07pQ$ zzsS&yy<%_tvT{v?mTXrP37}f_`lXeH>0JtdW6kkG8JbOQ#B9QLjzst*(PZ6LWO2HxS~j7I3G;c#FHt$T zh04Jz>Dhgk@Zs~G-_1f`fy}t4&5&uqoTdJsP7=^c!v29nE4KqoiWNBJqx>j*ZNo!y#7J)y3D9nv_dH|H7 zW+f?lOc*4)QX$m3G{-;XI*?kZP?mB0S4b;5fv9M$^7~m=GZZCRZD_J6zDk$X6coU< zpLFn7=cgx3Yhc@|r6ZX-UZPU396M4d(_jHxB2{fqFA8F%blLRmL@RV<1YvZyS5h?_ zNQi`yeiba%BCl*}22wOHs_8a}w}y@#v5laLBI_y;WzCHP)#abi)hy3R^}?6nSB0B| z|H60pv1(7wGv2C|HqvK9n5psZT(EqMd<^b7EO{mm*n?~@YGwg9t}#h3$r#;$+M(5L z2S>aKF6ye=aOhC_Z#5&o2EkNAsUZ4HvdSdj7q{)2IIjfg(bl<{Es|LB>cx5-+X$k{ zJx38S6kV5#laxG`R;!eY)M1jfriObHBOr56_2E|=^;=in7o&fM5w+K#jcd>-YV{dY9f%(Z(TrbR$@+_IrhFI&GF zc*r%m0%eD{)LdygXfuQvK>)wyez|KG4G0R+h&S%`P=IRQU5|a}|!l z$#{~!)2TK4RD&mOWAXC2q}1<@Q~#AZNR`IaU`C19B=2aeeVW2z3!AyCW1T2N*@s`D zj-=jeE%wJV9Xhy(=jfW8W5vDO4f=f>YC5TEo76P*t9#Ym^(2TOQ_~GBVRh$qi#ryk zszrujk71+Uic7<9h`}sh4$X6-Dz&!{@CIw?fd|Twmby)vb)pK8nC09582%0Q3NK}d zb#Q}mkYr%sY2vvLHk}x}>6GzAcCu+0y3J4H0zZvUL|43E`@WU=YS|bZZ)@7|6}j^d zzc| zr6WzEw3~yu0gV|~pS84dvC1ce^j`NxTX#$s9F2%4P_4N&q#8-Y>cW8orHV=qkW-$j z7Xn>lzIj0*3)B6<#*FFP;1hx=EK}c6V54(Bd;0dE?Jg~fei|j@%fCkg$mdOcoYh~b z^#Ey+G%v}SfLBbnX8WsoVS?upAoT{1STT6NsI+U~15p1vPt`?PHQq#Z0(}-cSY9v# zg#@aH4R!3;u`$)a;5iPGHh#4n9jIWDMgi%o5YQB@mOn|iUN2TpkiTvV{5O}V$VLp# zh9yo8A`-bVF(_B2b|%Zai-|8I{w4GMr0Q8t*N)4TsD#EVC0{q2$$G7!iVq_>9$V-q zHP?0~tZIIfu*Fx#Mg&bE%PGjFD+e(m*FF63zf%pabxajnCcO~57fEy(<1ma;^n_}aQ4uFLQy(*H2DU89lg`y zpI)T5uw&`+9>Mw<-w%~?W3cmbIh#J^H?k!tCo6|EezU`s*rr|(b+2p7^rzvFYMSmO zh~u{u3I`5t)W#T|%7Snu-#fHe&#V|5w57CzodlBxp9cvt;&Zn$bt=;nGqcgr9yocY zE+0tev`>eA(}wAMiObSi-O_(5gGZFWF8L5RW?O~|t`2{*ZzvMfd6>HivY+$dsjeRNr;LbF8s#tm)Jxc+uH1* z!uvnTM)gF+Y9Xk`8e7J!X0r*-mw&g636V@hHH+>Rifxqq_rD>NJKoK*fI)MsWDI|F zT~mkcWsbF?toC*Af(l70^M{bB#KU(Ku*XjuaW(h%e}n#3MDR&kSL}4KFS?W_xQTcPvn5wqICzW(wCTC$4JL3RX!^ zN=Wx-c2A?oB=ttk&iiso@FT)e-uJ=OAtpZef9Nq@O4AMWL7VBbl2N-(733}TJ3wc) zpKait&m$uyFz{PCL*8c$t9$0Jz58;u;@mJ;iw=@~>n3V2L=k!BO%~e^p%Te3AfN$W zdG>v`H6o>*tWc{ZRpFy7@W1bwtdkVFMG0Q6tJDc8u;DpL^39vffM8i>-)Y{=z7yht zNmN}e&rt&wcMob$AlJ{IbvJ$1{k#Wgy-R1B8HPfrhY`<^zXy^%Tx!WV) zq^_iWPNHNlpI{#%?0Z%&rQgF&R>1)DsV;|7(S?Mlm1o{3vd0?j)qafap-YpGJayD* zw$H(>O;5)jjcI@s@Pwzevjk@yd~2mUfj8aKh)ptK_e7r!YO&;b3~x8vG(|rPrJ+dkSb#HIfQ4<)fnICz70xkNNooIR*gNA=&XhKOal*tIS@UDW^Ht zmiWP9ssnBm9HKm~q~Xm%#=KnR($I24OwXYs+q0W*lg+eI-c5EE@)Kv3H$R*#Gh5H} ztpupdQ+G%2%tEo~rQ~9#mXhm!PAlq)_z>B89A_~q+YHhi~+R*p#0+8k08vwhF& zmyE^zN5zV-I$ojB2pkQoVE88|>KX`jS9+N zGW-eiK{C@fO!w0_Oimns{BihSeMfb0f0`AUQPGrCFS_Pl zpnG;z0^O>j>x2fh5{jq$={qcO^E)OchhM+z@lkyKB2g5M3D*jzn6GzcM<>Bq*(ECu zXIb4*JhlBCG^Oa6e z?5`Yk8#|URUi6D`slT+>SRekULNs^FiK8dhx2@VDRAw4i-hA@-fie1ws8H!I?sauR`x8?as#(RR{D2fF5dgNuARkBj z)}9cy3p<6q4CyY7OA>~5$5F+}EOk3Z$s(M=k1}Cf*hn^|d%8QGlcY0q*C5rc>);r; zyy39?ms26Sx8-EPlPy`3Z75>7{PEALhGQ9$W)-ej@n~4=TRvHbZyw(8@Wb#EfmtLF z$OR)B9t`b(Qtud~Z*8$s3U#=mVu08bJ;a7v1s@#V0N#1}+udV%4&b|DQ5+Yl)YIp? z{rKE1$EPPa*Swv!ld7kPTd))?HJgB*Pv+9{m6P=*@L4!9ZDiqa(_oJbPRNrxSo(NJ zk9_Q9wOB*VDe5;U^~(D!q=4g!81OnE4x|W7#vHmR{Z&2=Wo+%V4W#I`7)3N}>#!8S zq;mS>%H;O6ElArkMnHeqN8{zvFDle0Lks~>8b3W8msqKh%|f@K)ZxD%>Y6IUWl}0r zw=1df+HTs@F;2O9iSR7p#b+U!MdxnXSYcC=x;H(-)70B=gn`6}Ghyvkhw zIP$*vcWwqMtFuALQP*7|>Z%N&%nS>4o8gf`QNJGN{#;cBX$!xWSO{+>odprtJ3F}b~NT$+rJazg%r?OTmY**&U6qKe&5Ja|f z2{xgmyF0!x{07G?LP$1LxR&7;JuDV$QDrQ+M4UN1(eISqa-;t2+36jZpoyg@R>e}h zH^f-o+&AM3u`nSB5!-E^wmsFk^XgC%0d^$Jv^gmMlvTMG6$WeGN1-z$eN9vD798v^Evtj<^ zq#5K{*Ll+n`*vv`jTT(_QmaKL4pkslOW-k(uAIyK>|L{TkihV zmDIVSM?H81uR#D~rS#WSmZf;qN_zdFuN{cPcq)ABM*zm zQ*b?B!#pI^{E~u>BcoYSG|ks^x!N$%I;1vUukJaZO94HxVf2dQp%($&)6gM^=`McfW|b?$YrSA_S(EsP8;@MAU2vE_qJ1)tw%%)Lw17N};0Z zAaWmztIa}9(`|2V`tBV&r>jt|Tf{2(W7i&EZJovoIEt$ZT3rsZ&w+r3OZw+JQYFYT4~5Ai{3}b_ z$Hp7&s5tx|rKmO$=`=`??V#4`-6}jrD30oq+O_R{W*-FZdaxDri(e_flY~;9? zgf+^W3(0e*n+I6>0&m)nk+rQbnZKZ1_vs(;))NRC;}7QhDLzXSt1*sg^mjqI?w9c% z5qies!02QvBjzF2Li)S!7PXOISce}I3?UKb_%5~ViP`A|=MX4n`uTA0j#NkflfAQ4 zaV)zTFEdcv+F1hd>*Y4Fl%^L2)zCCMD2A_%Y}?*hsi`E0!|CB?&f-~58eb|{p$Ii= ztx{(oQltBu25LY|V2e%dW~+gTZ{7<|KTqIUNS{t_gO% zVEBTwZu8|l94*MuGa^$j``*S*Z1EKMJHZylgk_F0F{&4H>}7NwJ;IuP8H7#NfY7)< z^tUmJSzcHzPg2+Y1!vvyKf89-kK61ub_+3h9d&n*?bL!9+o>1jooC(fdqh2&s7EFG zlFgqn?^F67-$^wgJTu?m&Fwf#(r@MMg&}V*?8CHrIv3X9U?D5t_}TE=Tm}NhR9}`W zWm>$vaD=W}j|O=nQJV^8uxuneJq+n-roUM_-|rph(r5qp*p!Jh#nRm`v7XH@xw@rj z$ecR%$DbYQBDLsBe@1W2@fe7MV$3A^%(RSDq7mdSc8TQ4vL})5qK!tqT>mT{pngz2 z+li6aJTpU)14iWqXPlO_sEfqHVR}BO8Fq;h^RNSxYU9FU*PHS>_r%t zQN91FQ;A9lK=&fug^-37O8wO9x{a${Q?cz;YTZTToPKd!cWa?yvnHZyiOK|ZTRl?- zx5)!-EX|YXi94{yB&%_znVLs}+#C*2~hq6Wa;R!d!nbYDX z>&s2G6;JBZ_wkM0&JI3$B~ znQmMg>&+~0JFs*AHoew1Z@61o*jJOpiPrd3BlHPDYNvJ0eBe5vQxe4rd=wD9HokAN zQ;@0WAMal{QZ5+wdg(c>z@J#$T5FFVrLI9SDHa196pPJb;sg*TtwTl+&D$?>0T_P0 zJ~6)6b_}f;RZG!qxrE;%wyARx*g++mG0SAE&T}!>2`?7jDtvE!Gs8LEMFvv|P&)=P9fmFZnSlgDe@rjONm&pHVw)rAs#q=A-#(PkFjkhn39u z<+J${8e=TA*iDRXr^#WP(@fCzbb$qV#BD}qYYEp@CnZcq3=Y{CffJC07UF(2W!J0s$y7o{nC8T z9Sf1$I59cZBIKXasjU1<<|4!K4wvc4_KF&fdEiG>S=+b-+p)T|gxX7l1uquC@UI=4 z9v!t>Q#ZcDlw?uu%(m^g*=4S;q%Jhj(xQ$CHCi^_H+nXM+8{FgEGQ&Vd5ocQjeh!l zy&eJEmCbPrmd4C#q^dQHMbn^h?cQSkdA7BdswO*XX{F9wStQQBGhZW1ZM3vRV>uvf zo;&LbN2$ELD9>7PXe!K>buhl28X5CdT=;?U8 zT5g66*Z!(iJ`P&2Rk6b`9>CyjmVzPrmp^IYI2zYCC#)LP zTPxaT-r_btTG`W2YZikA_WDy&x>;hgZlZ1lg~mB(z4Ia|8pAoQ-%GVObZuR+imD8j zS16@q6%kWyZUM4dv=qZ~A(qYa(OfQ+JERBY9`XFx^3F~YZl=0K4SYuQ2Z5`r`ww{* z_3rGd16Q`N5L7gku@%v&+SKY=-l6T0iM4D;S(=kQEL_4Ws^_48-crPXQt71xj`8h^9**503GujRRQLHr;kw|*I0Kk*v^JPD0 z`D~7+?9w;#Hj1oXnO5F@wz5g;fhW-ru3W0J2*5B*qAP}CDz%RDa}dgHt705(i;5Uq zP6J@go;ytF4T(ha4U5KRJ~>O@ULss7y!JdYnI`#va(#QYT;?QiG*i%q`LrWxKGO?3 zC~xLDvLyXbgW*`5hyGBl6q9reG-UvBt4lut`F#1+19HdB=XRY%YML#)5lEK*~4`k5yDG2sp zVKL&)P#EyMx0wxM^Yt}6XPaeEItv4a8ae6$oJ*S)d1bW>$gw@QCK}Pd3?;t6;;cO- zX>*rdo#z|^-#gPd4i9KW1`G)hM@sn(RIafVZUBZ2jf34hs@6)Zf~L9_bz=cUzpvRe zu!cnIXoSt+8k(0@eDGIT=smk5MH@*mM!s25Wkrm<<`GQYL6&h}Kf_!OU*YSP)9&+| z7W-`n*cLG%!gBfQdn7wxsPpbWIF?Cl3z6Pzj1iR=U1>EO;)=FPK138^81(->L`;RG zb99^a`?bRD!reay9gh|>{_}~Rh{4!qiH`ISsR_s?_a@GLiZ0j&{4L)hVh4Bz`IhC1 zuYQ##L2eFyKzz?AWF{j2^*=$QLo3W0NiXpC~@Nfp+Wy5oWpm# z@8{$@;tN6~_!)VUKe_;CbK;Q@gA%Ks$4gq44F!1vyNF-i#IxM2g&`^YUq5+wSf@R zi?S|R?v^VU*a23gA+d@gxbiBAEtgqmEd)4teSoP#U0-L2cEQ_N6UgxI;5T%nP{JUL zjO7W#3teKnTd(+TRiSa9ip9$S^lj;p4?gn-928KYMZh#>kb3d2MGDI@z4iZOrw?@*o>ghk$Q!O|X1)&|xtfYBHd&wfOsP0yQltg^`#ab}hm5~HlZ z60z}KCw)%?+*A#sicU1g@FCD=O3pmliNcd|gLWepL-T#L~j_=I;f6 z@Qi1C6~XVMyL-}=Z|`93*I)fgKk6NGf(e46c7BA970TVDAunf*~|1f46aDK<*~ksW)Ns z;%%CcaYwizv;1^BS$50i=`H%i(cGXFMARYqe7e_&-@VM)-VDQ z>jhD4!_xDcI{k5aV2h_(SvLb+S9P?S~wMmX!zSk*$rfW<_Fu{h|T_ zuyF0sqf|E`3F~46sy5L?5vd+}`)vu^XIf+ZG-Mh4z%gZmIxb4(FFnbyY@PWn@IR?1 zW%su*AB=BT@Jc6NBf75Yi{6XwH&|{{1chtZM&@BhN3sN|g>iLa=B0(XL^8qWO{u+f z`kk2J12LBj1?7+5h1(Fgzk2O>EI-YEaj_fvj^hR0@2^^Ot!=!YTk5L6sd=hDOXK-BdT+Nq{ zu3r#khY|J>IWEfPxQ4`IGV)9}6no=2p+T?d%DR%zDFFEb%ZlO*h^-GA ze-3A+u4TM<;w;ebnF@^v&l78#HjwU0ZBd8$j zcYY5S3k)IwlE94v@PvaT>faRF?E+CHOS2SJBgIaqD66V!7bJ!MLKF#U1vPt#Xo}Cb z19L7(tWE}q;cvZG3KSaRxzIX#jfo`$MfL`$Vf~-KQ;|~KAVnjJqhNXil3m?KzW*<3 zJ@$3w^tafAF1tX1UqDquP2RY8=+V28(`&1N>ZNyFq<5V6WKrIAc!woVZ0F2N+px$v z;_FQdS?WB);c!m!mT~&;H`$evyN!$e>+k1{SCF`+nY8V#5KU+R=+_&Vx^WlT$&?8m-=?RwA}01=-~}DxqI6q=go%s0=$BJ$c|dF5s*Hxosu) z_1NBpZNk;Uz1%J=Z4%9_Bgp6He3CC$=gv^((q-G5cqbKoWG_tj(Pv|nDXIil8;w!X zj|*`&bIClTBz;dO9qSpe!KJp_D7o_oWTV>tq$jnCY^fwvys-mCC~9*J)cC~Tkcq9l zF|Ec{&Lepr3Bku~Ledp8lJ(&Np^^!U3oF}1g-GOnop6tf^;}kd_bZeH!yhxf0erX4 z#xrRc4gcC@tMH&!Z9}TD`|-JeMcXpMIL{2x5II#j0B!?($R` zM84xy0m`~VspgmmB0VE5zNS{Tcf->D!O+}VGQ|wJlOz5_4+CU;|WtvJ5JzQ+J8yJ3qek3wn8Zh>1 zs$rP??cHuowQUVjEe_VE&JyA4`vd_Lrl#&Kz-Bi<| zF%q<8m0h={S`PgpmpF|nAV;MDrni}1^YMql{%n?>>eaXN{efdbUsw@dCj2SK2M#yE z53=Kj{5(g}&blH{T0G#;vUwL9;!8(zKb{F|R@Tbq!TGxEW{?%N*s)04kq4>y+s@{L zS}71pUlm)(^*Kza@rWw-C`vyxp6g_ zoF7Y2sWL0UZhd)AsbE{wmv#5FyS3I((K{tcELS}UZrR?3$fhKE2tfnjO zElp)x?L_IJ?fc` zL%lHo)H?rQ;96KS=m$j2P4G=(N0Mbf-nTz0j3w8Mbrf({vfQxED2gXrjW(i|z2tzh z=XfZnlt(RhKVphrw$#$6G%5K&sPnD&NOs8=P0e)Q^d{3Vh-81#LS?G%Z+MntV}Nvj z@73zGg6fg{^1GC>f>sAUB@06vrcv+OH?CkAW<%LM{(f94@Sl>~kx#i@T{= zk*v*qdVGrxcq7J(E4UDPmX0Jiy{kwSoh-?NIa!Kr?SgvDetG$p1`Qp{Ep2m4oKYPB2Xf%0BxKnsFN49BiEH+7-M=juR z8^d>JrL!A(t0<3~bI_@@{+mrvnkgn}x|uh{I@|!K%E2(&orSgu^B%0$Vw*dpl=|u3 zjxe1tp~eOjgQg_=#eVak7s_O;tg01PQNO{LFFF%gXN$^ht-HiV1!)|&dnYvXF;A*g zpgdU4gW(jA|uo_1K;dS&YE9KQ?J(*Pj0+T^N3gs&IN`c6g#=IYZD2YXh zOXJArq~V}+>K4h|-=FPQ`-*hSDT#%K z>~D6jd-Fu!rGFZJ4K-)tVhMK!GrE!I4ZkD4h{o;vgtrI}G3+zG&?N9Ps16p{1X+7V z+5z6q-7)5yWLwu#CuDOw6??XYYzZ(w#hI{b7m>1`E6(Dw;eA< zVaamvAlBSY-kX(~3 z7ABV2nlyAE%i^w`WcZ$jUmmP?8*LaVb++D0aU|vDiff82vnaDo6_z=+hUxj#jmeg2 zvBrPPbS1;BEcZ1-tIqJ9TX!o0u7}03a?1xnL=Cu1#ENIBO3cQkMaeQ+la?+yw!CW%4ZmZ>^(%G-p1pdY zZpH|N!*5D#Agbaxs^T!jHReP~rZKitwdw7dlP!bwR6$vb(@TqFx+-duzW{WvAUZDf zj%D4FhX-h&hpXc%5QS0y*#S|cGI53QZ0=vRHvn};!Bdz{yD*nNP2Hs9Liv8uMg?pr zl}s~v3nNBm+68UWF6b=n()3G(aBn^G3x=aPfkRZA@JQa1#ygB63iUraUpASffM8dR66 zhX0OhH5sE!GoWmqw9D;eia7Z5I&n|_k~7bd*hssr7_-pN`Aj|O8_ql|Ek6XF9kJ6w zz}J562gmzAPx_JZ|hsjm!y}dn6JyF>PkIIGNV+E;NU7GjH^=73Ky4LVL zMc1(AdTU#sU%@)iiiO#+Fp15upq5!(5$ewHYvzvm*;N^Q07ww)b)7&lA2Cx9_<$6Y z`YT6u(6x=>=fJ{yi6}k>Xsj2gZbXPA$|RIzEUvW@jK`XU#zCSf2R7D3n9;E$P6?~j z%eh4mTD)~|u(aVf<{KJW{E#kuJqKa=7C*QZh~b7#S>ny_Y0#Wb)G!aJldiv{{{o*o zxIEY{cIBnn!~6Fg=!FrSfSTKxUvDVjoFrvQWn@ySzC<*GYIpJAl&X4Y^5RadIzH0? ziVbjY{I2a=4~oE4kXoHxUA=hcCzVG1S=)`%)76q9>w3jZg40Gl8MNmDd3E({l1e;M zkO8~}(Rf3#BuSAI%x00E4;P=UZ)uN3mVIPiIkpl>hN4NRlF{&xcw9IjT%T&`TtRPG zRW6fxww;qJt(s>+65n9Bup?ihkj_~50Xo}#Z>KZ*cw_$_A0g-ico>>R8wa&=r%+cF z%kE5U-+kO#-6^FzLq0}nsq301?py=*!c4movqgqcVy<0s=$B{a4cW4G_f2j1+xlc{ zFxTHT)s4ewd2%p!eZ8ST@aaZrHVpPOTcrkoOMP4v6SJU6qT!c2Gu!rU*?G~HweFMw zPXLK$^Jyra=o$c%6QUBjk*Bg&2RjyxMO|Ckvi*|nTNY2274u(r_Bytu8vWiK%iG4P zlGyD`Ea?-^#$I!^TdNicsWke%0}8JJD49Pl3WiV;dct<$nD8v&1;Tv{A=Jy72GV*@ z>x>D9sGn_O&AVgKPc&4pkoEEh8JJod@Thw<*wISAo#!rih~DCEV>Z(L{5je#>)i`pmAq zc8Xs{oJwEaEw|@o)=@lHS8K}}q`tT6hDqn9!Li+2+D!uCm?HCBsb`Q5VMPE2W`eum zQ-*?Rq@h@(gB`vd8k&lR$Ju5TIWBd{TSz5tYplUiFZ2O5Daolz4aE`8KK?o$!rnk3a&0V!4%ct7F~qv2BaXW&a2pHP)U_4?j=d zV*QN!_Ot&{`z&~QpP?`( zWD082@XecMFy6W2qRWEnQoY|j{9wN)PRhP_#mtf8k``;*hyU^LOsmnrxGI4<1a&Eq z#9n7&uDKc;W*kJ-32Nd&rsWP8v$;% z4dg;MjSau2Xj4p!FKVjNj6GA<6s+oY2$j;YOKS<09O4(cl7yE{i@FSBx=HF6HbZ)m zWjKwwFb+e1szQ*aO4OQ$RijyUD)pJT+AJjw5b-bIxJ>Q2-41iQy`9D~Td75S9!FWo zcFRHDMwep$5PnXXcbqgvC%Q98lgs>AgY5qlN*&KXqy43|$aO+(^euVyBy|-d4j1%2 zq)C`4_2>R}SCxV2+hQDKBVsk3^%|AKn!yik7>SNYU3$3=mSbM#(9PlZhTk)(%YbC0 zgOBi<?b+8iAs|{}p37c0ZG;)tcjffbFL=)rtK0)tR#oCoeP01oGTMR^t zMqo#;)UbL-cRj~jV6@&r~vuX!(AF=;C?CIIajZ#Gfi2L zd69!W3VAZQ3!L2Ad?J~{zq+Zdik@3FIKAWZ(Hjz5VK}!y9<<5xNSgr_#RbKb;qYsQ zf-ra(V5C^+__;`3r5-Y@_ZScez(&-93el?PC-$$tL-Me6`+=C!w!J`gFj;5=V#Nn; zmyjnG?%mE5-mRxj-OAM;m+LRX&x$j`gs>#+xnnYcG_Bgw&cH^>ILSMi0&X>Ft z-1SmG|9M=3_pkLP6r~m)Uy%R$FEx=(SspwjvCT`;p@XdFUex~b1KVwLt{BPX+O&LP zF!<%gR(o-=6*zyhlCyw6aC zPE8&D`0v{#2cwy!)taO?S13(Q9sn2PbsTuQk4SIMzzP)oZ`g%OOQW_TenKjFjg3ZS z)*>5P&hRsiW%!~FURqaZlxq;nMy26vOT5gk6vp>y!;{+LQ5{01IKEc{AJANI&GI| zHpFyWLBfj&gJx#T8!1{_^MAv8?gvz_xrsrY%K4Ul`aA0$b#YcETp3)gyOUdAv31hb zuLhz-%;6J%*Q)ZLAf`dF1lG2WnJUup`>=?Kc501Nk66Ve`Seh3ttikvqC!_~4UQ83 zo_n!9xpnKLjqkmOe|R`J$^Om0?&Qg>V}>m9WwoMu%NaP-U13qU;zBlKvc+m#3h7bi z5FA`5riw9|&&Im5<&yN17qD{Z9a43II)G8FXgaD0kWv5;BYV}Q{8ZT*1Xss1Kk@#d z?*tVTaA4?AbhaXwI@*?OqSe0P%2-vg;zSx=Ta$EG1lbO=?}~2~$Ei;<5Oy(SdG8D) zs1)(W&N@%e#(o+&8HyoBJNSGUqYpzQ$*9A-5OV5lrq7?s@TkmDoH(M>ZzP zxOe2d$WY*qJx_J0dvAwGFI+6wP1!;`!^1X!tCp)#V?QEVYGdCjE(m*sHweF)YW{{~p!eSTQdHSuYV)+#)f?vABL)5HGsx8TqhF*gGo`>H> zEdx-cUy!Y?r<)pENu+9|)NQvd9n$cf-i88xO=^uvfNd*D*np2T(ucFc-NIXik1~$V z=g7G}&ik7IZKO$0hCy0n9vx!?Am5PAl?NE1&z6FQi`XGH>k?89v z9=-lbd?_}VF9&O5iU^7&%BASr8k=PSfq{=>$0r`9ZwCMucqgE;+(sYUd!nwv(v(8{ zxS%CHL~ZBn)W;un>+?F6{6fX7bcO{92jF_H$^r7UD5SO$$reNL5a{$zn{S-TD=;i!vkc4$mkKZBbDtT$eb$`LD&j%9 z)r)gu8ZKn#d1?MBL|~392HtsC0j-?(>9jP*1e{I1Zw3OMLZZ&6&7jScr%701{2QnI zi+yS(%aaAl)N0Vy+1eZ{nozy4gb?Fvq;2Nw?fYX(2GuB`;rZ}TQLz|9pTSN6b8zKm zT&6zkakhK>)GYw(<}If`ud<2jE^P4)uzy@g5oO1%H}TTa<32DhBDbObi}B6HM#zWJx1dXz3t zWRyFT{@hZXhtkc)Pe5JdgyT7N$5ocSp~QORF)5Z)D!(t}KRk)3QQ_$+S&M4Mh?0jz zSCbxlgpmc{I3wx%a6EiB`-yAPGblL9uQ0mJ@EO^ST?`vh$C=t{M71<-E7n7-Jx3h6h~|3O>}XZ6ki^9B2d`QR-+Uuxy{AK=Mt$qu?3A9_%baiaO$R{EaIoh# zx|uh|)!S^D!tW|KD-1Cb5~n=Fx9=9CuEqyEo$?N<`@sY&`r*Aw!Q6Ph84^1Nj;r8yvq}lx5qNW%2Uk zKw6m~r^v*L1TH=C1on}(h-DL%dTB#gVaf#KA;20^~auD?OK`{B!m$_oo`US{e~uu z75QjAB<6e)^0w=oQwTQgYon;y z)f^cc<<>D0ZV1kerh+%+@=w9XgjM0{4Jpn&+#C=zv)3EY!MS&vmy$EP!k#;DMuGF@ zFtUlkr^)s5lX)}O(ktUFO)+3&TBHohUpsLrlvQh{Oql~So>9Kjp99J>1wMK%k!f#X zTfW)A!^+s^m-hC|py-5^V_amu980M@G5*J3GD?3HHpu{_GBD5giSQ|LC-v~@v#bCmLy@J@gu<4Y z*ri!^YNgI1d*JO;RO2w5Sa9veY5mRLg#XJkO&6cOHj@B&ulr%1=~5<2W-yg7jlmFq znR#vBv+rH*=|!trtGFFU$4>ZXEd zdf*-<(?aGuo38ua)k_XN7G%$Lk$hRuET9YOgFJYt@zBfa>P06!~cRcqsPIXtF z`^pm@dFqR6V;Wi~=gD{_|66+Hy+CFm*X9ftE>@>ps+-r&o!L75sWcO~+&(jvl@zNN z6aUdi9(gp)Vd>L(4r_Y)%zJJ#e8i`^XKp`e5aCc4*GbFPsSnqDsyk+vI(6%xIG}gx z*8I}9o_eaAJ^dg2R^i(48^dpGe#ShOO66ujIK=X7XG>0W#`(x}WPPL|)1r8kpN>K5 zd^Hp9w2Eig!zWAByQPoclb)Hb!fV{iW6JO`rBz8dI2uq^G|8dHj<4+E$2%JSzGFgg zpYIx8W+&X_M`!QMx?$9Mx%brD_ z1CS)4y5lW4X<(Q>+VK72%D6!vqBJ4%HY3r9rl6r36Ehm>E^*%nQYz|%%7u*d1qMAq zRdHq;j}!QHN;22t)E6Doa54OVo2sCUE%4RO0takY#!Hf-=$*SiN=nhV$z4cgYnOcV z?zXNdQqsQ!DOepoY_eG*`u%dMdsAcn|M>ZxrvFLL?`s~-57DEK{J(wAr*6IVRC><` zHy!++R_7!as&gKFWcZl^c>nY!efQHTou5`mdKY%T)6h4j}F4>yx4_@uG0qPFL# zij~7se|b7K3SNy(QUXz57{1<>B^ot}b2F^2#=`lzo&r&b8IjUxlTtkzUNgE58zG{~ zLLD@nndP~nM_mM*RJtBdc-<6ZK6t5Lt8jkEvJ;n`@hTw`V8q!|htCYm%b1RNvayW%NvT-YJJNVr>go$x51 zNL*aXtsyVe^Q8!*rc9h}G)uBJ)G+W}WWl#eo#O)hm9Q3b;D4m%)AePyDPk1jUF zMGp7aZ1h3Y=Ef(=Yg*}A@vOV^taJpJkVqiE|D`RB#vvBlm8LG9P$_Lgw?N}d;6e#2 z)!~Cx1xwI{YN;?~Fmv16-BvFZu`i)030m|6$P7DU2poit2IU}$*fMF`2=sEOiw+ha zmu1ySq{w$-@Hw$I!SZSK!bcUAS^e&0Z>AdpP;(T<9?hBeG>bJLeK%4a28YTfla)9I z;-O`Ic!N4tjco%-a;Rl1vVa!KlI*v(s-OJ}(%IRCpb)DL^|!5YTpa#J3Hx>dN_B*^ zfPTO(yQKKx&sHrRi8S7})hHgGCL;1%l|m8*WfX~`;)TF{HdJ)W_shDWC`~VLBWnLe zq9a*BhAK+g3}s$>> zEfA8$yxk~oHbNw2<|^NX#2cx|d8(5CbLo|@T(r!8ljR*@JpBHY+?iTEaMdAoY7&U8@xvDZ za_+L_d&Wy~OGT4Y4N#SOy}iq?xqn$btRT?8dln$&@Sp9N?@bv=Z)R=#!Ck%H{PD)x zgoIpgtZ}4VrIC1Ce0L93tVogvq}PKXF(v^TVRMT}n50qJ9SmV5gKST`e4$Df8O~wTDy>@DbkIJS%oiC&CFAU@VjmVss1pEs#l1P zUeR`36)Cz|ooKeZy_)6n&a80bWI!AjNCRIJBdGCeom>WD=(&?N$3)S3$- zS@WyO?Bed;__nS^{#`N(2EiUjbvw2yWXgu@o-f&sk_onVq!?N|g?e0~x2-n?hnb8%n z)HL*bo~pk7H8KiDs@xcT__2)q&(u}T*W486!$&ezU$V5Ueew1p{qlUB*i^VCse!Cm z^rykmN>EAyn5oi|>rVO@r0L^(BPlaRUIn-UCj_PyR&pg#l@BFtH^7bn<+Mz~?6l{L zHboxT$z?kk(8d^DTS(eopmR3L6K_%UC1CER*aZp|y_>zNVGT9xDQ%uFc zYTJ`+zzbJ-9`I~833Q}NTOMmvI*@EVSd&HDWqp|67X#iTUIsk<+1+~tDXrUi2>|2oi=8~^9MnhfhE2VsQ;CC#8x!}i%<5*dMu;N| z|4_rzAzOA1l;TL*-Yy5C5^nm4K9(L?ANx)Qc?DjN*#3U?#$i8 zM#fi(0pO?x9WC`4mD14yEh~bFno8pA(i2ElG4=~FE-22Y-L(M8n9srA#@U@kG;ah@~S;;*NVzf9?R!)h@X$J+?zQKYz%9w?$_IOo@923)_ds zH5zkgjI^5)w~TB^<~bf&2=*w|;)zm)T>qow)#v@ZL9Pex3hk#z1}S*Q;H>Kz`tgC8 z*|wJxBtKKzGL$qWjQqbF59M`J{7fbZl9{%s7}L9VPaBFjdh}-xZ988JT*0!-$*!)m zas6LpPi`fa6NeJ#5-+AXk0@tIt{g^#7q>lx{aiF->PKDvQEM-SOtK_LsAEV*x54(` zQt12QUI;7#v4(Tlr9`{`E3t3^OPEm74oZ>tZ+IBNk6L{{6}pGQ%9OfIEcHSeEp?{- z;KuQzSKMa<2Dnt_cV|RRdVl&c_3%TbNm`t#n0LMb~uU4(M!%zs;#PVZemDa)DSLs#=| z^TI37lw??LAL4iu`^DyQks?&7RF!zVSyoH~kN(G@?Bq(NnV(XX{tPP%9wlf=rtF>XFdZzGrIFx>y6U+^`w_htv_pf|A#m5NMw0OU`|GZfb5yaHGa#ZP!HoMgq2MWIi*VadgR0m%R5r5D?%lFpHB z72DaFtyDu&t~jA%;jM3Z%UenCi!Oeo1};(6`}$R)DPHw;_*Zm3B-2fKv?k|+iWHFz zY2ck2-^k`Scu9a1g-l{nGBBh6{_aiYp?AOM)vFx0`s#>lV<*{1>_jecCFN`b^_XEW z2GZ7t#3yFe#uY#f+jws=LZPunzvAg&hO0+C2{eZ2Z}!e~$7a#1xdn<`9#+8fMbF(= zo64rK=T9l7)+y&-uQc--sUWdbI9{&lJS=99IYP$Qh+mKy{T;DK z5b>%;{1Xk{b?4V^ttbL!n$Q zwA@)PkvRBa$Ok!vCUcKv^U14aUgI)0nxEf1PT^hu)biSG8>xKeI7sEe_gc-VOl|_V z?Iek)1u`bb^&-aQN_DR2Se&6O7)8zHxFA^*L})pJ)GWgSO}8v8E-sj&$iL;KK2Nj0 zynV~s{KoYcWWxdq#$w9aetk4BS7<%g) zcU`L(qfhacU7Z-NO^Z#-rT#L%zoyg`6W8WM2W>?D^sbn^v2Q98_22#qmQf$tD zjk|;F;rYZ8*=?@gqKO+#`naJe%BF?Q#Pz7*hVC4p)OZNvuZ@M8=|N=D2PguzvIgQX z0DQT-wsPv^v73(_+^=do)v8bv$mjB@DrySM( z6uE$St)hDVpyzn2ug&dQoZrR4QgPUO-aTFEQ=GsH-o8_Ap}F@@nIv<@K{L&n>kcYM zcr}>FyOt>WLA~HxA|B)3DAs>6F`w9(IP%z8ZpN9YO1<$5X7SKs_LCeT;H{JUF>{oY zcsF_Z3;nIr_Oa9PK{{{Ae_%F#Wy?%M7ypN#Nt~iiZC_aW`7UBynJOyF;1{c?&?M{J6KbgN z$^iTxHKOIJ9+YfP> z2)+(Et`dyiGy0$>DS20QTm)YmzxLm|u%`tyDOs#Z#4k`s|Aeb$E_xnw+|ac!m$)MF z?07zG=4Rv7KtYLN(x?)mHe!=vhW#zkig6>0;s+7lh3Y?rRkpIt_3MW#ULo&Td3s}N z`SL(hT?1o4Ho&B|dw+k>X_z9vFVi$-Gl_uY>FJAi-Zzm)V8alN$FM_WvI^2(bWKh| z0#rrSK%*bi`9K^oW2!N&jNT=eivt&N3su>mUlWGIA?PTxUy_1Wa&R##KgKI)it-UMqDcwb;@}Ld4O|SCS(`Rg|~82 zqDuK8DUg4%+q|yu9 zFTduFJ5HZCWZ8%MdykyD>I(H$m#^>K3tE^jf){Wom@Y4_Y;0fM16qEey?9^+6+y=2 zb|0DY3bpkEM^@HKHO<($^3kiGa%@np@qCRqYtmHf`Rn_(tFkCvm60v1O3GyO?zMfp z%Gn7&lSst8$aLT3F=?S3l*tMiIemh(n zN46!JKoH~QPX@%4uVPsFy&-QZBp5;>lE|HbRKQtFO5l3Oa2Olbb0Or(J&y}CVzKaM^1~d{ zXT`!TJ!_0F|0LN7x`_wkyjTRRjUxO?=*~5k0Mn~4V|0li2TkG!V?DZ_S1Ct|9puLL zXo0gwbHrhlvrSBVe^ZWW$h21Im$+N1Vv*$K=dtLN{;ezF-9foSY#X`cP=Ix5ug6Y_JlBXLrGl~i|$wK z17fRAP6_dLbfs&<@JY9%=<(U>4JmAH6XcyxP0nztq}F;ojg0BL&G2*pkn?deIUi$g z2tjf?!G{xMTXMn??UB{NT5X4$oqYTk^0I)K>H~Oq#nO0)h(jeR=;BAf?}>nFtkN~<+p9|h6h@!`Z!_WW?25_8#GVcXb~BK#a(=4W|- z(pSC}WO#qVS9WfjpR8uFm^35>o3;GhZcPQQW%{V~q!>OwB>2^Ag=}~1ucz{s?wFEn z*Z~kY$&*Z>S`k2m2f0K?dspIY;?^grq`g_pAJ)S*GWu8;^h(`vXGrX+l5<9If!N5+ zJvollQJK%T6iSnq{vmzDQNFxK`6QSMcnNE@^3xYqXL6=W<;#y?Q8Qf+n<1s(Q zW}8@yX;|6XfE1<3I-#K;7asS)#|+wyalpF@<}mOEJKHl^UseIMoU&oca&!2*muVWd zOo7vr<@VBnGu!45tsWV8Y9L_WJ@sc-uP&Bzh5hBq>cQdg!~&mR>7LsY*aaRFE-Y*x?C$32?wB{#%v8N!Zb_W1H99A1`QgHW!+V}>WcKd*y%VPw zvPRCy@8*G-Kap$fSUY=}4d9rMG0k)n_mSv65%y`s?U@k)i&MQY zR6-BT8Otu=#w zG(USvEQ1%7#dNlvYaT?4E%Xl`D+`sb#BrjPY%1V0YI%mr5gg+jMR=#6$}0JnJkY#E zLK)}4@`(l+n|@+jVwoxH?Ms}XBL4|n-VvDZ zP5WCbmwZ!q{|`r?l_z?(KM zev-X(@sr_;=?(CI(rJV2MH?Yggq@m{$!Su4g`UPtO)Jn=vVL_xFSz9BAN^<}on~mh zhmVne-hS-ZkA8IQ*dyUf8_gCFER;@<>qHO1zb1C%Fk?p8tP@4eFH~(Xc1&Xd$Z&Nq zj2;M(7lj+$UN;IaRv95VF@_-zeW=sYX1SzE@D3n8=jJ~tqqLRERm`O0wJhq|?d*uH zNx>-2ZHN;O8_Mp^92H98C#%H$G_rlwP43;{k+CXL)-m|aXFL`9m8_+R21i0+N~Z~A zGg}KQOLlrDNoJ$mswIuaDsJzTNK7_WSyaiJYP)k#{luq){KQf4M<1{GEsEg-qFGq} z*vBFG*7Z=}bu8MaZL-Dl0vE>sYh?bcBz6)DbAhfba=HBy7YAiAHi}G^VSjE+I!;4s z=GQwIjU5wm5a*TpfB_IgU=4FmYOx6l8!q8*`G%hyeS}1af|8!uw>s5I`N6PMnVe#b zYn*}kn{N7Oj%Qpe;IC5fOc8+{Mc3v`tB{?e zoQ`R5H795v8-2BDC}ug^t(R}@46-Hw{%3zTO975Zp`0SbL!Y?#6Lq#y%1BDN(VaP+ z$$|YF8zU_rc$O%27aiZwT;m!(@D_p;#_4XRVw;IE{+F&hT7z6m98ElhYPqs{#nz;c z7pl!$5!((;H#*sHx9XK<0B4m#lALI3qq*mS5QV&ym_>+WrfAl*6WljDC$jvuvw^rKz@{+KXo>&$y%7K*LD%jHeo&DCj&dAph(+ z`0>1{3t?uV=8Gg^u`8pDT0AGVpi^&0b`U2Z z>)YRX8*3ZN7pSdcQixnKA7&LfKzW=^DaMK4#-W5w?Arx~5xj)5nv7AHif4@{bCJ^L z7ID{De<{ohgra?628ZVH!+->Y;~P!Z&rKfmlf}Y?PQRLkuvKf0B-#Jur+AfwoKUQk zSR1XCokfMwdy1$rpsG5m?xhN1BilD+WQei?kygFN5NIUz;d})ebf#u7Pqz8rZ&n-K z`N?KUH)b0%QyaFty1J?exJLQn@AKAEn)|^FSA356U5MbubjHz-rV<96L+wKKM3=HRBz>3k3woz2in7B=NEcM<3)6rSwoh zb{)Rp>D*EHZ{WyV!4Ehs-MaIs#>Macc;7?dy?5VzH{hxqxxy>2go6I*Ps@_P{Sn}K z@JE~=$)EnTuKf1=z8zqi%*N^SFX2SP-?c378GY|T;7**F-#z-?`tFy$bnFv+lK2ES zB<@YzAF0C(nNC84tgTOOCYQ!kX<`3rZ`^X93u{3rBAzRcF)S`iOLR~LZDIGMr{*?^ zJYon%=uVW7!UE`_k3d)|wiiXW|2k zll|e29=V|ungqCViZ8#g%vY(@I9d!a0sT0vA7d{B3NmeUE!RH=C%E z{r1Yl(e`H9B*&bJ=EdgI6i;+MwHhRbr>9g|<{Yyi8#UD^w*U-E zq5L%9?ZtJIgX$UsxXn~JQFpeFc#C)4q(Rqq#J^QexvG4OF>qbn`VEwVE9~yOn>7ex zr?M@Vp0p8MN>#AwDOd?x09Erjtz^nmW54_u{B|Ops3+Qq#4u#}j3#7=l#Oa(fXz3m zK|wnr$bgVzAEq>W1#n%*R1|LVnp#8VAeTb_@J$JWH%fLZnGNK*fvk;Q`@Wms_r5_t zh5e6Vp#YvTtIGlm^irj7CZ{XnKYUZ*pp%}-LFmhaIaz!C`)_*R`}_SwVv|>GB9Tp; zO+1izGu>TiVAvjm?k>UfhOJonEy6ER^)6zQ9ETZWQ#MZIjnQdw|4)alEAnj~8l&Zz zNn8b8MmrlPHO4^62$jI?nm<41B{|y^v$g7Mt(`SQ=9LvHqHytk*q+*(Hbi&=3KDPR zs$zS$5?Bg0O#CHI=NOGJ%C@GL7xwKqxVq3N+B#2SP%^{Zq$26b^z_`WH~fjCxE$nP z#i<6FDXzADTSXRhDO(5IxV2mZyxK6KD!DdRIo`2q)Il`ttW|?*@BB8ekS1s3HM>xs zFI18#lXoqNx^-kLl=v@U)4+=5tGnA`Eo)Gi+zBXI{FRrhlx&%1&WVZZ?Oi*%bMK&6 z*UCv(k&Z#6`U?k-??2Ihp$&L3DZUtP1DuyuU72ibx2?M=MYMufaiAqocar=dDagvA z>1ck+PwN;*e#C9Wm*0_i7OjGWD3Z`W3Mtyck&eqrz3~oo2_A`6l)^)VK{wClZ45OV zHv%#mqYgQ+zu7oO4~P^Y+$ilA2TpTsu;oj(%mJoBN%n_{Nl_6~RWVgcCLKZ5MP24O z@8+9%8B;3j&gKohH!lEL$!eYjZ&A}8648$JVns0|#y8HNS+rH&jFc=X5xB*3yVozi zgWP#5XfK{!eeL0*6;Mrj{#DS-@@C4Jyk%kQy{FMTl7*XZRy3V>ufAF@1hy8W6x#bT zIl*D;s;f{osHvN`@(rJ_ImKj_SP4NuPEMD0>?XTG#3fGq!9%DQ0U1-jgXYc ziJ9U8+cW!vhTj`N ze>5csuEC!Jhi|$@lmn5(y6isJsJIT-m=riw`nZ_%Q@SZT((TQ2S@#gKdr0#ni?mrg znn~+tRwv5bL z%B~hz8;n$N^^pk9t01Tow?)bStswGzzkLluyn!F;$ufcqZBJBvUCgBv-{rA@owGaa zw1g#rx~!<#TE(OPJNl_wFHzzdd~8Vq|1K?0G!N5ryzzHlV3EDW;J7qQ=DM;a8HQXV z5r0J$F>(HQ_-VD2%2ZVmULfH%Ki9rcFRAovAu1=;Qhi(7A(mDXb4g3JQXFre-C?DW z5XD##e&P^$!jPuqj{(Y5wkU$Gu-bcp1Z{2*R~Y&O@`p^(s2)!vr%IjtnIUoRTqDAy z{1aAbkM`FyR6QCAvMeAVASv_puqa;+>+?_eHpHr~!mmK}m;S_K-xiQE=8b}X0k0U3%1pFBget|$D|H3C&c0SH<;&t${;HoQOv>05bCtQKN7wwE z8HZqTiEESDFC>8`3&6cZ;V2?n2!qx!OBvN&e6NzuCktemD(%^Q8y9l2?p(EZZPhS$ zs6}L!M2M{6lr|7i&O--|Zd*{4?K{>_@0goxI;v(-W#KJr{CMK3#LFmiJFRvt zMiBQgMVt3Ts?#wiU8ro#hG5g%91gZH-i8cTr7fI?m}&O*;$w@Er6pguMX;J;-Xi9! zkoJtKQ9l*neJi*7LURtmTt=?;7!_YEM?F_Y51#EJ-)-m|m-0QOFwN*7d^6CnVi2Rm ztMg3~kcwchi1qtk{7y-a^q_l!n9SD{;ZqNLt; zKeY%z8Z^wMH7L$h6vsTUn%A)2hUx}+3atz?%+Ayt^+lM(( z&|mx#3WfX$r%OmXa#q7qs$h|s5s@#-uAd^`d-jNiC|A(ih2%%c@50#lm?5E9g9yHe zteQod0gH3fB;I$8xQjjVV!{T0GA9{LAnXptARTg7-tVMU!3=iyh8)J+u(zHx1xYm| z5?fhseJgR$!S%KwTlf#Q2MB09Ckw`X_rcS)D+rw7ulE)>F(+{gy|uugt6NlDUKFtX z@WVD1#L+8Jp(s%Yg$hM+|v7T4RN8WDjL!qi2SJEcz|ko;Uf zg4{7k*!Z1Lh%9WuXE~)1qd-MKFL|#QPgJ&kQAolZlbu8flkrTAqpXmDIRXh&1R-r0 zBvZ6M6EijT!?giATDdkexs1U2v>^+?%ad6ZRQ<*bgk;)yeum{TlDcHo`jfU&lo6l^ zzAU2iS_^d9tj$f?B$}c*S|DqtA(!(4Z|D?kCz=&2XRvo9RkDEW&#%K0lNVL!Lk+pH84kJKBc?+*rpLKl1URYE8RW{bSnjUmD1Kj%AB8z%1+>0L&pBya57W4MxEr1>>ob-*8@xydU%)n)X6 zMPG7_J^Kuv`c;5K)zJeFKl<>+Zv#84yV%f6N$?I!uDhCqq=}IaaJPPt986ovI8^ZX z@~@ToDQa4U7Wg$>&$i0Yc9Dsl@)XAzTE?ZOm6QKXEhP&j8(e(k;kz^CfKNM`q=8SM z=OdTI?z~hXVa+)cD;#IvW;>FN_Vi7%h%Dq;!t;qI3{l>Ve`xsKwLrM?3R%|zfy^>d zPs>+aDFn2y_L6Hp@-X@5q!nN!PZ}B*Xy$~gih08oKTqasIX=+KF{&7?C0}_J%2b&K z8G!jRnY&X>g-UHX8o#6GV_xPJ=ui4MSy+7d;p3hUGZmkMqO#0q*0=fO!fl72Y7t9r zYtCIGv=Gs~D zJCb{TaXx!yvb#^^C>UgAMWweZWCdzzkFDtWpM77LaI zvx9Dt&u0Sg;9#O&6UE(KNz*(%;{f1fbWhWy#Y&0K=7-&@caTBmr}s{leOFFp3(I*` zH2kMy-|M#>v(;-;uPWT5p2jJO?JS1qvV>O98Plq4=_ZZHgvPRY!4^)~nMjG;iJ?eg zQDE2^ySrlwqfIz>FF;$c1?&snO9N&g@4NBZKihNAMY`Hlc*-cO7gv{GyS~2%A*|;l z-5__K_KUp(snk)05G#@{s)F8`ebw>HPi_nZ0gPjD65pxZ`(momR-MzFRHe}!>|0$v zsuKS`3%^R@;)1Cw8`<>yfsJQoO&uD7C}_?6p6N*^liLBA)Ur%&lN@%sK^duJ+ovJ) z=)=5hWKQnhbpqj1Wl0e7g(&hS9)pUgz#2g66zyIBNDrK}VV4TGtr0Vuv!H_z? zJjxBscA|YRBB~{GF@({F)bp5m#zQa6Au|53Cx>`DK*tXD%f!2Cqys&f^BmFE4M|JR zs$@kL)D7YQ>5>4rY&!jRo7%n0^ITmGh}R3G6p4Qm~Kk*;p6Zqp=)-ZNcwq#^k^{^gsC(+|+%PkAOmg9(pek_V&E8y$IF&7Uk z&ozn;)dm-9hRF+h&>S2-dT7rLwiBqi#{Ay%2bQNwOUt}(SRQ}tt(2aDgt5f}@n^*y zXO0}-czJtPRVF&!-3Kq%Z214^c4$o02GhOi0^)hzQWPbVFV8mzj++c_+jsC_tF^7r zM7Wi2Q_KU;l*csQx#BiYGfco^rPvYo6|$0aa&7OK_17$KuQtZxax46Is{aE*DBu=^ zpT`1Da>1)nloPu6tRdx6OwVJA2;oWvUq12jc3V*cP-DGuge)}Q43x6VAzI)HfwO23i zs5bq=9o1dDVc=@4YyAI^CwZ-k{GpejudZjVZYt7~> zB8>a2zQetdn;+(CJovk0uTenJVhx_SqMA~?RuNUBdYDYDKo7WE8TXn;22g*%6wdQZ@RG< z6ji4!|I>@`uE~~Capy}$ddCM%EhAW;$;zSxa*kWHT_}oL?fD--PB2xNkWsbTnA5Mn z$D7ysiK+Q?@=&$0W|=6J^8`J`H6Y7WHO}UXx%5V@=?UW9mZkvF z$+ojWotQeHcG}PF=O-xr3%1N6qaopxRHibWV<~^K9F2Ty`|O!~QG(F%d z#TOL!EgL45)=n4mfvUYq$QCW=WRohxynmm2FV{#E6U&L)NTm8k#)!A2JQjA;w>Lv? zc4uNMN8hiMH@6rnJrvA^vyz3KV-!^w>uw>qm>bRwLzcXf!1gBZG1b;#cn^z0Hxz+k zCueoGC>y|x1DxEubH3ZGq#TXIa=N6oRu*5hv^r(kW|D(QX+5Kunw{IWeV`--k@szt z%zi_0I_c@GR?LVG@PcFH1Rn0~>8ir#Ct3Mq3ugwDI(5DXZWz5p7g-Alr^|d3a#019 z3Qp_z;wQmDNp{FRC>E69Jr?!O#ay0DDT_<1ik$NDe##Wgyou~#J`b|_1rI{slr3$r z=YKa+8OTjaDN)J$SWqpj$%0(7cqjj?q-0^FsYs`~Vmy#LC4e<&>B@+LV`U0oNupy6 zYF!x~r`mXD4;c~U&X9PW#JyA}?>Lf4u)*`DY*Z_d1`_O`7ck zGm=~Kw7HO*i!u^Lww5B;oGrwaaea)Lsi-fg&JK#ROLW$>!P}%_XKwGV6R-bv@0wRWpi=;rGX=kxS#w5RqRJYkb9Mb?)JuFV-%!D?F$ zPPO4h$|b31%fr<(C%Q|^l7v1BC>s5(JD_F9}iyQ{>@FfC?DA8}e8ni36%v2H#IXC(u zuQlcG_4Q+3U>h8z8BL`pra9XdEo@dN(kXHVfivvD`wJ*2c8*U0Z$mItT{R?d4Dk7i z#KB`gVy_4r@Z-Kou}4yt?3B-Xh7zcvHu|Dm*EzKhTdl1hEX!Lz2)q<;8v%xY@e6-Q zG`DtfJlW^YGsZ=h?HYqsB4kkr5QxgDkz#N>vEqC+!v3XOUvCgF4SDKUv9x%dyEL6i z?(wbpqMcQBai*M4NouQh-PBB4#}e0We=j8=kvC+MN6GJfFNt_8CwUP`sqeMhPO&w$ z&}r72kk7e=YIAw6)ok9F-QGY#a}cCd$vIYVOlVleS|(-cW=(X#-=`#=*yLjV_(Z=_ z)VyRjyHb$I_iR1&C12W}?pd(W!PGo7mEn*%gdrNpFkX3mReI-@;jie;1U* zjLAxt{oT(o6%4G5D8YBVTDPIdy^E95@}^HgBajirlQBO?8yJ(InL_Chfu2#jf z0xg@-yViHOYeiWT<@@jBrM#sx9=p$;hLp#S2e*Se9=iDB+irX4^=DsyBmN__KlIRFKJ=G5fC}@sB7TwS#G%CL#Iq^R zGFBKIFSEy>pvFnfG4m45EpII;(cPdQxurqKU&FNiEQwm>WuDu z(S$5JnW`cJzezJIkOYyYl7%oQ8%kIS(nn%lmb3!pUQ}qtpVrBbFUaTRZBwE+wT(RR z{d%e-vX_Tz~#&Z&aIO)b6Jqb<2W`JLg&q7}5gvjc#ZN^L}mZ?=m zE@2F^2{S4b584KCo_8}L5xxRKFTJ-lWFE35&XO%3;)y}eI*zZ9f!4h`iOsPBIYVou zJx_5=WMEzqL{0ZC&G0i$N`h3E-E{RJ?R!})rLbw$e3v+k%`}!FZ`s9;t%-{6VueGw ze0{Q}io7b|@I#r(6dVfJmNX|R8#zC(pmd7IcClycV#>xE{dPau&_vAfzGass$V0^O zS=CQk6Zxz}ey(5(Sb!W7^~HjfHU!H;DpK5T5|RjkR~_=RF>yGNIQkQMw_4M?W*W67 zglV@_ZcLJCEz9!ku!WOB>Lcu@l8fL?JC!e|-Mm7t51A<|n@<&q6UT{I6bh0~HaNry z*z$^Wh{%PC*hv*z(|U%J3%R|yqAH}>70$V3I;H|PbIBBhMMW12NMxT-m%-;{c8SFL z8D7It4J+kVcuosPB&e6GvVa`&0|Yf$$Ep%&q9llzU17>ED-!K>!GhwbPLYQSX2X(B zO=;LsOrGN?)tK%XrY@@b=q;Ik_ttV9q>_iG+RdEna@?arWj2}4phkaI)gt`JKXSiC z;*-_HL1Md}68F#bLhKKu_J>9eE~Z^R^qr{RlCGA1Bf`EiUPEGR`{czseK(}ns0)`o z*_?Io0Cc=cbFRB#JF>KRY+|OS+Rvt9*)K_cPPs`iwRJ-%B{Thu;M(1p@0vm> zl^$e}YjIwLgMC{lmnpBb;}aq7#~+%ci}Rs-XYAJCLcY*feyM|Hab!C`HM!VXYE>z^jTQ=3T+c7gA6_N%EikwL zms7F~UF1L@OKvTXFpoGW;B0eSfA>(52G8Hs)Wu|}_=X!Dtb*f$Z#LF)DbXl698mKE zfs=`Ypct<(Fn~rjpHz@+q{^L@qk9jpZf{Ry5!JEdkei)TI6=?{L)!7-FYjO4Hrv2~ zE4o>?I+07+DJ;9`35=UPNx1X28-J^cko-aDnvL~b3W;Lcl(oV@poJk!zDz;DNGV~> z?N7Kz$QWOicpdH9kL_gvP!=y%?bE}y^Amo-E}r92X4JEaInB?}$!P+jd`yCDHQ*T3!>@F>JK--T+W{ZNdO!U>_gZcu(Pm0ggLsRLHaS+7hg;!H zkuo5?g+T}%3~x1iH728)0pP2yW(EsuN6rv4Nj4j#@VtHDp>tKqsCQ;oI!m<)g#(;P z27a)7<876}H8+{5dimJl>lFPNM-MCo0Ndr|`NQ)P=UV_eolF5DOv2s%QlXK#>TP!w zRO0c~x=RO6U7xS-8j?}tjFg^D&+yNC=8cCB6nUX`>e%1hAPAzHnZ_|D`nyd3;1HRq z*D*ZTT)1_I^)qrIe7J-?H>6>wzyzT?b|zw?{0f6!hC%)+u)=HZ2VRL9*%`ov491by z=+|`Mvuw>vG;B@Ia4K2n`U7`TRb=Aea)RLtf^6{r_s8IYsxXyJiH_SMyKFvX=)Cmz zoMM@K8WW|QR;z14O43B`Ven`9A6$En+ty_>S0x*ks(?Qal;pH)_%a;1G(Sn%aZ>^D z^=t?9tvSt0;M zK)Syy%<#u#mCK?}aq$CB^w|QI3`!{ZiI+B264T;{ zA4gJ~FFkt!-s?q$6t$#AHIi*)xFwJ~Wylzi@DIw#>}Nkm+YNpGbDzxzQUoGZjPCZ) zcYNxRM}5^u`9t#Y$&iDPT4<%D(4u0fH588TZ@>?bnCf`q2Fk|m%ni5nXZleHgT}C# z+Da(X#5VnW%pDlD28L{L;UezWBle>HobYqUyf}<7UiBgy=nH4*s0i_>@N`r@!P61n z!II$P@g+`_R_&UyNbWDhve~U_1|Q;S>D{>a$)7Xy2-L=}e=QzyK-F3|2Z#(@&Noe; z``l+UNqG~etJOM2DB*5&YMP0J2uv&mxzB#?-+$KV$G3A6b4~F}>BNvK4nC10z11H# zKKyJ=dK$R1qls(Kp}pFy;uFz(66b(yQI8R#|By7b#5(ee`Nmj@ely`p)*E!Fx+ps&^s~rJ z-ZCb1$%bPP|6KOWfAGz`YnmSa_B(QcB2=gx8XYt6J;Ojc5Rja^a9=Jf*x&S`aZpC* z8Mcl8>K|q|&$D?}j*2EQRmO$tc$_ZYhOz}I&cJNtAV$5dYD@$ z$Iob^5<+lmWn9@}DF#+?j*EYjVeWtpNGdh0f#{w_-BW^{p0e%1N(t525AI?HYFy@@Kz#wF->PJX@+ zC2qI2BT;6}5MW1B#r~ z#J9aeFd#9CSg!rS({H)s+0VY?&O4qBNAJ{3PT_Xkd|#2$4G8DH8h#An5}ZL%d(L!-L7XK+tx`iv}n(m4!$U++)cx-M8dE^vACcZvU_ifZFUIYj(It({JLpK@fZ9_6|=88zB4 zBBuWexHjN}qyjF#@!L6>>=LGmw=b7wW&oeI#TVXJcoXCeq6)lH6sB_h~) z#6VK;A@OqN`nc=wC?N@nJg?6<>q^2x7~uiz^Jy_i{TSry#u~UrmTrYr3%y(gw6W>$4{NAHP&ZVG;Qy`16Pao zPbOOr96Gwz-mY?bqt~AulpC_BLdUe7z)L!TX~{C^^E3@rY7Qhj^G%v$C9|$N`eB;K z?umo@uea=!?AI3#-*oWq=hRuE z`a!*J9+H5rQf@=0YqSDc>YBuNZXC{xidC1ir*qYXX%(Rs}eE)b|vlC?{>zC`nY8NUG==RhNrq zt6qKf4ia1y6s%S$rEyqGgGa&=!dM4L@i~qA<(*hUt-4$XgfxmYmbH zjqs%46Os}r5-yN$RLr9MC2ITV7RgmOYRQi8&f&4(ND$1%$KlSNd z{qD4(H|p2-<|jI;Jkyyw^*F(>3yeL9UL@HrE7S|6-$Sl@^gro$8@8mV4n5ntp&E!U znhN=$C36Y~!VHRjzvCn#KCN3={fn-K`WA5>&yRwEHghs7VRTxe_au5Fx}CAvSz+1$ zrEZMZuF!iQc7)xn=w(a1Y)*4|o|S{vPH|@4Quvw9Ti)y#iiyFl&dlgf0VI3YY-5|H zK>;9m`F4kxMb^bmjs(2JXJx_o^_O*KcoF#;u^8XAD!Rm z@@tHOP3)?%UMyt5e zLj$v|7~Yf=1jpn%6K6GnHRucZlEhyv@y>L#J9H9D^HUN zWuXHj;)4G%LfCn!j%dZ01kA6bp&Zmw@ZG9o=E?cUPNoPS5=>LJ(ZZcFr^vdL7T*9Y znQZa3QSE>u@jUiUU#Zf2L8lY=yPC|6UJrS}c`2naF=P|zuQW-huBTMypMHn&BeW9x z=H>y{4{Nvl0)b=ZYWKN3x~<{37cMY~`>*3y~pikixgKFm|Gmek4H=2Lds z2^!@fWg1h=`E>c;`far}->wV)f=x+7JWcng)w@>bdt5RlKkH7sJkes^WVf71Q=u1n zHe`I4oEwAvl&Ko5@@7yk1!>Q3 z{}QToInT@^$#nD8X;bw~owylKiu)0q`z7S#j#GgP5@@N$RIT7zA{DWZeclfy^u$S~ z2vU#A452BiMbnK9WQZSP(F-d@T5)BQQ3CbDs$y8pj2)YZutQ*^>2>zO`^8$dc3C!s zykM%ls|zkl^U`#+;8>h46*Y#QFM6Dm@A{rB+Ipa6@)GA2g^((^lm@U`svv%;;WMvnDgh1sE$Z**ajmRw;k1T+SfW{Jr%pZJ zapPW%ab9hvze2Q8lwg>Qa*H#-V*L+M!JWxvmS1fN!sPZ!ea_VNVs3At1m1}5z0FZ* zk`H5=&QhH396!k%2L9x601GvdheC7orF_0FLO{z{KPgqp!!*W&y``GxLd*FI#oQCK zlw&m3@Zm7Xe##BJ>qs^Re^eH{+EKCS`;yIbQc8(2XFvS``~ue^e(g-0c@M3Q^H?nC zU}z0!JX8*Gz@gL_=Y_T@LR80YE(KMAd-ZZ@qfk)+$eCFzc4p^Rm%6iaJYSddW0B4%5Qel3kg{kUIgt+6+9HOwaJS(IY9p(ObBsR4L}Kn_uqf zX)syS$X;eiGQYaALQID{`q*Iup=6_Ws0(1TRBaZ>A|M+e7T!p%l_lS~r;|+TVwy3g9MS$M zW~nKFHfpP+Ab^l*?)9$&ZMmUwYX9Qz%o)ev_KQ!|d&qdm7m-MU2-+7l)K6boBu*sw z82`d6av~OViht0_UY@<;g}i4Nqjx?08NjbCANKMjiqwE>qDPVL0##N`7dz;_BmVe} zpTsnCoYs(^-q)4Eg^i8TXSONKtC!1x{IBwg0)gZzDR71@N0oTyDkWV5WQ835(T|Q( zJT_JfN!m%3EUNNbVWG-;6{A;UjPXA+j8rMnOe`jjB(91*#n|&BV-q5za5*Z2uF`%= zN>2l#;u?veI$#|0v_f$`o zU0$^?{D$3fWkgO+qDyGyAhhrg{*^C)&csx&R+9huUl#Ab|M!z3`>wxvTWGmrp=+4$ECzG63>q2W;kTjiT1-H zSC~()Fe~FRG)S0IiD4ZfX)P#|IT@whQEu#@Gp_j%-%jDbREmY>`C#}-GJmbgd8Aue zbS+NXQl_bZ1J$IjLnjSWnKl;He1~eiAFQRz)L27orYGb#$hI0t;LBG2NRkprnE?+K z!)<07R9jriFjtwx9-^^l53icQbBL=cUHsOuWAG1Brcc}4cw2HMD5d-+zWhG5Q7Fq0 zoS|)}jXBlP+Bu;(BWAoJ1x5&xT_!#t?a~&rHZs4&ak5*OSQ1>nq2G?gY$>iy zqC2b~C>nB7#e&u$;~WkFyvLO#NNj_cY8_G-9i>lsKo@8p_pNPD6&JWz{ZLqhVK&tsxG1lGP|2a z%yWVWX=Mtm36h*m@o@W`YYH6S^gQ7D4f4L}&TXgfB?b8LkH{J(UhyNULw%!i8PU6v zqGYw?TQhAzUz*iyVyY0uJPOi;ERaCX+QMqtuL=6{3_Zpa=mC_;mmIKv&QMjZ(*Ckt zF6>*@xoad|q@t95KxP-TOwsj$B=XWVR;jQrU$W@?5)8)g{{O_i3A|-jT_$?g+H2T* z?Rh@)Jl^@9J5|-Ky7$(cn&%-yWgrPLfdrC30tCnaVG3X*%tq8l6q;GOpI{IKg+?C= z_%NdI=tiJXX#oY)h+QYW*4q1=dn>6RpzqgJggV2X&Km#2_y4|_{|2JJ0(b^JO9ICZ z$yw@*bT2*&-=8UE7I{BkmTFT;foZwKkJRR>LwdqdcPIG8As}&agQv40{xiz{@i{cN zYwPMUbk(J=Tkz2S%}WcKKG(W-i#d3Mx#x~r3y{g~ST3K7kI$OmI&=1ToRhByZ-*?% zg$3KohP$i1Le6m9w(gqD6lpy(D4_y);F5c~LMjFUb8hB=eTP=27Ab_hTdG++iu8JTC4#wog9*+W^&{;4~aCAkt7GzkJ*-bt9a`ET(PL!al2Z=cx`-o!npko zqc?HM%JN~u3=Bgn7|6J1?F9nEMDG=q<}Hix-JU$8I-NN>c4}eECd<{apF49O^4kuB zFS#EHBogDZoi(eME0p;dDeRV`r_LC6+-~%yC$95Zx9{9OrZYr<@zS*y z*}4iezYFGC4tvNU3PN_fj~1@orD|D%6hC|VKB(EP0KMdXs+*c$^s9}LE6M z9inFMk-?+BuwfOb=_m%{S)^934bb^oXyipEW{Bu?U!ak8=WjjdB6d z{pK_PwA=6pd(fE39Ifoz_j@OQjQ>^Qr)`m_S>$z&caO7!Z*FuKtu%BFx7pX zSqR>Lst_a1f)r6_Vb61(#b4fwb;E^}YNhv;Vj<{b-F^G*yqEN<7-)(BjZjv-`Sr1C zVAV4&zv})|`ADGW6l~A)OAvMR+g`@)B3T=f$nFs;6`8{s?M-=-F3I!exIdNmH)b2>HWeiSNw{lJ?lAp76iu{v@{eKPTdbtLkO1v zZZ9Ka@XZ+Bi>Tn!q2Tu0@8<3bRASyn8l}+5sVd>8&)Y~4Fn}n3>i(-PHv-!ZjMv{> zWmLdI6gsMDP(H0JWeS;@q^2RsMrP9RMXi;t5*e}CWMuVqO)eN2Ng(uQXG^tFrVgL5 zM-;wR7RUU-2M6z(FGPH4fZ*trnyL&wjIe?O_~8H{0tX+0%;vsOwhUo}U80@;BB>lG zh+=!aQR>uk7|vw5FL3@#n$GuX)wgs4XP}<))%-HI{g3ncd|T%3OeT4_Z3#4K1y)j8 zkCap~7}c1|K+Jq7r@D|K7*cUxAf_fcYm|*J^;Nh~6COeWVH9B-k=z`Ly4JxLrlx1h zbvAymN9p8_27}OYzWilV<&6Py+ww(=uk+PHs~$r*H8!kYDSN@$kbh zR`m&;R$2l}K|6J<=R#fjT{Ojx9?L|T9ek(0liREx&pejQg~pI7Z^V%@3+fxI0;bk0 zs@wDHh|-jjw$<)j$Wkdk$3t9Hg7DkGd?+q}XJ&`aZjc5uhXO?j=AUfHI4&g#u({E- zhcK+9U}SV|$^gwr^$ET>IDvpL0YnYY5xLS|_F}$^VKdMCTzurxw(Bvh8CH3$(e6$B z!o+l;Yy~r}b^eS=bc<4~o=}mhnv7WB!)DGBv8U*g2RxZ?7LWm~79JID^5ABdIX0mN z$c`CCtvkNCUTo)V&k`)M0J;Ze`u)Z6ouz{7!k6gOnwvKXw}iQEdtAUr&1($ql!)i` z4FdTeRd;mw|L{H8RQUs(pjhYTH!%mKZ0U>`S-&>j@3uNho`nYDn|R#nhq0;$<=X7x z&WY~Uo=yKn{(M73x)q`a4qs#-GIJ&*LXr42F1L;ax znX5__-Ksx_^1Ec*AElCbA`5UAZzHH`rm%8?Q#TJjrCN#*6)8<43p~2XH8iC% zp>or(YB8cg8lN9T+^f`telC2Rul!klkE|%VbD1W|AgJ@A!Mn#z4Z#G$$DIsw9GsQK zUO-Va<|6UPr=NZPdji9uP0bkjs3W~HpwHBdnQ0Z57_rZ3O28LUM0<-4W@0WUffSLG zHZzsXZ02gIBKn}fgo8A0on!*2Oa)6#>$GSO*GFlEG^K!3eMM<)&ZYb|bmXVDhg~36 z<%Jc1lM-y%TSKL&m*YbDA#$MAC(tCfJ; zwmrX6*VSxm>*g1ZPZ_H1wx@RV+Kq8VSs82Z@q9{WzrN0d0@Zw6u$bANMWN$FXkk1z zQR&SdNsAA-24X;s~{A)e*4|gX@G3Ztso#w(9(frhouu`Cm zltOmRS+7;hsiStJR%ad@w0z{Guu6mIMeN@8a`4%?ovY8Q)I{TL6OE@s-G1{F_mWiB zt+tyhwwtyc-_07n*mFoeE^TPMn<`74`Cn0rH9fH&2=AAQKEystyC7+=eWG^fr){sF zIQ)jKMZ-oiVui;r)a~SU*{Jarq$tu)+k*5%Pd5x@^ZlW&n&({Z5~?P3+7pUmh!vi| zbFwYz35aR-r*F=u8H%Dc7aEG{@v9Q6tYSFPWu``TVw{7+rk!XzRM(!`zOVWZZC~>5 zD%JU^8~tG=LFXvP_FGSF^jm+{@*G(rqXj=pM@aDaMLXiqs3<3?y!jc5aum5%6w-C~ zil{#8H{8!Rk)Wk1u)W=pk_s@<4bV+^6klr znlzs3c)jV{n{%#V?C3NF6$_nQ8GIX09-IQ2X4V!_B!Jwr6J8Q0cO7W9)qe;Ke@df^LPLAFw@WRPcN3MIu)z|JnQY;jTNBS!#uDSV&Gq>m_xOIAF zQ?KA~bBwL_14}T~T0wsm8snXsxxz*If4MZ-R-vF|Go3|ZMliN>6!ST6iOL?KLI2tz|9YufP;ID9{!3~&dBN*nx z;NQdlm6^sq_zR%{WSLO^$|(8#sdb}Z`c<0{qkW5;xELBEtw`A=C6 zc6w#Y9`j(fxe#UvaLm{Z4CceHRvWQ0_>-?}_e=t9!z-DGP6&EP7A~wTggS@}rhtNbO=VzC67UH8(@8kYPlN7P}g{x^9$PG^o}u1%EHpSC40+LpMzI4W06 z<(ca34a2K-v9=~D-5({x;*0)K5i{yScp67NVN+=K~0CRe(~WeO0J?O_rlh=u6o(# z_Wjr0wB^RGs}>qod*a|#TQ?ovY$_KS+(Xlgu)0VW)y2>?o>Gva7* zzWv%8UU4_bJR`P&5_{Y|wp-n6Z@%W-=@p=>B&-4ke=*Q?&16dt?B2i4uZP&&cje_D z*<+%?HO*^g=X(Y>Bg3X=dX;jovt<>GG3;XxlS_tw1=!d$+#0n)D)0#^Zp7@q~E%RS{IwS{P$MPf!E+R^m zrp38|7YbgO1z)gtcINr!1nySDU|(yZn5SVhp*!Ymz5EuvTNdK2)sTMG!?adY>>w-^ zbZ&h{Dnd?t>1D>F#*Nnn02DlpQ9HEr6@wXijbd*eP{CB-o^)p%a7n3j%Pq_FtO`Fd z*=jV1TC1F>w=4v!#p6CML?$!*!uf9+M77v$&*QUIw*!rDU2cK5ma{^+KY7FnyqrL8 zGFP=3s*m-ar&=m8&Ym@i265vS-!fS$ehdE znz=jkQ09@$e;M(!tFf)$~sL%eA6Xlp;M;`Ie9QF$Y_AS z%+}Vn9$T5)s;aIxKC}1O4VAHDySDWg%eDF0-#q6uxtFBdI)q?t&9_fBTIalY2n{J}YH%4@#@DTR+CV7w7%6awQ_20%x-;|q=)mR}FnG{cQ@ z)rOWsMoxvhTIH{qj$vqu#+a#^Yt7=9n6EKE%GL^vEPR#HQ4}0iR_5;Azje=nwM!=F z41{Q-++W&r=*%tW&fLP_SvM*)yIAnPux@KF!~Csbs#yS{iLsIacI?%;TkU(fAZH`; zxAVQyn6YP%aeOIKAUd*@Y6^r(^pbwvn^J)I_Hk%=UN*=&NCPZ?Nm&O|-Ad#+K~&23 zxL3#~XL3H^o|En8t373%Q?mp=kXhv`k_FOq5FO=7=7z3@$doLmL_JF*Ja=R0YX~#= zamQ15_h&!#sVx6dN%Rp@|BpVIQz=mbK8+B~e)5ytxq#4+p-DCO$xr13)JBKzMMYa7 zM9Y0LIo!+&-DvFpp*&tGg~{Qc%xQ!uNpP0mDY;l;%L*>5dG3L&WPV`-n-#qnoz<`e ze-Wo>+jUN>#EI=FM| zWH)H^U{lRzuiCbKdqRFS(S609{hKPCe>DY&cxsA2re)zPMU9KzPzgK7ml{TOL{Bo+ zgrD6Lc+0!@T{}H{Xxme$u~urOxvBXpe(#gpwroCbSaHgZb!=tJl3^@V4u1zRqEAf$ z=GtYVoTNzbx?t}dBWgpZ{3=(vgbn?H^)@{E?{34E45ZZ7o2&lsYpcPl9bfY?Fw?g2 zZhiT`uVrpgDh*8;wZkxnGUVcIWEL{JGl%4g`E-oDqA~anuSg@aPG{v9SziiAKD}Hb zAz#VjxutdoPk~SghDH)MyJlunqib1SXr3>FPfOD4HD=GAG{^aZIX&^m;5GN$BVyYM zWlm61^MfUzTc)d<3ew@})7N}DA2wgmnw|G~(sv}d=KbduLh z{Htd!d0OIL@DYz%H5|iVFVw2j&%E-S?MLNOv(~ApxrXIMca{-tIfM-d1n^ zcXSOHdYaCrwxF3TJwK4;XGZodqwr(q` zZuc+sM~6LNZ#eAyx8z|yV-%i&hO@TntC;YuLTu~)0~R4H&vZkp%+6N$mcwFhU0Ji2 z@q_pg6q3fcP1ufmcG+5j1AVs5*kjXd;lzNL>7PD^Sm^J+CrWhz(U_}<3Z~7MT2Rvz)7`u#t8fGd1kq1} zPuGy`BwD85g@35@xFwSr%Jj+~o(9ESIq^g=O>n!))(|QFWE)!n+creV+%$kD(@Qcb z#hd7R1d&sR4E&@{TkqMQ-2K>iaT}_E(&lc!sY51v%2@ihhFm%_9mWr1=8HQ3E9?9q zpMxS5^&w_nA7eK3m9q}kepu_BCXsqMA__#I0@QHg%3(PUW7ciefLw1zxLG(;TM z77{YIaR7cZaLa}AShbQh>~8C9sXBN)snbR`$SGsNSUd(Uo~_ZC1I51yehQa?hbIcdpuo zFcx26>O;1Uw$QugU;h(of{!#%BuFiy-0`iu5bsR1YwPh`B!=jp?BBm{@RtxL)?4aK-2uuMqj%FYnvG z4|GQN|1A6!+y9bX?xYg6S08ji?og%2=$50eNr2A6E? zjp_ZM^AJ2Ph%|R>6AxxNqM~%z729^abN?GNLrrs0$G;_WhTDC2WgZYMkc4X8kc|3Y zIDSv!i=Nxy=15w%g;WTMxMAXxNDpLK>d)7dcIsw|wsl3}2-!$Cjm06DJc(8Mnd*lV z>I8sA&D0duO?T7p4t|`J{6n_fQ*}$V4H7QwP+ONZb+j_gRLO?J8r75arkOBBTZb^N(MjvT30PsTluPyWQW%Io_mYP zu&hG0P%z`g?W9B+Or2Og%oiUUKau(K9-c1dVYV=XyWr7YLI}MdDiA0yML~dG@?vnV zUC{?0xPUSGad7g<)X;cT6Hwq@=)YRx+iv)Zk-s|@9H9NSasKamxdP)`&elt^ z8gD^92?WR(?Aep$6HWz)dE0)+rJ?C?xs9BvP4bR9X!3IVmJg zRQ@nzX#vXXZ8Nfotb;Z*xraiPqX;E;ntJ* z$s!XEv-c^)QRs864uOsdX-tj80-rNNn{U*$N%a#K5))s>260%Run z4?O}->(yLEQjVKC zw-dbLELr{S%j>!l1cN~N#AkLPUh9@v`Y-&;? z$YB~gMFc8lEeCD08gqZM)le(FgzHTi@pUyb-OSRuMp3%orr4KZ89*WovlzQI7swc$ zfJXCv!1c%B-7kA|lcQ4Zma>cI2@3jc=s9&_pWmCgLu zLjf>p#Oiw=EZ{kV55-y*7an}C8hVvOgWm@G2bQ5Iw2W4B;n6UZb3d|Bo;K&&&+d6JQntnJlQROUvft`^2rr|wax_?=UQw=ayEa=nIdG2TW zKPPF`A4VO%n9k2@3SmZ0je{A}w)^u848CoQkL!ljnW!i)z?1WNYpjqn^kJLs;%(ZM z^@!JGZj(wJQm3$=m?32l%Ho)W?{gSpbcdwSGT%xaIj)j|qitX)2sF=M5**HT@Ja$b zlpL61fr|O{lOh^fo;ZwuFQ+-4&KLj%K#%XfH`Mu{nSZlIB|F)cF8%7Gb)1j8+yJ9q zWzi8;fl|!`d`OD*Y~O|ACSR=nE&wOis)NsI_MGk!L^ai$bTtE%l~>%aBWQxaraz*A zZ+;?ljR4WB(htdTf$ru@-@;pLjX?ZAzr%V9qMM0Rnxzv^ouH-c7+;_uGQ5@lckp#4 z!ax{n7W&gK091)o$LwzdTh?kwMTq!%RwEcwqw#e>p<-0CLNuq*eg~>IxjO=($v;VA z7vJY&dzz2xYckKt+|KumR|=(MS+ODQ!69ARVxkZv`L>f4kK#iv4fCQ7~fIk&+(F^wF`{{7%?Zi#K_ z2scQ#3ia+}Z{IjUijj>9qAE%46iAAcs~CerCMrf1Q|=!mZV7&1Y-T$YD~JFuTQAp2 zJ)-(h3pau1b<5RqBi_9S*_L;hko zO~1KZEh42^HVuyf1h-Zi2ok?^BQ)AjOELv+D{Wf1Yle3z z=vTT|UD2Gh?MiQaTfV+J(`W&8ZobqmRF@`NT>whW$+4XbVl`Vk*I?PESpckF)T6ph zZ9mLKy%Tc)ME)B1_Hw19HS=2_+!j^be6_b_={cP-9V@g~nuct9(IE(Fjne5WC(B@g z+q*1l=i?eGsJV7w<^Ybgs8uw=yq{xkv}>waDiqVTTGp_66;E8 z?}?$>kVUth6aZNUL;dLap%COc?tqVGy7APs4)WhPwb8lAsZV!TJ|QX_GN41G@^;HG zvB?^a9f*bz-I_(!r0XKw<-fPy+ zeH4C2H+;>o_<8&yNF#C4Ny$AOU*K%;4OJo3I-=NA0K0Q|%8Vv}?IbSQ35lX=`x1b2 zLsb<>HGM)SFkzi!ce3Ga#5qsB4O*quJWDZb$-Op?g%4&J_aNGQ@7^J2NFuW+_L2*! zQu&-ve#-Asdu-TW)elwLj!~{?@DDKfW0Euw87v6K!=LJ_z;Oc%J~#S$9=MP*1!707NxZ{lQ;Cx{)iNzbbY^zRoK}m;3nC zG^$%(|2oeI4Gc}swoRmfH$0?hW?b&oH60r^CfR;elB&Kq?pgB9#6_?K6jZT137%Z9Wv^y7OO=!v>3>NZU$ihF>$|0!S~G64;VsC9l*Q7W7GDNJ z{`G9*2k7PZaRas87nS|M7<|V>>fnzwl#SXtccb#R^`|h-TqpU#4YI)mOK8ku8G9j#GoNr9$i!Jf76JIq z{$91W%==y4+WWW6FsNum|MQR5jy~Dk%F%zMZb*GH_<@Ht1^SwA+W~$b4qZ3I@0XVE zQjboYe|&=WmVP?J3$#E*z60PmP`OQ2$w8&j{#79-+GNO}hHLuo6caHeI8FKRe^2RU zc5~l61BOZza`Q-3=F(D@MjC@lf?(VlYe;)bdh8+?C(oOc`$!izgV!GswK}YCVtm=im>AY>}_Bd(tLa$F;#T<@R0+0IX7YEw&@3s96pRx6W@n@ zjl!Mqigw;K9`X_G@IMs!4;f~@{etWSV8s4i@wy|xMICX}@7ml=p2&vrt6ajDiAQ~+ zDJWJiyMpq!?yKUEo1foT4CabfQPFE&!JYD;v9(y7w;*`MYmn$t>=-)y9%>bIYGT#V z4<0&nh&d`Ysa|OP2|V#O>gYtHdcM7RDZ8|}oi_;YcZa_1g!28OO89i8x)AX@;y3f?Ae4`g0FF@rk1Q4k+F<4u90}Jyw^JOjWm_% z$H`u>3KnX(K7!Gv27^q93$Hj%!h1r5o0RpJyURXg5)bGNLSx`}u@ zMS~ykMJ9I8ME9A8;mAO#-*haQX}_X%)(eK1bX0Bxr_4;SJZVF1`SQ{kz-T04M#Hqr>qEia;yk)HK^CG z_=kc>v-oy?@S{&;Mam`niQhY}Yt4Siru+$vSIkxMW9b=Gi>)inbHg+AZZ2(WSl zDk}C%-}pvoWVunp$E9m&eC9)HkGCi2*S}Wsv8sGYp*q!Ak)@Ag)fB0-j%vPTPZ1^>=RWSGq^{{t9Zc z<##gPU(}VuTi7kip+sztHoHpkW74`DS>@f-GN6IEte{B%oI z@m#;*>SU_{^sP^ zTfETq6X}E07f#fr0y4rAa+_>XI@953yH3)Ca#J2|75vmxdW{e2`Q*uFql6t;#HU8s z_QYtC4&>ZIDt;zpW|MVpHd*M(fC?gJ`KWPP^D(MvPBhUZIQa`XA*;+>ayb@zr==OI4jR12L(Sk*1=q%)Rh1ZyNL zdPZO{eigWx&5rZi@XeT1zz4SR}2`trdy1NiWF239melMnRgoT%ThAD z3vWx+MyCn$=`#26YKCPNLq5Qm7XzbG4)dOGDA1{vYe58&?v;C+V>Y`>hqdDL7(}G+HDCd^6}Paso~KZ@jphqJ7Y%NFXo>>nn;H#^re)Na zc;qscPaH^`&r{pQt%b=0M?~|mf<>zsamy3;fLgGjVQ5gTuq_~I{ij0-}r9T_Iuu_(e$NBU9ZfH(~0V|Xz@yx{FiNOI!lN-{1`%w{~G@LaB&w zc-zW>BPaIUc~sEOA?OFHPi~-&Vb}@*2&8xD}4=i|QY=_nwI<*Y})bckaoF8lh@aLr5)``QAk)Cg++x2jDM! zk=B~iOAEbROg+Cfy*PK=L4#+&U%Wu5YqV!P4}MT;f~PFA5{DKIS<=&j`jq0oGrKh6 zFG`k1ntE=DtDm?UsWt$3o}iX}z>@F?g#ER7D^w{PmPHf2Rfs#x*g8yVO)~6 zIk>N{%uM!}F*(1FJo?+G1tQ4I!S_Oi@QWeCgap%I`@H32#HbAl)uXMf8zj{TV!?NILE6GMV+jR?TAHDv>8C_74D5~x< zq6PN+S_1RIis@{TfF`6#q^rt|GeAAIW!uW~K{C|lK&F!|T~eB`0XS=DRHU&eHpX<*aavgQ#*R&XU;kk`YiS`eo#a%7lR5m^*^C%QkyDU)F5hwiNEEYVKx@HN#4_H@W-Zm5y_A z&+61zhoD|vWlN6JzG}zbqn2~Up}m*hQRKp{uF@P(vFqqcgA$Wtd=@>L|xpo>+begpMqzCoyy$N$?2Xt zcsDJ9{`kx$yA}h!8T*5`J6bzr3@W+uO_es^LT%Hpf6BGgJU4xf`VE$?Fr#T$vN`F~FzXk%REMl>7i&zuNCrdSTRlx8vYX% z`YwrbUG(f5Uve*QG=>Fe+@TrQlwrkAfS^>68o8wyYn)lnD1F4CQ&p9jdO zl=kF`7!2-wCP0Pk?s7%24QCAbTb`@HOf%Exv;I)#Oy>H`?U{Qrugkn8^GN0cNhG*0 z-6`R2(fY_o8&(yIH5`ks4^yq(&eHs1ViikhNGLNPQ33)ZbJD;VSc3Q6OrlxM1IxK{d&u006jp$zb;1aj>?Lq7jw*g_0u2j#`P`*+{Rr$ zFK{}c#>Q;3H~La9@n`JSGYMe-68P1OmWea1%%;rl%n@lPJzvHmN3EXBaoK4LQy@{0 z81~^%GIvBR{uEWyVc!d6X|jP}>2S4^FlWMVAEkJq1uFO4goP4(b=0umuC^KEy~3T| zcLdC^vt|B%@HZW%H9O;*`$xS%*DB=`W0NnA7kaAHIQ2Du@O<8b2xra+u2fAVO88mAqWT2KZaw7_P~ULrb(ebaL{1E&ers_L1fY zpTCLfNTLHLR7X^%(FyJrQI=&)Ba{3k%!qd4i%?cLg?xVT-FuQ~Z19GdX?tfD=Bv48 zA$MwWrekJ5cEKPxXls;QD)s;H87W41qp9imvf(E>GY8PiA{9q5Wjc5K_@yVP#^7|; z)6ys5qeRm*DxPHU8QoQ+Tu9brsW6GSieWIFoOzD8l6*2I9yqzuS@}a$8f1xv_!Jyo z^}Dn4v-_BywM!G*`n`6S4^UQlc;g6KO0-EDgj$m5l3u*H9MDh8PVX0ekhL~Yu2MlXeTA7K=VrE1t2FsjFU>FI4=KOQ2L*Jb5fzEF3)iaUZ}j3`=)|oT3}geJwDG zbMNI>J!9*&C7T)W!5fYNs^Zrlx$ffu5S!rR_goKh##lJ`$m>)i zs!VJ;VEI7KtM4l}OPtZ>%n82pU7LA!=8nwE`QG=oVP;5 zx#FWLO`%?lhV&be7$@Y-@#tGp}IjXY*Key+PKN670Xnd*t99-m2X7^9UE^z8zF#RcO+*Y+VH4$|ZF}8fK)53qSd6>2x!E!t zey{gRMc**%R^7sOs4&DGx|6^O6wgE80V&rpJ9YH%CoaF{p;EEBxODQeH(zt===G|4 z>e!)=96CAKLFn+kVD}hhxqQcWa*9tdI}UKEaJbnHP2RM8#e#)SEt`IW3c3BwR?PI{ zQN<$K@z0ON)f`MY#-79dA&?X3La_(|7!}h+=mp3* zFqZ<9#D|itv6W&H5)w!LaU+SJ^5c^vG3?0GTm7Z}2s#ROkKFW|3-q7+znufGHFZF_Kx5Um*Ozbl7O?BY94pxUDu4WxyGU}M3+|N0jh^@p{1&RWcaO_eS9B7-1BBG-+S~*MQ22<^Wg@8zPCT!@Vrg7nPomfF*R9; zlzx{6a^Fizof%%lY*d5`prAN#vH-3blsj66>9oUQ$}9V@#BB?Xm^*(mW;?;HlHmq_ z5$v|e2ub?VBs`YBD8s~;feW&bLX6A#6_7yo`_f(gBNd!k$8Qhbx2`e#h=&O{p{@(! zX2EzYBs(D_A)+Ts;2m~1V6a}R#f00Q;zj5xK*?1YIz^CLs8`yEoEkJ7lc;7nOX5KP zNg(b!4NMJuq4w?tSZ?gQhNCrn((ljJBvFR?-}f+ zg`%qa)#`e!z?d`P%dwqXP04Yfs42`5Ef$vEH>@rj-%m262RUH;5G=L;fZ5iAj5sWnx4L*ovouj7^dI2UabHg<2MzP^jUH z8_OUdOF8-`GFB#=sY}%49lTE;$^7TcrzL-X8bD1TTBC5sdiZPU!b5O-G3i=v6$u@s z1iw(0`iMd~YQ8N?)Hn3pGDu9J#IJ5c!T&c3(_mrgpkXPSkOV+Ua%)J{gfF~(OY9#* zhfVAp=TNI9ppB|t)49X_9yV4^A|~&Zp)qJzs=qcogw=IbQ3f6=k1;I>+yYRo_r9!S zG6qXsF>|y^g)iTjd35kQ)C@#l$BK3(bqq6Dn2e0tq`*3nWf9|X1JyPf;C>i+1l)t= z#8ap}eQiI>w_rg|su4{ktE+?SE__6&<_l(EVydh8-ZfYAg%C%s6RXS+*a?FLGV0=B z(y)?9OqMx~3yyeiSW-g2g_K|oCWz#2$%rNwLc_9XzvobBiqYX&WbhFh>3olunh;1| zsO#Vgy}jjIZYR*RaocRW(LG4z4@wEQ)>NA9UpsA6Mey-4_2Zw~bHQz0c<5-WmsfR) z&7fA3dCG4n`;@6nj@!|R7Q}@#dMUb0+EYoUKS`X3aqwHl^_d+v?b{K@+1%~} z&o$S;?d+~gue$0PYnuYEHM@G%B}We4*JzK{^0zC5Ki#Ixu1uyi0=L)F!8nWpEsm_S z%5b;^a|-2~-zsc(0F?=6IpmZkw+*h})Za#QD-H$c7Ez2Szz-@VF;JEtzaVPZM{{7sB#4MzExz{+nEw_^D^dF(H+Zz-5& zgDw4K~gc6*gEC*f1DF$9+Y4CG5GXgFgX8@KT2@F=Y7-ilTnPcVR5gL5#hgH~bQamevDy{UIbl^1>$8{DO!8w`Fixj=eeYrXK~v;71(w7t@5iVowb7RjcH7b>2hub>(iM1Ud?C)BA>EyH{c6is*?RvXZ z3JuCEM%^vtTF&Ce6EUQCUSsg>Ac{jTCO#hl@9^SmEtmZR(^pVjDmb&;ny3;TMvkiK zajsg{bXAAvyX|}TTkm-v9bW>VQHZLls_QwvusJ0{OtWA7t@l{_?`n77*mvyK)a)+e zW-Bjvq==whRYZVD#aI=;HfKVFph1;KUOH_njny~udsk#uCvJsdGkXdZY|nOy(D`<$ zS&e12vEmbD$eXd7+j3WPkM?d^K|P;L)4uGrRO)PF;bBS>A?lrzAW~W$C#|$FT^3W& zO$rf{;SLE~6Zr171yd}+0$!B53W@V4mIP&ky66WrJt}meMy6_I&+*5(8%nSPEJqZd zvx@Ivgy`gIb-a+JK{O8OcoiCa-p)>kA=Aey?dCR%dw6y@HQVH$OZNJF*mxvYi$N5a zgsBj`T{X(03WtfP1IhoRZ+K$`p;n<9@MYP!=tl&U3MX1UA7yiVK}Wid_&>QUvWjsr z>(%=q(Q4(R^`=uR8MPUm51vci@!sTAAq4Gely4SW!KH$~akgrdYAk5X2O)@SSp^A} z8NR4XsZN(WcW`huY1K)2gElF*$!=Bz1I|5}w~Nf>!Z4s92C~dV%%!?YVJab#8paOsMi=yw%BPL z8{2c&aRwEDw@+55HNHTq6BRR942;USD0i~=?)c1gHyu9h3F$LnRGd(uwf3g9Lym%M zLw8`bSlyDZMOERU&9=Jx&Yurd%MligZwd~3fyr`p@PKgPkjwBiHifwjDRvhz_yBOi zxKe5eL_u!txqHI6B*$19lGlv-w?#we~ z9*DcttSik>%9T^2*B6JR#OtGXW`P|ueJgMkS(KSIs z?EQeBTf5+Dqqcj0#>vcNc4tl}6*(6as|hb*E``7Hp(%A!pb&jXY=4=8=vU{`bL!Pb z0^)g6TRrb7C2LdK4*uPfryst?%9dYQ7jA~74o>+gH+nMLG z?M>4{@*@FNTR$=@py~WDv$e_4$P*VE0T=tMcCm@`7*rHn=MR(!WN|~(a!Z3(m0U{^ zUKADTU$)uYPBe}1=ds06RQOopIPd~-9JgAfMwr=J(g`^J)S39#Pa059onR?$YTe#k z%&cav%iR7mTb(3{@Q`@;0x!0wgLJNQ^XZ4=u3P`w=@u(u z?IKQb&Ux@nP|+G?1x!w(LPvq7?wa`%C*JgySV&FBZ>i#w#EB5j_PZYOaA+7B6Yh)K zo>7GInldxa9VAFgm1#N{{3|QO9SugFMIF`klw1T*uf*V17JC*`kDdP{Ts!|spv46I z5XTxg&L5-d20|-Xua_QCm|l^NQj)9~Vsf9W0I5+vWRi*-a#2ePZ-*?p!-1KYK8X`b zXOlS}&q?Z-#xQ`;0pGp+z@D>Itu_z6lG=vte~WK7B4%SyzvvdD@q^pi(7VWnm;kln9aXcsX=I^s-l%shff`U?byV~zx%H8VWq<7+7+3bgf)=V1*MZL zj{Gz@A{FSHLs?vbUl?MOxfi~a9+9dQPeEFNSR`oE%6p*%xq(ba>~XJ#ATZQ+u~X+; zIyCkeA0e?{*R*|8&frf6UkNc&P_YOcix_slQ(_Kt4LEz0Z`S}8EOeiuI+|;t2Jn0a zH)(bR4KiJPIqz(Aczp2A&~`!sze5D}gq#n+6MNrK*Fy#J=H{lmj#`5sp*h8f#+IhG zD&W`=3i^dYsL5I1~>uw{Y16-WjcRp65NAi*^V z%FN+9B{@sOb&V4KiEPuRXwxS(@ACwZS+!qvl1#2uH~Gy{K1ax8oeaJ*_>zSvhS+lV z?+}P*#nACfxK~&4W{opt2n++g1bhLXdXcVDE$8jH1$C|4DfihnuTs5Wmm{SCZsBdX zOYu?eeD_HW4gUtHuRd*he9we&xV_exXUdUdyh&~E z4Px8S$l6A1eb0tEsZkxFZR(b#=DJoY%JiV>HTcT>)jdF_Ad5>1qkkT9gC(?Zl~X$uzh?4GUEyH=$h< zSfdXAQda9NCg_E^xW58Ljn@ZSVO%O4Z*{p%eHOc`d$*KGU|L!fX_lGC#o|P{Jf9!D zJ3BpgHuhkvYAgq3=8P99>_sKTu*WrO4Oz8&e0Dqf$?&ROt z(sbQIo(-4WLV0|qR(2h)YZ&zw>}=avHZ@8;{g-#AsRtC+c47JaYME$`XlVDJOg zsaMoWPsefFv{c`%AK4j1&bE zw_)V%cNzj9kktJ>7Jgf$w8BqM*&byM1ukr(O@K! zga`s-Gb0RZY}v*bu>Up2n6Q9sjD-O&Yj)R<+27zb<~K<8GR2;7Z*`A=HTe0T9gU_d z+`i$2FMscwNS-YH*da)>7VA2Yrkhk|+QU71l+0Ny?@*pA1%z?p2@c6LjjSA3|JOLd z%-Abam@xJld|M!7KKt`5hkUgPi9>Fv!13mW!VXZnzSe#Z7^D#y}Gr+Mh{YcO(t$~QmxPQKwQfCGDc|96SxCzDW@29d$SIrJX>l2A784>mE%*mt2U1PjHqkL^ z(tMZA8pgT=B}MOmAd!1iyhmN5yAYI1j)F1K+@_&BJ7>N8V3Vfon&_xiX}+P`mdxUA zgo6%_zLO{II7EKfRr`yD8DFiIu{<+5J%CREXw6K&WQhgN4HhX-b;J=H6&l;DOt9`YQcc4Sgg1@K2;9UkPKmCFMPauzA0y z@HTIYH6^-sjcSg$d2BT8<`&1z#sf*Y$=n%copvnPNv-V^K0>H#-tU`nlTuH;Er7-Y zK^8VhaUfEp@`V(7Tu?Dm<8(8B$jM5*I<;9<>Mj4IZ<{W;{B$52)WzPs7s3l~Er~%% zYQ|3-HWqDrwVR-p5>NLvohW;zoTky83?Zr0r@}<{A$#B*#|R?@DQ5#>c#-A3{i=BZU;nF4Ht+T%W5(#7+#$e4i}rG9oD-UF0MekWm=6vytUJP=GQ+b!%LMy zeui2P%IX9wVVPJ_0Z{AZj>?)@p8QplF7g+My&u1Iv@Bkk?|l-~!D=kYEms(d;+ClkYW!&>Jn^J0o6!7kvC|p9`P`QDa?jF>J!u_l_0Fv8`<6UVtZ*$HC6c2a@JQadB^CyZy@XK6&x=?uGxtF2~{8vp88Z_s6WVK^PT$4}yR69Mv(( zLGur#YD1x$ms%|uJ~MnLxG|S-eCBb2dLw_(7_MiDp6JEXi!(FbatW^U0C}wt0sXZp z6A&1-6vZ;)&|fF?aip@NIk$}|ebU^s4*gt#j{1tI>-~3<8X@i9$yo&M`*(8^!3}-e zC;3Rr8A>s`@AaZrxtZCB0<)M?;#E_GXzIK&hTIKVB9XVhV_1q*0>csligh@)Rkh(cWz1uMvXwy-zxox5Yiq6yA_%2N=@~<6%h!A$>-OD*wXw1D z(KE-op3Bw{dM6!=1FX7nIfE5mSl*g(f`=ppk=mGKXX2n0rzrFrH1%SKasDtvIvxj0 zvms(+Gm8ru21qCEJ*J<09oZUKVwLF-QX`gy*rB@AaUOnQ!%$UFOY$t#v)WO?vf5cv zA;+@_4B22U)kL#K|0yEhR&;xAQnwLe%(Bn5bs2aSGcJAo8xrFYmcH@zQf$_KNwZlH zWKcJJ&r%e!P&X90J0xP07fOsuUhAxKF4l#vtQhqLLN^5Bq=WSVy+zf(7Ha0)q~R#U zV59n6TLvic4L>dkir`XA1wt|&+ehix?%`uQUPepH^THDmHg8rdHWtfba7ADxOj|y( zVZ|GJpt%_Xn7Ioix2jS#Og7Kd`0l5@ASSMlx&Wd&7jTed4;415=ksay2SB znwgXsULFCZ#7yA_t(zI93*%`}jhihN%+Gw0^*Hbfi%k7|G2j&VBj7byVo0mJ;EPv1 zkAa~CCF?9$?Htt{FdHyccXLxi+xf71wdxO_*hgU8i>w-3_j;V%09UTZyVGu}c^3O+Ckj zYNz4{EtJaiKZ38NcEc*Spi)eeaXI4*$eQTsU#3da-Q7qbGpoFffG20iUKXe7SQ;ag zvr6XQrpnNcum)#;IaUaPoSy_B?42HL{u{4`E8PdbMD#?*Uq*^juo>(7VyCJ?B)Px5f-HC+z){tLv#*aB>lQyDW2ibkzlqui5tX2o-a}uaD-1m) z*)_V9W#=3?G@&cti>!r9l8F*ra;Jk7)4_(MVB)=D1*%!h^Y7t5p{d*nUTKiatcc-a z7RD`$)xj-H@l(_uqy>Y`jO}G@1AVHy0fBvSAr|<#i+q64#y3rH3bhz+MusP0C+1*l z5~*sGY#rECg~DoEk&Xi%@aj)PR@)AfXpFKx-JiJgj@T_4PWO&G*IyxOKR6MZ>R-*F zFak^J_vi$;rx$BmVpWZ|)D};>7=d12@&nZ)SNEp`3o9#|=drcNBqg>>66jBT@El;} z_IaP`xzR_C17gLUf?rhE{XO_S_?L{kOVr8n&Vw=HNebX2{J^xjBE=e@drWjWi{&-T zXUCTtDEjghC*|OHUs$&R8Q*V;+|SPP;EV+CN`9;pxhm(UHBK;<=bt?A8f~J z$zz`2LPvL0*-}&)8;yeINlNHLpsR+~E<@_FUleeB7ccN<)ybAe2ty7b*A_k0h=`)C%64wDWIW)AHc4NJt2j zM^JVw)s>H}>2lGx4OxHby-3#$L)X#0FSUvTSzo(U_H+X-bD(x?X%4X;56hLg=CrqC zr^Hs9v~vf>ib;Oc#f&49g#Yk`2K+K9*Hi|OA)C6R#Q^9ce^>09ycD=&!%e>(U?gh^ zRjT%{D`stCkKm;aO+V07ESnl9QrWPEp2}U9=8ie^^!h-sWz<|pTgu4FQ?%Z-bRg0l zwK(2hY)JgYC8{e~heqb#H9*yJ5IA~8e5Z~WS_!ds(LWZ^B*jI>FVJ1W$%h>*y_9~W znCl0aiXv%ueG&q!6+I0;u4#{BtOf8dabig_1b5xvfJinP8j-;XI(75`Rg1tV(QL*r zY-@51o7H9vmj}b8 zj8`*_gLFitQUxsGM%Lxc`@E?|26^GeARaK>D<-~T5ic0?4=s-w;5PVE3mpc;DAMEH zRuQ0ythxstio9~d?zmekmxxlY9B;I33BFINOwbh&Rr90Y0&7>oFp_=a*a?fs!OjyV zMsTV>Q>R{lES)%ofu+~A#||7uZYaaKzO}ltbM{1aAd~G|rtcUoPeig*Y#UzK8_pc; zC(-_{Yst18NW_ZZD<`UnO?}fS+})fm7D&JtKjpAQLJ6sU2)rFuRPCrz7$V7<-)cn~ z*|(oAN+R8Oi;n0{*P!|-02{7+>AqyTe-zKORuAocpjk3qZz3`kJ&cJHTgCptv)$$d zqolL@)E>=zqPM}XP<&u)`~;@?!}HkMC~q8i%8u%Vafvf6vI834r{_f|Y3RHaD-Uwn63fCuLoZsk_E_LsWB`y6*@y&;5>~DeP0*CYEANoAlEQ zA16H$QhOicSH*UYnC0BN#y?vvR6rl(1+9C-5gSwyA)@Sc?ie5!qQQ_{Tu>e0FI zMyKgqz_*36uFK)*_eOs|o&m#=aR82hOC{eY4x^Bsz3|z2zEwygk?j3@9AArAQGzw0 zUwsxAdq>Zo7c@9pv%&&6@1|N@vx*7}Lp&Cdwzyw6OE}gHgIMvaIBv$4{WmLTG3g{cFu-v(&%usH2LQkTX?(rYicEA zV0}ogN7l)!1y=?nz0t`4%Z?!h|IHHxRu6zn&s}&Ud4{mK7p5btNx;Q{`|}Ph3WEYZ zd$k^xsU(xCk>)#l_S;gi`970cR&4c?P7{KY=g&XRh%wqMV~F%-`3pb8$Yx`EJJNGI zb4PNQ<(@;O6YD^4i1cb!r@>?13!)837^7_HnAtSHo_FY`xEvyiB{~WOHo$r(kxYNB zlD4JGS>ITfnJ6ja7`Hj#ixe+#ip|42wjPn?ie2y`2W3cMOwj%hKX+rV_mI;=Kp#3~RDdWq|=8SxKokwX|~GsY`FO?Fu21 zS)4qil6 z;|g8dN2sOpyxfb~9Hjk%ELbtjD(-|ao3^UR&2eon+XuWUitPabR3nC$#}NlqoN)J@ z(XG#1JU1fC!OQU2=!1W0mh8|~+!!P$I~DWzp~Hhks^`2_r;ZjDOe`a<^S46hi3w4+ zRf^`pwH>1`QM-T|4^e34ZwLw~nhLEcZPM05FECVeGof=5Aysde{>V@?flcH&@HYsO z<$RsmbpZAI2aa4fzkK<@pn@1OzFzkURt@rH4mT&QuF7+Jc0Ba5X6JGSW>e3{Uq?x^ z(4M&4Q(U8#09`9Tq-lO!H5`yI1OlIWwjBH>GI$(M;KtoS$Gw|7o;#hpk80vyWAzSc z&DMIPF729WlChD&Vj4@l7mZaz@NO9q@Cz@l>*{dm`vq!`ETX|OE43f6uwL3ezODyS z$l&2t(4J$5r3Mi1y^*tC(^(%s(^bthEvhQf)FjecRR|a=w;|h#Pp%$qIrp1Dp6~8(Ee%-(%rz$>jmWzEY|(aD z^)*mi;3Lxf#46MOwizfa>!~?L@$9u^fjZS>V)UAG&zw8Qs>Y;Bqz3lht*$A~#snm3 zM%HC#tBzR?JjIrs))dv4aWO#PYU0a*D^2y7VdzX~(!|vCxpSkBu#1xHiR?f;k!m`{ zvxh5sScIZQ(u#mqK76)n=`5kLKo-0|b*#`V~@bDO^?I4S)!0J|}%Y<+i=Va<<-&*LJgd&d&BpCd873KJ zcBbxvSU47INQ=87Ccsu>=5){<{MNi)e5$p zl}wM$I9a=9(Ur_e@c5f=>qD5tQ)MV2Fww2%JyRvh=r@wWJTM%;ShfNyQd`MK<9N!E z;O73zJjzN+ba^y3(+U7`jnV^wny#@SLP9WdyeN>=O)c;JPb6519BIeeBX83%uX>bf4TVZnFX|xG za5w$o51o9}vJe9Fgz7J0;_uqMdsjfDFqU;yM$~W!3-nK(pC=ASHp{=kYKs~%d=CDE z&%tH6m*;-t$L3&NK7z3hpel#_0btRcTJ882sCF_TK|6 zO?7lvk+E-}=?UrCl9-ip+Z(2`AR!q`3Y|+??H7U7yz2RRNs252>10aOBN1Zo;`s!v zd#5y%M1e{l$Hza*jJ}?DW^anR_hvDGR3v-KMIyOZ)g1@R>o(%s;D>Tsa+l-|>`%rgBp*p`8L4zrjg zT`8*|O|{o$QP;8+W*OfZfVQZ^-PJ}cnID!lD=5@=&MT{)#IjWVK2jXzKYqf1_~;SO z_B7s~M3t80U3f0_T0!tHe+_0=SHnZ2mrz#(NBxOY2~mGXQw+bduTpcVNJ6{?Ng93j zokq7Pp;FbSThMYO-D*ap_Heat>PD5s5|yQvuWEL`tYe}}uYBOP+mV4;ZQu>pLrI&j zD`v3eYDp(p2e0!=4gmMw3k%mic^;_Ko|A7=TUT?<0D68)1uxSi-G<;JE-3k~kHb<4 z=PQ~a7282-zx?Ri=pA(LnYmtWSMC_K*Y9Cn86dUI1g9A=iYqW-8VB3aA4RNWFmG-^N!4YU<5FEWs14vYsx z_4nvssO6{XrdBD1gt{;RP}I0oQFQ`WEGjDvwbs!!8SwlS36_eAeBo920bT)%A7GXr zcrC-)Z+-iD(35R)5Lx*Y z?Ct?!MZWSbQ}>9jvc6CSgcWLZgrzFokVA%WrH_X;n8*uU0KZ>>2YWuRX~y?E1M) zxih?H;3p&4wa2+QQPsuUF;eTEm1hE0n#-FnY$)srHls@^lJl~>PQLlmaP8oiSrYED zt1mk=H|Ix3J5CEEXbmQZ0MkBF?6 z{(w<^|2df%Z~w{@dyLe@^bzxi>OwmS;6QGCyXl*|%n9)Vz=>)I{$JgmjS_ z5oxMHTB6((F}NV}wYaom3aY)7@#1-G_i(eknI`jD1lXfa)G(z4>q6gecU*|*BCxR) z*pR9gXlOoE+cm(VPRLg*1>)Z%j&Av9E|;jyPS;?;SCM1rj=V@sU>~_bzR?OaPbGG6 z@~i?*F+LVcCzA9&RBRf^vOaH_gqjzcDnt0|lH)v3)2Q7Zg69HT^&qKMS z6b7a`#vV>7mqp;Sp7unhOcKln*v7wbhglen>Gf^E^_Q16gM}KN0h#&BoTPC~be)ci zUnfinr|2<=15q)=J7F3A7V7TkDKEeKLko_sNE2}=<%`osp#QP?9TUrjn)6dGHLW)d+%7f;@jTg|0YaN}=J0c^_oh5OcjbLxvJP$H!EiF0sX zUBHoyzj(#nr$}TLM`r-E4WwQz+q!PcU>Zzo4k&x3ZW7Cj0IIb`EE5SfFYH(~h2g3R zMz7KD1wleBI#bc}g$(5CTbDO zCl#rzVduSyrIiDQloD15)I6&~(4r%o|HSp(NrbliZxe_AD)Rn=G+ z&hTuFsPJZs{;Mc3*g*{+2wEY!fez zem&4_mlsE~n|dxow#e>ZOY~Y;qn0GGUqi2Wqa*7C*^0P@#}dK{SQk~<^2D&wOUUIqE97#w$ox6P z?LoC(rJl21VYjo6wZ-h2(^OL2mSyNfapHV5?wZOJB1nstXFwwlGVtblI;k#0Yq|JX z0TQtdaGztqdWPk?Jbn%Sj0s;Bu6|K(#@4WMKb;>XNZK>=GY2e*ZtTM`_+|8jqe4j{ z@#xZ6#+HSj01q7~g6zoI{q#t*ZJVW;v+o&wQ#RsWWtzYf6W|{w#&6*ND5XNSXz9MJ zP-j{Gk?NG{#fB5f^4gTyQssBef_U`w=owAXO@j&EPb)TUjIsNYwj?$5U;1>`XXwtHw2d6M!+)BT+0yO$H;`tOc#t- zY^QS@pH-kEHw`hc$r-xzSGpqG&WKjRl>2zx1JV{vA=KOI_ZwApH9(MyF>HoS1-t;; zx&luw+th_4(vIywAQ(XutZHkA>n-(nxbW^)Sr z;Z!xK!JVV$NW{0A5}N6P$0qN&XY@CDt8AV-rz2w&fkU4Y zhP6;>DL4jGc14bTLgfr!t5x80Kogi20dgySd7c>)eqaNi)ppFIW`iz{`CzcvrRGoD z*Bu5mq^<3x+ljiDtgh=Nzd&tHtV~ulY6GBC%Wp8_SoO)$t_` zg%m?97=x8{79!aNbU{O}!aO z0pG>c?WncvxalQ|1W`nHJ1fK_5i9j`(daDc5rb|Ah<$y5nGn%OfbAN3NW0ELs<9oK^pFdWk}AXRM zRw}@+yABIw7ONVjw?-wK6H`l5GmtG?g@#)humV`q~!5&Vg*H3<&7?bPT(qTZ$hd649EO`o@Mw-T%huhcezzdte!NxY+dq< zN`;sH{`i-Y?PPW)<4$YlZl-?lhjU-eeM49(0&I|TN2R^#{S32}n-cA%bm8&&9zJ^s zEq2o`sWg_wzv*&XQYJnZcyXVI%A=*!(=MmYyTcSDDxpmgX`%sZDj zCV-x{Oc`%11z1Kp^*#vQ@5YN+f|wZuFE*4>?flb_7_k|{iw-vE!T4DRtE{WXQjCpP zf|~(MZwxRH7T`?KTU(4Y!0&DM`SYB-*k}SRT->%8^3TNsyu6MVbci-G0OGBE^%Vke z!9crLG>N+LKY>9|g0d@9VgF*C96Nu0^suHlp^0{H);As>G9;iMJDztKY2if|ocakj z$R2~;;5$y7-+;H)&F#mM-mzzw5ZdHJ5t+P&kHMIyOC1J9x zy=c%$mK9TW4yXopn0?3%Qz||jY^Vnu*^zt;4m0tAwF`F>xKGv;Q^Qo^neNunmD^l{ z$`zdvA=nrFE-P)0hPmMqM&a*)@j-sW|HeB8;vV&_lYr)~2)jrofDek*S8(AR3SF<@pjHq#3$O3q29$u8& z^5*O`!OK#^-&Mg#UF`NbM1r<`8fvDu`9F?+NLG(A+Ry&P=A?n)Leq-c!**o129?;? z%R5V&rX*E1xN0@9MhZBFs!f%SZ8y+M*_{7yt6IHNDH=Xx_(HHE>#8 zo9rFI&BVOs`h^zto^0Q24Xd#uyDm}Xr1G1wN@U;{BzVyC6{=EoU)P|XAKgOiXe!t| z9Y92Vm$0Y?Aw2+HdL4Db(UBw6&(Z5D_%koI^h(0|P8BWh`x@hfcOq=$X8jQ@Q8lUY2_x_bAKm@m##192*x%2%IM>_U)8AmWuNfm_VfeNS5;xvAPT+ zXEE(f;DHTJ(Zo-RMbwtPXK-GO%aa*7ayVRC?)u{0@Zw`Yo#8BFIrx?R%ci9_kMEC* zC2YLz-2o?MV}oly$ViW6`j;K{D}hWmH2DBF7?UZKaPaQzSSZ^MS=3f=wf2M~MZw~t z7eW(W_y0h1Rkt}ZRqRaaR{s7_pcTxl3HeiNL@OAk z>r*de@xXzl#VGO|?WwQb^3|{1GWsL-&Q)xk{^#%`_8&~=l=0OJa#!bWpi=!^8(76y z^gI&VicMlLwi#2blC-Fk*%Mh*iz6bXaq(tqGcXWD>JX?rKpAuTQ<-sEX01P*S5APh zaf$&>F~bQ{$MxD=%+Ek@61sL<=47F!u3N}4GzXie;V@VND(G}m)(R0-d8Ud(>Mm&D z5#95RiFt;Mgk&=M+(&nB(g;SZK}2(Iux0wG1U3V$tt(jHUaQq>e>gf+t%DC=sVEi% zzNVTHN07;f3m??X7m#JeAJxMJ&R5&pkiJc&gUm1szYrnUpKGVjY{-e_;_|m z3GKeZjO=2ZeQgs7OW2f<{(rnsHy?22E9Q{lEL9nbuP<_od_TG(GA}A!I}BB6E69j4 z-1QQ+ifD^irr&d6+iZMZ(y3Fe2R@pboaBvaP%6IJ#2Q2v_!4(krY0t;8jG|kL?_|O z9`+^Fu(@~5VC5icyN1ApPaw(F?TC>JQ;GC2F+9Xwx(lCRHT@3t6WtRG6(QCoCtRnz{EaUmY(KUy#D?{@yP zKEH6}%#BBPY~2T7Uz<;Cx8_Nu@Ijp<(9h)j0^u)LP5i`6NNPY@E%+1W%G%LwtD9`2)wq5s(7paST+Vk|TdA;-wInPV z34qhpM%DA2uwLmX$}Xc=QBz6}AbX zuHVAAhe*&U{u=JIAT(pc4?hSS9V2d+KktU5*a%1gK1DpIiQ&CKmW)~+fO`OGwW#9{ zO}d}KJ7rr_FFa4s24TM$nqFun20}F>paQ*$%bQ@i;p0-n&t*J9yQyv3&mE)o$@6n> z7C1>MYYi{NU^OwpxUyb|9yjIEh?(y||C0sMKF5P)w#lL^TvU$xOjwOQ{z=TLbjVU* zpLK%v4ZRSo0AmJ$BDLr)c_7p!fEM0naaGUD=|^WQsaY&5j0V<+UQ@EHdS@db{vcGjrOP|Xk$-?x~1E{uPM}wa2&@(gqV6!lWqDj zls&rnET3AM%zs>b)K&?^-~LRS@SXrAU+T(JP??g0Ft)u*i3KIY+xi!yZ&I%SV~Khp zP}0n4a3d?iRU6Y=z{>Xe(<(OXm{6rzR!!Zvb;+)1ZBK*wN>I`ewQkvWMb!@JjLNti zRPsRc+ZvVAh|k%#(Sy{UWZBHuQ%~ZPx!f|-PU)^sVmdmNB4RNokOZE>6~l||oKJAIo%1XF1er1(#~Z8W_Jo|MjjgZcG- zXc~0I%PK3_gZ8GyOAr6nk-USIi2B-Qskrrl+iDFYX|kov0ypT+?3|jOZL}E*C!*G( z>gp1PQrpx0&<*L_Qwh^;U0!W4)!tSRygq4YsuEJ$kZ711ut?V`f$ixQwenqgv{$Z_ z39mo&qDdJ8r&LPHQIYzWuT3yQ&az^gZbhy-sw}Z+e|U>;FwUITEjN^I)t`5GZ@1eu zT}Pwl1PdEmsuvyDytePIQ?r{YU`Kaiw$@g#!_2P z%q?UnLmb;Z-KuGJH8n(+eWn6=Jc)hYU6_SU@IpKyq2q?~@k=GDkc*HgT4VGJH4>E} zYkPcCi9W&|C$Bqj0K5$xIJmgPUAA@$flvSUuUmdtFh!!0x;8QE_a1;Zd|L9|_TlsA z|MiPsgzyWW2U)Kux3>?9UQwST0gQ9;+4_A}axg8LyeLgL?vcq-hC{s26|}#6QKkl$ z1x31NabX7hw*SbB(~J)~y?xloTWVAgO`8QO#LKO@&3i17x}z3rwc2m=%XI_9d2vi0 zo@!KYyKmE4cM`%Q+jbsWoE?;^BL=P>W3$i<>)`iZ^hm%WnmpB$kAXeYUY?k#8c<}{ zVAP$N7}UEuTE8wQ8?t?8gdKTXDoHw8KoO^#BZan%b9D8NMXsNrH6&liieh!wqHQVRq zF5(^ox^^TIeX67qBB?*eW1_O17PZg;lgbhGx|QftMeg!sx%WSUAIi1q&NxN)#_hS6 zzaKpP@XskPV2RNRpy}spv~3v3-=94 zIc{r=XU*8umQ8`{1Q184|Da8EIU2ve@T&e+BMO`XNvaPe^@K6zp5yR6E`9gg^eZ<{ zzZ#V+J48~mjZyd!=>-#^N1eyOf$fJ9B8A{8*N1T>A)yWb1M?%3(gfM|kt-WIs!mZ~ zlz652^nGLIQmC^6PrdyE=J*1Pbsb}lR+WB0H1Me2$d{Ww=mimoda>eTs5!c==y4Fi zNK3yx2`hH!JBdT(B%p%bbQ1)0->X7ctc4(`R^Z0E^gNZ(E7TKRXX+58>2yLn3`Kcq zc`4&QYV(p-M$$?3wdgb*a$Uci6448}#%AMt(yLwp6sp$pL*Se3S1O; zC!-(zO&fU%iT<=TTQxEE9Lum>-TGatEUOr4ZY^no+27MgL(3rvGyFS?z;Wv`=VA$CoIGoS6Hh~#RyHKvs+DF$we1;8st zJ880%1yR!8*|@mxcSyARh@UPy7|uZ)}1F#Uv}x{*^;Z4RjQ0{dXwHe zwEM&*hN1g;B*nMB@}7UXrkFj$9UQmz8u1LAp$PDp+ww4DQ4=4_V;if}O<{#Za4&5W z7G>rFflM69NUVf+wvFy2c#TyLB!Kn1_aAtHuFAmAV^vyR3#d;8iJ_Idj_K_Ez#hhd zqq?m4W{p+$3YR1BqOWj(b;8ZIQz5zb1k)jJ^Re!;O z{denBXoq!!tgcaOm)^K$>gBGb8#7==Lfck}W;Q)}#~Q+D_Xqd6rbAE8V5XHQSX=!< z$;lV1-K8rR4J|aQl{dU0%ZI-md_1R74}F$-v^@X88mZ%-1mn#;^kMe!GvL0kf+CFN zI5OYGSdPK_uwW*}qig8iG~o5D44ZZGgsh3v%!3c(YM*-J?Ou}uVG9yw`eOyx8g#g9 zRk!lSI(E;a22D|j9Mi7SV6`qm*9MEMw_Z)6S-6QT6!hAG+t-)t$s2c5646NS3> zJDLJf9AfA{St{tPa;LYncKAf>82b!&dPz1+Y5>T~yFLmw{p0BS&^vYFj;pkW*MqE9 zS(1}KuGity5_K@7?Jd)0MV6L^fa zFt8Kv87?DPM$5xX5(le>tr|#j-}gS3KK7b#S-$r0J6sdX4t0+IHG-FW0mjIVE*Y*M zrL3Zr;qKUG85uWn=gxUl{f*W*FAh*#M^`KY#&s2Uaz2GK3=hNqNx<+aOetSg zqT7(;kaM?($JEAo+O!sdJu_WtgXQ5?$i8i}WEmGWDeyz%wTx^Vz9YkMzi< zKd)=;?O|EkGIT1fhU@~6w>8~RDt*rQ1<+LrRSj<9$lU_#7B5zT<&@>ow?_X%R&92^ zFLM%W=_&Zi&=5dCDUdsTG5TjsR$RuHEp=*BH=c9|Qa#TOC0!{`VUe_yuR+-fzQb^r)LwuGwasu}vg$O|# z$l0IG&AyQ46)$3D&+sMI<4ugogd<`#ez5lOt8dtIggRmjfhyk{Y`SF6@uL&1<>~|k zaS=4)*3Oyjw&y$j?u~N`FPs|`%M#T5>D3#xwU0%isvGJig`rXAsW?zJ)0d#0*D)QX zRfP%)%dm*9Y@#y$5tmRGsTR8xjo7+QH@HSTTUOxL=DW5t+t(1N`zV^uwWt)@n>(GmA@@M;S98D3 zGe{ee-!k+!Zsrn!3{Fjgiz)C@n{2qTS{yu^q)*^oag3O>YjHh3KsG{#iW153`mlLC zeB8CRyo590UcNeJ0Ql;{^88G16DEG$gj%UHSlF?(U3O!GsEU^ds@a;|HTu%Uly~4H zd(MgJU9;VG55ht~?bklI6}8(EXJTkDqK47m#)}h*63s0KzUq$}D5>hq6Q~z^aXUsb zRQ15FwwqIxmLY2C2@=-Bca}}6cI4RHjGN*=x&!;{g zl2pB+U_vGb15LAwZc>V|wqpuvx;-=c;*6u|aB`boF0gEbmrQGeK@v-P-YLMm^}W&k zMTW-*ahS)7Z5V~dCC$VS1E5O7-D68z3knY^a=%UTII_*66iu}|LJ@ZHOwf?WXU9;R;T(cn9 zyAQi17ap7h#~G~~A!_m7hpA_(s0bH*^X-pFdVmoGPR~(Ytyn4**#hb*$~QaveBar5 zs#!C2w@|tcd4`i$WvyKq*TlaIP2`f?GL_DUbJz18Z@MQW7U$sdHZ>Wy!WIxrveZ!u z#b&LEwguh@w-mc|cVn4=(Bea}#|7S4BaQqmi?V|;Gc{+M{;sM@peBc?9HLjg6&?G3 z=v-+sqFbUndI*90z`X@YN^A^Dn&Jl11xE@Tm)iS9O>ypq+ebdBHyBPb{TH0)l>iV* zh!_=4`S3a2XL!w=P6p>$))(9(8NIRumbW#JAw*{f>(c$BZ!&gnmpV-!{}_uC;WV1` zv5#ZVZ5F ztdb}O9CD@PO?qXA$ghc1Ud&3=%IG~6`ndFs_4x4<$3`FJUDx28f~Z?7>F&y>M&Ffq zZxdV5Z{ELe^rO*_(hr_)`MgWNla#y~Q3vcC(e&+JwE}zl3S#<RoTjK)QbOom3qmc&bc)DR} zG3&hM|Fh=5nDHD97qdY04DSXMnn#pY)VZa>2cA_MXRNS|w5)~wCLR~Luy>97m3O^y zG$U`DpDq{ZkL&Kse7Dnd5o<|R?Ej)9iNI4Y5zgVS24z;E8L{gQK7Gazox>Qy|nd^gQ6Hy zy=_}|mu`F!P83ON2A&r*wd^M%J~F_kOjK+gy_fxgFQp>sPw6GqxLRuGt2zW<{Gyha z2_w4m`%+$4%cdVpA@DMQZM9H*lEHkb9ySuzuqNxict@>{b-(BBbl!#>Nt{6p#3{<7 zXkZF5Uf!%LY8zN+cEgm#cUh1#lo`gcNa=7~G12L_Et?N!K=Tw(O2^365T8cyp5C#y zEL3AwxXHKnYxeAcP1!cgVD{>{z%*=m>z=*(8&I{SN*D*=J)TCrcp zbGzbDr+`{3SfdK>f7LZb{y2lQ0-IG0fvDlAueEAh*XV9qTN=IkO}D=B&9}fG0t?=y z+Aa$N=nmSoLv>u!V8R*EbNp*fB}mqcYp(;FR8_;OmpIC+v?FWV7M8YdT^#+-H{J5) zH{Ft9g?l@&6-Df39B$0%j2dlQGvD%r0|1WfHH%0 z%q@`(m@Q)aqG++7a^qz+Gg(}79Ap`$u`rIzg$H0IlP`9JBX9rDX^q=TY%dJOMnb(goOwMK(MR`nZlfN6) zkDoi)15zCAxTIL7F7(0G$U(%m3ujc-yB(^Y6MBJd86#*HYQ?&5-ZT1U**D$Lj7@~9 z;2Z0&Q5Tmc4Ah^Lh?hUJNZhb+{p%#thd^%B6}f?xpggBNg$)mZnnz_HtoBs+%rk{+ z9?p**)Vrl(Vi(ITqB}DOp@Nm^;bpK=-GVD|K$jP_vM$KL@>->koV$;->Jp-t^#ij0 zGVAyG6Zo~eclGdeo|F%SY6mvDfT$ZLfS_O73xU8 zl<8)29$OmOu^skAv!dvmb3$p?61DW8)q|4aH#e6G{b2TY4a@G0o;h*eF4l_;7hiIT zX1GyOsi|lOpi)<@`_(n zk_ZH$#A<$|Klm76o+~xjAo3S>Z=(7)oG^m{_{a14O7XCaA->fj%J5B(~YrB^acxUAJ+Jy6U;;EU;w63~BQYL-%1an8Ig zk4q_*Qx34K_J;)x#uXg%DI9Ywb_zq9>+oipuXS!Xed(P+7=+uGb{@LQo-_CT;-E~Q zQ8Oi|R<*Rs^2;pfyxP^NdA4rr+zp?iHtJnG#yd=N41IvO$J*?s)L<~}FCE82Gt3d6D>1Te?EGX~ zhwljywB~@Q+|>ED6utVLj#ZMpr!PH(5z!o-x7x%nZhMuT5w)w`}! zli}z)qwkvpYpl{8%h4C1+^l1O5fw((%v=RFUUd2!Au&cDL$culmD*EK z7m9v8pg2f-gu}Q3nKd+=9~ZW9_lmb}iYVkPXk?9HX|)STAzWBY!567~ImH*pDT@@Z z?PGbz8Su4MRRWbNAavC!TP8HqbA44KdaHh_-qe*|S5^Bfo&{?aP_e@DWU-)m{)yB1 z0$r3_pd3dNv&{yiF9A{Q{>1cLsbJKa;AG4a3?hcGS)Cm6Xlod3nF~h0B^A4-Lh|Jh z(v1(oa$Yrxe;2?gg2cCr#mSu}I!hEUC{!A=g?zp^GkwsL&LVT?>Ao68wuGr^T0UBD zw+ijvf)4uFl`U1tgFcielbJZuw8`$3l^Xa*OJ%_WMQv9{4pda)g|6(M+*!|A^}ETCSfvNasrAIYfu_#U(+kfu1RXct)7_)b-*i8eS~6 zjt|P4P*N~bS)@lS?g|VCnGotyFL&PVwkG;(1eCoxgsuABtJ~(LO`|(ar{&#LWk}%o z`)yUmySH3ZQVCD2YW#;SU)xhB3o)^Qq2b?XxM?5tZXG z1%#W;T-8+h;-5Z-kA0*6b`) z4Ja{$OButNxzMmI`6@QTQ>>TjJwI)jH^eYYxyjs-+*#2r!|}P?H0QR?v%^7t1&s(} zj%zda=M0CYoOV*sWy$&^;5N=IGG+tL@;INe-~q3*iEeT1mKMAVANNw~hGAY-B6vDd z7!k%-{tN{*lkC(QD&xi`cTsN(L}dm)QyLCS0RjKO=uuUJypjZt9gg_vK+I#BLN?D3W_T2(3+~HD<)FO-If9*DmAEQUm9@slFxFAROX!F zdXsFx;(QzYE2_iJa{M1~Pwe$Q}TH(bH{uC4Y>qRDGbnVz^|azo8y2>l_$^po#jmv=DZyD8oe}QePhjygKkR zz_JUKZnZ=WH~`-KFw$8wuG^a0cJTW7P1hV)*;$-h%=D%g&We2Mq{U zsB;(9I)jymOQo_GSjnnlCkO6ey`Nrpaof_4?yQQ9aL3?{2ZEvm{>s6MBx}VeR6Rfq z3vx-q%foB^4Q$}6%& zLXa0^0eRe)8?AehY|ywLNdNXhBeRRM??kr*wqRYlmgrZ_D0 zXLc2vyTCn(9VcPAR;bvntTsx$dK|=7zE6$(IDS$Og2NM2<+xjGc3X>oE-g-<^vJNg z5&#~Pt+!ZL1y=h-J)Y~FaXO`#_mgnoeZ}k+w}Yq60BJa?It4~nr!-k_wv+_5LOBmU zGu*xPh1I&QB<;1$FYV8;geBNSCYrWes`X|Umivv+qrRwYHEKtyjn~Zd+HFPa)jF-M z^k(JxZ!&|q)H}#p3Ob9D@9UAYH0_(kKD`U56yl<#nVorw#k!|JC3Ba&Sy&cPp zJI2zI6dIn7uQ29%^?aadxr~SMov4@VJsWWysBI(elPrA(Q1I5+tPByr3(D z2PG2TXffI&Zr%bZ@`|COoJ~n6ImXyWys|Ct*hy6&FwB12vKf9jV>T+Ey-sj2Tz9q{ zo8S+fQT7<#xNWujrU9t>+__yD{juS)%8X%KxAcC;R$2o_`c3`NdKJ?h z9B@1okI_U@rJ};O7d4A@)>g_=V7VclS6ju%q+*ga7SD0mG4v8EmQ}oMr{cPjVR5p0 z>Bkt6hByiM2ZGfnrr##?B8-*3ZyA#7Dm%B~(OZyb&}(oKO#szF6Pojm?5IwF7BrX2 zT5466si=@(Zan{w^7+3i_r~1suj}A!_W5wv`TPdsia)yBmntHj%gO+<`kf{(wcrrt z>Fj15ZfW--?yR@IGaVC&im5DQ$PViAzV-!%eLGxc{?q!RsBulUuwgl*%?j+J&nfVz zn01~_k%%w#E{uATPb9HH8OBlVxn|yijEd>ngC#jLIOWp8YdIlPC8X0$9J4(ynhj<9 z23rSz1*vyt`ryZ?ns`wvJ=gmqYGV36^I6|d&vW6!h6e?=C_JQIbW6B%;exm&RLS^9 z=fxTjvqR7AY6~pH5s_6nj%UBe5YQNz6GVvFuLL2;7@eXrJqNbT_JHwpv6emEevYNg zutqyoa6PH~bE0vsCsskrIiVoZ7BuRd)02!oEf$No#r0bmvSh2c5iiK%e<^0nFXZmc zJ(znm_ul`XQDZg$Kk@3YeoEUV5EFzBT^8tU?f<&~Gfy($f0%S^!?ua-1weHT+n|~< zDCl$>VL40+pz(hXh2}`$>(u+1a_z2+U?CsL7)#W`j;Z8{4c%6$7t#9}kZNS!-^zN{ zXL6fzm*kG+uFl;}HF^%D+L&W3`5Up38K{atxZt4=5!#DG9{df5E?!vTVS2vnmj_Jj z3vnT{dSZ(U@`Ixc>(Lvy@YUhH$4{I%elK`S zrPMSuwahUm=%_VE?;O2D#GIIQ`ta>Fjk+=9*3%vp!Qi|t1!jEk?_TQ}8?of|sF7Jl1;_F3C|Fe8xwu^@5NRsp|4pX4L>{};}9Y67RKTv96j9rtrVx|2U z??nCFWgJ5-2l#TQ8^c{!k6FrC1n5NQE>*8`L*BrGwXQmcTVdKKk@n-X({dewlf_9< zGCY114zrl-ddk|ZqpJ%>NZjgHEhVeU#zLnSC6dbw%nlGl2*9#dyZvFVInh*Ko3Bux z1xdc1?0@-{fovOP#-JgY?$p~y-?Q`m%?Gcvbkz<`@O>*}rI*d_&ZWIiAE!%R@mj-v zy{b#_f0OneaFSj1nP{DSa}Jer>`>L!Rn=j7rh9VI%xGpbl14eB2qGISA&Dem;DKQQ z3!Ai9Xbs3h(FYqK`NHay$wgdgns*nZk}8>)L`=^_0*BTZM|svGKr zfBt{p+3BrtiRy=|>mHi^*>)D3y0iSRcdSZ-+r0kLJ+)45!QPPkS z|6QJy*Tvo6{L?hy*Af)#e??{6pnIE|L4@8yl4?W#cr4hzKctE*UHqKSHB5BTBR|D? zS8H4)atVnclJUNVZt_8cOc8ZWd^Gp%yJ$4Uh)=&s^2S9&+tiJVPTG53BeS^0J@A^0 zo#{rs4YzO$BIBkQXR!~#zuoG1yM`vp|Hc}>HBQl0lgxP=JmsldqJrT`r(RTW8rLk> z|HQO?-3+|l*@8q(H~3i9cA!Kp+tZ9(ShF4e6I2Ufm48mNEX}vg`qI>TCTHE~@GZ)% zgxQH2_ypx*94;oMGDh z4AVI~AM!KOPfGmfJxB}ZD%nDOmL22IME}6wMlfS$Dw!2-r(GZM3wSde+E_U}>38td zqy99Lfzs-Q`24bfkGUwfP*IVi_N z$3I!}Y?*yOK4$V`W_s*gG<2=dLyp@B=LSi{jEmma+jPB7k?vX=$>u=yCc(ojOHrzH*_tfSW%R_o zSWS)-*Lvi&$U^(Mm2c1w;My1~(@!d`ylH-fs46{wRcW^Z4l8(EBaiQg@ITp9mH?5I z`rp-6q3@;2CC9j537&fxam$o4wf@3)b2CUgb!x_sp7OHm@Di}rnryhmZo{m2D4xjImkh#V%%$XJ+ zD=P@fxw*xKxt~0H{?b!}MY~!*TJKfsxvYJAP$Z&5TKy~TRPh&qGW{pRk+BgL+jEU7 zceIg=f|^}D#qFV|Ws`+}%ewVyhg+Mbohvmo03^lq3xgMJUUlN=c|v-fqlX?paeB32 z>6A?W2ML-*VY)^?UW3AtN>x`hDx0dM5Ummbvs98Wjq5|VF~L_e2e^j4?%AP&w^Xr4e@0aCaKFRdcT&fmL+2YRnN_44A;{S-P=%zAs5?V9UUxn;01sb#O}I9QbGxG*XD3vYPF!m5bDemq{+W7WrLhy zDemItU622HSTzcs!>w#ZDp-(G=IuM7L0QG~O_iGmQ7|Md9XfOzdK$}jd%GqF)(?(L z14A(kS(6@y>j3$A%~Jqt+M8X#l3pWLyumEdQ$lZ6V{I|oQ1I#_2(vcVLn6cQ8 zeF3+9H#5%>922uWR*qY(k}WpFnweFG?VNz^Ngzo!FSaXE1Q7$IsAy@oB%y592^tQA zAGz213rF*&1kdp;gw0aC)ohiS7W)!1xW1G}ZCdOtin%zkwX0Kg49pE<-_Cj9H@Ktf z;8L+v!lIoL7Wp42dLMC#AH<>Jy*23b#=;*=I`;V@S+Il_fsq&uL{oqqRm(j4J=d$?>2D?sN zcKqDrl@7pC_UX4>jF0pC@GF^q=2Yg!%=0r3MKL|WQr=D)QrPn0d>Sf}4ByY$0PiFDv>ywla6e=GEpB5t93lG{ry2H@GE{KcXtb+VqDtRbp;YP|yHxk-XzA8fGf}BcfOcUIswk zsm@bJZETfZ2Nab{2DLf;3s7tFi2|wuUbl`-C$xPTLZcfL(aiUGJ-QADw;$C7fFezf(}NX9Xfj2Qnv?wX1#%@Xx7 ziQ9z7GpD4*{0a>C2gUOE30V(}u7i8Mo@HnN*?B8(>jh15LaM{8BWYnyAV-w57$SgH z1IQY^1s|A!#Z*lLnCol=fU2v^<_13W7Ix*pDS_*Svn4JKKrYnylWTZERttO=avLjP zP+jiM&2^VmXjCkUR85tuvc_%4&|>_4ekG6j1<)yQS*2YdSX(Z>SlIDA!X> z8>rOcPLIwXq^{vSVUA}QlE{4msmgDg%~mBq)v_h4GQ%E~nNhN%yJic>wv}EEEe>wr zwv+1AL3G24YD&nGB~&dv>5ecrr&!{Swj=JCPLk23s7OOt8Sj@30X4KbX}SB*^p*9&^o5 z0F&C)V;jC8cXQF+&CR{Y^i!O=cfmj5a_UAd`R^BO^igm7&O+=8oJH;94bkvt%s0^% zh=hM5>9J_V1!yBtW>$|IJ{$h5Lc`ktou~vuh`vN?iwzNP$2Lj*z&^OH>-hi%D*YEO zJGg;aDDp+`*B3h&smxkl>}lBsfi=cTdph&Ait<(3+q?VatsXq8*_9>f8=|Za5ke3D zQh&7CUf?nv>6iQ*bKS%3xlIHYTD^swTYkg^B|oCl^T9uu29nKrnW{x#9b74x_dS3O z4H=4KHxLq})w{ep5+KXInoZ627*XKV7vGP}b`wcu3AeOzZC$@s{JG}G!X z?$?JBbmyA&CZ_x5yN36 z;EVex1=>wSKA&`;gmF#JmMHEC(jc~oSR@6(zb4&z5B5#VLyZbRkjjM|!_|VxWZeeO zRV7Vhnx#1y7P69(=k~`$=jNg&M~s<%S&ua-^I@N>hh__d=j?ZKGGhw&{OF%TM10i< z5R{zhcWlbNNmG?J_cp4O0S3|Gha-j|rdar2`M4q_R+s{l1<&fFgG?pU%?wi>`e@m> zBQXZGh}zi|Ojyg4PD7AUgsXgQA#tQS>D0i7sf3l$vP>BH;@&{FoeNhuwjS*L9(PLa z>}Joa%FAEwd+)o7$pqZrn|=lUSCt?PFe37W53AL(B$cZw_=a0D0Jv}Z&$S`|dp4*4 z9RHqRgnb4rW_D*j3?vZ+iK$UzFT>pKw@Q2hzD*+0K8botM2IR09}9aZ&42|0d^=oD z+3!R~d9;}p&&O(D(q0{|^k)rCu~{}NVTv|V63&Wt6n9NiXC#ct_J*r1BSC&nGehYw zQTJ4QWiQTZ`?IE8!TJ%sScxnP@idd9qizxd)J8(+Ce^WzUpJ>HOUwNurl~{bNT$j{ z*r+aW=cELbN?8eVm8w&93&4>KBInr`H7arO%dIHccC3Ie0(V%OeJo5DUxa`t<8XO9iV9K<(O}Qn}a*T2mJem zP*!yQbwirfBl;FuH7%9Ti+Y-CvMAR2n`l2;$~c)u=2+&cC^Okk%eNz+IYp<)msbQTs~=pQ7%K3#@s=6z#e+AC{g}<~IJ4$)qAyU*kxW+dqFMXivS6 zIRvVnV1$^}8VmliQf4!AY39}$tM_(hcSgKzM}%=)HpGeB2!RXM6K5=O#X!tOYQ_D_ z{Nz?#rj$^W+OZ$-9azc@%yy|NssO8{wmn>HaYe&@oOSTVY|b973s^2bSj%l?ZOH}; zrL4&5O6K%kG`J%x8tJpk3o>#f@GAmO7t-)f0kahmxJ(4QHZ4~B>eN%0Dx#TL^0RXS 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%0AQ`o9~xhi3#QMt4DbcB zoknuD5YQ*em>JIOyY7A#-g)fg73U7v90|cZ+tiuCsc>KIuB}xj;fXN@+Pwk!;w|ry}a@+AM4I#X&+^Q zvudt4%1zQCeI8Pc4eH>z87j>c?|u~Pv#Y&gjcY+^VP%0^u47_$^RNniGZTS{3y;!j zG$DCcZ5L}d4WGP8!=CND@I!{4A4VqG=FMPDBWX8B;#|oG!^wAcTkH{1Yh=*4?YG35 zP00X=^x2ki`LEQyf02MwRDS9F%OB40%UG+|=ub*Sy&WREJjVw=e90s5KYJqB2F&d* zZd(@LvVEdWc5SW@2HElr{?kzSw9|f%!Y?n4`NYwGa@~B>_Qbmv>@b?Jpfb)|d_Iz6 zb#LLSoK+@H@*pnf^-%(9ZtW;>rZc0ulB{+`_@=aqLV>P!N23XcY{N2=07AW$qN?>f zk8I$2SU1%P(xUS0?<(1qGIQB?85`vThvfBUx``}6mOd~nZ_YjU+{ z3wl*uNnMo1TpQxJzlDAU%_{D@XXMe|llqI*u=N}xq4raf4ZB+zawQCX>V=j3pswaM zr};RmEGYJmEDa^cyk?WX)L;hj)Xnzt`kt#V-gEzjtIq3uWBuxr*Pc3j^f_0+KQ?;Z z*IjeNHCN0{d-djPuD$Br%R2|3D%Dn7Gj{RNSchpOOt3?*=mxf~mwPjl2X%~D!}Vm7 zfUq^P=`FQQ(+%s(6ZOSL{Wfsox{n?_-0o@S!HwU!>)s1zr^kd_nBM&GjW?b<^;BJ- z>K!@o-s7k5HTd5Bhrr8_8BOfEZei^BT3y7;l@5oEJ@qTw{bCz}owH>-rOZk!tO@mJ zGChg*6dP{p*N<&1&Mj{BHN#&o1cgpvPvMkeHju>Cs%3F2h+v9GvMc1NYh6fE>XrVpGG2D>3 zPVLdVSlINmMEDtpv1O^j6>RWn2SPAYH5Qs|(P_146kErE^;u_5G-2{ROD2J64TVAbLlRCsqXN@Q+Qf#?~Yo>M8 z86g6IStHbGmfQGS^vl9Wm{aU`mkJ*){CbupTNu@Na<*OdCvX1hW#hK;qP?p1&^RmX z_fTF7%BuOfBE8ddPTDBBDA} z3x&q=5xtz4`go&SW~{=YWO*k@$X5spVhnJrIAahGn3ZO^%2*o26N`QDntk(BCeJXZ zw)FVLqC#F_BFt-yb0g6!N4mv2w6&nK7ny^npnewyZdil5@b^;B4xn3vzdKb*lH#;Z zt;q8o&6I==UgVgJLcNuwO&!{n+Xp4bw5*jf4sG3xDhO8F20)kZr!a{Qw0mW4O-$A+ zA@=kjBuUM$rGyBjTv@HnVZ-&A7Wr-9M~xRQ9wek%af^v=%N}!0-ABYkt zT(qu1lQHq>ypL$PnYdvrz9gL*!QA9|Y#IW_V%6@6mTlDkQPv@^I)k~K?YiT&a54WT02Drgv$5%Xb{%VZ_vnp_#? z8&vIN1`boT3PX~ykjaeV^-#BhViWCb+fm(T%%=5<*;-P}a;knYIAP&x+SP?YS?QaV z&y2acO+1%fLqo?3F#CO-P(QAkOsn-tx-TWgxapR-hfNP<1EYwB^{mur22Vkie5BZ+H3x8Lv`O(64 zg_{dc%lV$RK%W_~R4o9kZYKfELh+32e%p|a<=(Og3Dr|s)Th>8MvQGL`DXg9NF0`h zJ#cxc1tu%?6}&KcEJ%Wm=hDeG6biYV=pfa_3H3NRFJvVGW~!%hh^QTCj_|>Po@qT@ z2F2_NCf?-$VuY`==g&<{h*Jv1Sw9D#m~C|_5Gp!o)sL*1PdOabVt2eH;*^8f)LqK3 zEEDYTIm4~iHH%c^FzsY|Hp!fu!$Zgy{Dlj+a*aurz3x@ktFKF)AnxfH8vylV!EN?V^64MP(m=57}YW0KoR+@G(=UYT-Di^=Rn3-lI739xlAG z@MyL-^TBx8{!}B5CP(y0Et!tU`wsd`GOsag)vtq5Q9Fr8Bl9Hd|KiF}_}PY*)Cn=$ zR!+-uqB*v$KR*M4nJhMz;1|`Wx1C83`~l?^D}^8`>b9`)u~~{R_6X!t{IBp(OvqNf1A(BLvMP0E3shXT)Cb^`x@QEayjvx)06#Dtm{;(RgToO zgS%JacFjurUFYv%qa!heex+!EqBu0VDF+fjP==o`nQ>&IG)6?6CA}gHXv%G&VIs4X zJtn>yd5LE_*tk8mm?AnGPOwVbiQ&1m=E6jyQX+JrGd5K&7RyUB-ZIy;b8FW2+jjB(L$c$A?xT5^Z8Mu-x zsTh)O%~DgXEg$Y%EC9zrED0}UM=8;ZKntAm1Zq_$Ra-8ftpB?3#6i?!tqQ3_jZQEv83K30w(IUA_mt=?2BN184@zknC9*jkIFR zg2Wgbd>J6pY|BJ7?kMJLISWKunO5t$Sm$XNgQS|a{RsMgSiun?bEMnGDDn(H-WEqL z2u*jg@IvVqEaaKK>X1-tivnDD1Ts;yltD@rz$E9n$YDOSparsoM~C(X4*~|{5RMiar>1>$0%&a;|Y-sRKhYYcFoIwH92pHd+yilYB9vr zTo?-|{sCdZbr->n5z|sSFi5P?_=ge0VbO|Z!;X_A0M}X^!6Xq58w@>^h&PKcTQbTD z8(K1oX~>Kgi!^97&L8?1>F(5_K0p0yPxy^RlZq=G>;jC!<< zOQbclx_Kj9Pm<_Y@+TJ;hDJF{nYU3kzg_xQ%S~`U8PLe}B4+OH_mUu5tXE$1dhC@O zX_cF1;juX0pK@5(<9}V<&f3`+T#hD%E zC|~hrvCozZI}3Lf?v>py+0-357g(ju=4o4jKJq+R2HMYdnNZTLteaZu36=*KGNx>g zXu}qB1TxG9R*ceVNY)N+Alz@5;54|p<#B2*GBen9O;`>CGbH7~E6Z|XfR7EQc zWFT}xb_Txb#}zV8Ddmo9^*gPa;WOe2e{E{PMOJwi3QNNKvfUe*c(?82;`D#HbP0Yc zvP&$(+YgQ{+faNa5Z;o zW&@1|;|sEE(3Ix<8{?<*yqWA*zgg(jR}S$Jnd_FJBve!0{IFPv@+mt*7T|TD@bnJI z>x60xWhXfc;<7fR5xS4fjM680ceHR^x-83<$e&m8Z3zAlGBcLOQRaiBOIJ+R(q297 z_IwD0<6NEEJ=bf70S4`!Zj@UbuzvT>*~OCN0<`Vw!P!=;HY-e5%H?r?fKoQqtojZi z!b6OAgo%*B2@&O$it8fqvD{jFmh138>6$AH;M30*h2aE6`{bf$vS#3kNNu8i;+ePZ zt4%~5Vd%n6qeHL1mbP`_r@P0xUQ%3%CaP=KP2cp~ZV7<#Dl@&slXg*#>M5Rm z`pXF*t$nLU_pAxYcrI{-t^3_SMt}IbcGGvYDD5pAJ9qGOPluVWEq%qY!jy>2_vN#b zl@6VkdQpiZ@jqmpfUQ|6kIk=WN|gI|WrSJ@}< zdAzz9*rBixd}6n(joE%}@UF-%%JdxD>~l!;M*Ga`;)XC2M<5Z`zVVEGwa}8Xl~wL( zOr{WVgAN8$M2^M@+Oh;Td6i z^30j{k!DOQgJ*(Ys?wx|#VSgzh*+RDc9e3D>0yA15df^)f*>hEFBs{>XQ0VKB6jub z^KPg4JRdwHXp;L;_AOlHj+phfSZniA;##IWv-Sry-bPgvrQLx;ddShg z!!*dKex@2LSNrfiM6&~CIP)9WFq(n3xziw<%!8V4bWfU)VS~l3sW5chRXIRH7hWMG zB3iusX~JD18yfUtRN}hnFuz~p4Ev_o57!=V`HNSyG`&MMcI&cL%?*6b@_bhZyc&4I zYZT7rncW8uTx>LNyts)RPK6V}oViWvbbOBY?J_yzbe#cgbWWPsiY+Z}PaQmR_{v=( zoRl$;xji5fzqkaAW6$nL&jT_M1%Yvhts^%ttW2?ub!zCu7yn^~Y0F2v7I@t8aa=mH zd;ceIY&I@l+&9YK-wQucs1{ZVcPVz<9F)LD1E^X#s(j^?;yjao?~LQoGboen}>pJ+|?=6CH_y0XW##rea> ze+6QLeA9ING_6${Y5)59`I#e@?LZTJbFg!5er6fKjm5cprsft9T%DeMznqiPC{^0E z~N}z}#y4bmy*jYMR-3{s*QY zCVpTgJkUJ9-VA)pj15h9<6q4(4RM%EtXiM5 zTJ^~q)m8_)TRV3wuU1OY`1Gb_>1*v4{z|+aCZWGGEt}kbv?|EIl{M1PYkIUp4 zMB;`x4Jvj;a*#rOxl0y4H76OaEa{dpJMFbC&U9%E4qSSn#{IY&P~jpRGpN-_0z*6Z z066yjpO|=Z76^A4*qoVzPbqw++2&p)w25s6RP%-2)r_QtG;U1{zEUH-MOj+*%Cn>f zrY0;dyjicV)4C?KXk?c|hb$c)AAisbQz0ZQG?8V6oFW!_Y3S1*T)K278-T)$P!2$m zwAF90bRygAY@Fw^za{kNxY+x35lfsboEP430kpe0nSW*v3Kp8eeCJ@>iKyZmh23}5$JlL|#h$lKn6+%gt70f4TYVrXj4;9Gjt6WWX- zFn;+Y0C(K>W%y$K%qbIq-$&q2ZxP{LrKZ6bs^06ReY93%o1YjP8yEk3mmkoDdB&^< zIc8{cFAzc{;A9^}79D&{Y*)md3rQQiP!Vk2@_ScQ!PMl^A%;sO@{12&{lEj6kNS7$ zMW|btE$kNB^C>Fw%xFiWINE9}AEw(n84N*nfo6m`NlRul=abbHU&LQ3kL>5wrWw$p zL;dRu$8}!Vtofz>JopP1*kFy>F^0m@lmSiXLwA+9rlZ(mgMrxn!0b|$g)h3+Ti+4G zx4ffV{$Kw9R^XdIYm|g@{~~~rwyoI=y;y8v&F&@yyeQIH(|4Mv4d8u9tGG}z?CH0D ziIqZfe79sKrRdGri|}>8p0N!L`ZY$DS57UjeCbP)8TK_`dD8dE;9qG$1=-qIfKWKj zY*O_!aN^g}P^`dJVz22rPwQf#QCKTnQMgG>%Y0km{e|Bs6uKiXF~im5EGb(MELFYS z!YAbFVNuF5o5@y}-FR>Y<-|o9C`ZjUg={!mAPzJB_a0dp4jN!NfO&!mz|;edd43pi(6b;nuVdH(u)ZoT60Nia5X`Z;flxvwGU)LY=MrYBx| z^1$wm?%3kY++JU&6kq@5iAfQymfHq4O`&MKB(`GmVcoPf1DJ+J%~~w!cFn)_iaIP+ zu@Qx4u_`pprf#RHW`>r{mWYA8!9U1WXO<>3sv#Q%-Aw~C+wxKXD#UE2Z?nY-iHOrn z2o$cZ>1l7;f8#YbUVr>#f5LKhEWhWv8_r*U=w@9G$E9|qja(nBUVUia5lq^>_5Ek} zJY#$!AVPKRHt)FdG$3Ar9GVs_W_Xl2Q`R(+S~Ap%k%e^>Ihr-)yuuDOBpe@Pw2GF) z^l6AqOJZ@kh}MgQ*UHZcxFM90xObBFOsxAf7G8JJHqF0O?%jWlzZ z=lLc&jHV0C!fN3L$#Feg(&6aaEaH&7vv74W-!IZqgRN+L8(G{i3e38CGgkE8EL1#Y z;3329dD=BkTi>YH_5RoqQ}`d(TyyrJdegG5e)yz$n*r{sRc=|^vuod3rZw6J_P$}) zdWn+3kAxd0TS)&!N{EQI&DTzev*dML@*w0oV2$f_ok0`+rKB;|uDH0oeEje`_8*?s zbdDRo`?Qm%ufFod$H+B&aCUQbX+L9e>D~i}_8smv`NYiep#5o5vbmMkOy7|q;FODl zror(;IP@@UTqpeDY}WZTXiCkiJ0Nv=kkOjO$*8M5$1LaQM@3=?m5mH$6p^~bsAVMn zlnD<-Hn_IbYjgBm-mxeZ*^-dhxA~#5@uDdL7C}_i5&pFL7=C1MrCl=Fh-**Vt)!AGCPq1;axK?#v9)Fyyv6HmP2tGe^5O6 z0Bn}5-Q@A-&7Ow55{&5@vgRkL_^vtwFVx7ekMQ&8H__=rukd0y^x>f+w&zX=O6_goZe7p03luXSnZqJ_iR$bzHO3O0A|_)hKW=Xw>6*$7?K> zeW$|XsG@7$r0gr~IA%~X3?J5Ok8DZ^H6)+{;;Nk1#u%hb7d}@7Xc`=RkXY!nh$66N zbYAcQ;@C-jwm}D62*t?<@K11!e!p&Mkd;#I#K+8nc!C%S=@es;EJs_zf->2X#(v&~)mul|j zLg7f^y28_ig?PtSJXZtxU&C4AN}QPj-y(|6k_|L-(lb!~qQW7yL5|~)&2zPkJu*`S zqw=G?0#UC~`E@9XomBoV+3Ffy$pgq4@DJ?=kDoknY!)$Q^W{C5lq$POStkg=*`xbU z9DQjQAp+8Lyx3x9xw~$BXJu+^7N)=j_{i?PClLi2T;2r^dMk_j4(`(2qt81kNi{)i zUw(ZT;nl?*hi4`Yeq`4|r|vo6j#|{2;eO(i21|;AkdpboT7o9G?;2wW9a>6FVD?sjdzST=iqTS)I4p!mh%mhzBGq&y6A` zxPPll4QDW2rK9HYkZX0=JlaVj#me4mXYHVplVBM{tIPeC;^YwvzuXmGl*~8vSd=XH z6A@L&7m*fii6`X{Fb78Ag1ANtd^WUs*eG)llW7hhD_ZH`J3QGa8n1r!ybXadO+opd zoonb>=-c39#CqZV;C=uGfA+!`2xse!d)D`?gTW`kVeQJXv7OP2&z$ZcNbGByC&Ixo+v=T$;|#f>QCicW=Jq z;KA{+gj%t8@ZekUW;Vz6&(W9BTp=wi6>b-&={JIqWo#)Tq zbn@`=Tl6(HwX}17wJr4h^xWd1<1g?D$9k>A0V1&r%!-vDprKmB!ju6RKxmXj)F$U@ zQ9Sq?*r}Vla zZv+?_a@LUx;XSA3XTnNt-|45_@kb}mG?Mb{-0>@KSy;Vp(43um>(wWIX?DQ^e$eVK zuN~feaCxQH1kbAMG)sw)q+Wi}S(FAIAG3s}WWq@^yn78CBjWI)UH0%fp(>`UbY6EW zjG{_xQyW!0eDGDag|HlcVMq0LxhJ9dyIehr$X9jqC~E=`xC)6JxZ;Y?iCN5H;1Sv3`R&R0lA>lxnbKL`reJ}AKU+W&+7~APG?3Z?5ajP+V z+f~K#-~*N3WRL)085W+|arN1gmT*qwMCD@TXxCiQXI2Tbl1S%HV3WP23Y(V>a%kU8 z7X!*?ch%F$X1hLk?{o*4t>RRzIMHm^9_Y^|Tpw%re_AKVGHoO1_D#KE+un~_>g<+){%e)7> zy6Q%aYHS%dt$Em;>PMbqY1-FM-j1;0l!{^Gxu&i?y;R|Ip?In^_??x>&7I}Av1iuR z5_0`P<9uK{2uzUywj zl0L25tDgir?&k2&u@BHoIsmWz_ZaO4h(`Q5FYp*{b_fSF+VzT(Bs!%A`E_6ji_QJD z_lb?wgmr2&`ZvV1$PK&egRhnAhYr06KciAv1(oWp?GE->%e0JV25q=wN1U#rMRe%U zOTmFG2Kp=XE)hRhgsr@FIP-Uy=%#GjnUr&Vh0sRHu*EEiD@3`vHG(`#PxME`Y|HIo zGoo^ux~kASH+|~F#T&1``HDleN<2G%;_Opv6Q>WZF9=Nq|Epdt-}m|}P92&oCn9)# zOx$e^7}3fNEj;D|+1CKvG19oW5*eUoQ1BS1T4{OZ;PERDJgYZ3c;=-`;8k~DIJ;xj zb<5S`hpxN&lP6CtEE^cJc5Pwx(241*t~h+hv}r9j#+no9Y^mXvZFyP9JK|%O_bf*o zcDP(Jp_<)BX(kHx&MzcI(>S(s&kN368rD|s5&tX~)=9T2Q~eZoB1ztd~Mhght$ClHq$i5z{9>Ecp<>dtKv7HaeY%19s31*(ON zY|goVy7%s{-gn<%w_V%4<9-PLrzUK}RY*5*dvK(U4IP~q%3AotjcDU6CK!Pk#7vxk zsRWx0&B(!@`0Pdm8vo%{gKw{b&#XSk27h6lJOYal>9uoA^0p8>z z!B-gg0`W`Dsm0d%xN7h);_@`Vfx3nr%+4Sod+@Tzv~Bi_#&~DB+JneZ$?1AtqF1YpDg*0i2eAcH#bG#VB&q6Q4Wyp zRR@CzR~|5^<^@7Q0(YJ-)OSolwZZQrMr*rI|B)e>Hmk=zR5R!XI;UPJJC<~$UVJu2- zjfMa#-?N>k4Ewuf?JDE!QN5Z9f~96;Cx+OK1=%r0f#&J?GZkL?aU0N*FbRH$$R_ z+W%xV`sTo-K;m%Zqwg_=fuol2R)e<$WV^12Z-Z~U|RoL4foU1@Au zi&1kqdt46bTNIB;lF`Nd|3sy1>tYGpBwEb7s+#`;|Kfu{4k9~>;f2Npi#bu_qx}k@i z%9Xft1q(~1)2B-%#YubVjQH=pXVibcnLTuRY+SsaCuxRx{+>AZKN9lT6uSAW;_j3Q z!X1zs>kjNpdVq^7-fA`nSshQA=g1TuEB*LI}!oWB9kKY2B zlYafwGn%wowg-(c4B!~Jb?{LGrq8{zut+c(vG;Ce^Lw^#&=?Zb>>%)~>f zZNP7HCib!>LOKzIITFsl`su;{qQx;31f~Jwa%sZ#Ikmu-O_YdZFdG`WlXz4|flr?@ zc&J^}rX`SbEj@vu7+q^++51J@Z4&XCHb)AaoT3R``lnVK>U;{~e(_ z#)akID`J{Qvbjz}bjvV%?B=fGcC`NbC>iADrgLd^8?Y#whnNxdud3vpN-xL z`b@OWJ?Z8g>Q>Ix)w!xe^-Rxn_vD;@ zv0z$?-uWq0JDR+oacWES`sgYSw7PwGzIApJ4hk-wJ7^wYB2&2$KYIHR3J5QL#KqI?!a-5gpW zF^B{Oc+&lypdkw#BP9p-(@Hi0_#Pw$u|u%l;n#^u*lB47c%nW&DS92AJ|vq?4;}|Y z0;2j;wkClNr%!-TyPwweW9o1b%tPKXO2RSNynn2m%>=XBo=4aql3 zHjoVaY=GjL;BS~FR4eyTB%=-_)yO=&Ud>}>f|-q7ZAu}PcFN7&Wv*VqQTfsR1- zUX=~Y(MYlUqTf_3Q>{!+7CG%Bb9kB7#_W5~KRBG0$%%=oW|!G9%+CYe^Ya{11{bN3x9$+C(D zKXfL>uE=HEl`z*RG=1=~(f3JDdtYYV5%;y~#n5rF%xrs0ev;{R;z8@ZmtO289g7V9 zIjqDIERFGEVbZJ-@mtEPnuin2lDj*_OiD9|;U=t^Q7L&V-JuEVNqeK%SxmrYT{z6q zgd4=5;!~28ocB^GowhIl*s9;PbMMN+K||~^v^q&2yQv&dP|N0Z36SZrYpzvY)3s+^ zk2w`)wNPtB`R~oOsvdintyWDB3(c9!vpIz{YW4^8Sm)?+d>g&_!5FCm_>9ylS4xco z+qUeIU?q3$GS+pc`|fYh$rT=Okb`(!pW8|&59GFQmyMj8XST9w6>EOpwg`z!Uzba{ zu|~_*kqmVyh|6J4(c9yb{pwt(-mKWZ6Iqp}=~$v1$5c`Iv;Up+$6Jk|JbVH3-)BTz ztd}aC6t^&uhe`R_>X2DA4f_l+Et1urinP)QojgqKju|jLM4erjZ*2g;OW$cOl`yhM z*>#_H>ay#r*<8g5?R;Tks}f;=q=Icd``G%0Q_HFxYxZXkJ~TC}5N4<;1UgU+#%btZu1fEiHC0zi{rcsac3LViER5no$x^d2LmB@q?-iNoscLncn@=7=&NqGn*Vz86(v4<{q-%3pF z1%4g@{s@JgjOHVmfD|>qZSwr$3eT#8JD{rE{ru-YUkmkw^i6aiJdwchtrtq!N?F!I zQ#Ru9je|7ghiA9%e(s65ls^gLlJw5V7< zvsPo@p~!=+;@Dem<~^f!^4VkAZd|N{PF@*47rVaVy=BvLTsl@zbsGvHo*$^1jIFSlVp6^l zj%A+BJnC0xp2&PA^Tko#IO(}hY{Fq{WV+48JWixbp*`xXPe6gh-1p`-%ECsF(0q$K z3!@f2QTnlge!sw>q3Q&RxanMKh_>kbNCx{fHA8p}NYoNVIMRsDAz@SGXveLz6FlrK zikQ-Eo@>q24TTn`3{;8(jpHqGyC2n?+$5*Amd~l#e4Q@MXrz&gfM#o`#RNFi}Qr)%}n{iHo*IgMG{)R@=;DK8|>oZ@T=8$A}AYM=U| z3}hi)QMCkQoC}X+t@TH?l2GEqnvr4Kf%M|y#Ny)4t;PE8dM`4XTW;*M_Zvq;p2OHtAvIec_S+5GIKz%ZZ@OZl5|nG3XS== zbA0`d8@9BT6?@9G=n>a3!r#z{ET|@_IiW&rqVCsQ+YTK+{E|i!!Nu;}9=2yKOHyg2 z*_oSMXh!x1_xoegN0?o5CEIDgkfM5z@GZLGh!;`}(6G%iAs`eGu&q(LWpgk)MGGE{ zNRoaMSi`}v@@g(+EnMu2?Z8P>B2zT9j9`L34`_dU#mg5Q_3j7s2x!!VC%1bF(Q;Mx z2swJs{Y2v=k5E|#?}c{BQ9olgRHaapTQOBtS)tHiZj_o;+qy%M1asuZLm^=T>j8~o z0twB1mbq`tv0-AZw_9gB7Ct4@tFJy{*qn|;^))$`-p{3`A>Z|4r!iB=Iu1Iy-KChh z7l?Y~p8Hg%n0L1xt?7;V2{W(C|zjS(k4-6v=ET zp@Q|_p+w1l#*qlZp3&Q5AhW2;|ANse6qu^!V>Rb$3KH=X&XG5jSzwm>zRX#sZ(ovm zZQ@}i!4S?u!M!MH!_`V>gkvIXO8hMLy;kBEHQ7&*rEdw&cs7Yuwxk_4w^&dTB<qM}zaZl= z1EnpeSxKg9Nu{!scH=#SiXFBz8fD3MT*XC5(KHjemehChrHR>U$#uMOr4xFfy?s}~ zRjE37uS!&}cBWF3v0`tF?V>7&!O^kFB2>Y5Wp?XwxufBzWtg(()DE$G8N65S za`z_@6W*V?HXm4s*EGGdOq@Cu1pn0Xd;V0H?&YB4ifX&1C4}^X zXNHABXnF-5p{0^*tBRv?7#hxEl8W=ZI&m7F$!uC-HBnlf0p)b5*iUH@gk(G%uS3E1u46m{OOQw(Xrc5oMe8+m=^mX22FL@c0^x zz*wc;ZY+FJEF)7vFi+;1OwWd*vOxfRQ?s34la7s?hTeSlpr*xsr+t2GJhUDBG+x8@ z?RS-H8eJNnTHG~1JFRNdv%9CqnoU_9tF#&`mP2Xx>&%SQi7FRVHrPro;`PX_E(&Zr zM9(Sr+xf!alS5A-R+W9sNtuiz5XMurqqV2?6q5MwH{qLMFLRjbnP+ES#8&?Qo%tL` zF=^L>Fd0JLNydZ?GxSG<26bACh9Ih&3LiE~Kt=gxs+K^aedeNmieJcI^9r+7Fi-oU z%xG@NQ#=Czo3c9B_svnNa7e{9?0MmI0LZao$q5&BXTbD{4T#c(O3U{e*BT&o> z0!NNuJT?vk+woyNkAZ1huIzC@$84=JJ1Gh)Cdc;eJaW~!Gq1VIko6pvnT8mA%yD#; z0%c)^D$MA=7--xB`YncTFOIB1Vp;~UGP={n= zNzIS;eX_8^OIB4|7={aCSyF94%@AAt;{Wc6y@`c9F?eIIAOk$Wvgm+ zmqW_ab8HrAfVBfV@(MAloC zO-l#uJt&rrz~1>=_y#za$!4mV`OIo&KhwxpWUk9(`mOe+-q2y?0oRnlT+$OnFR7a4 z7%dLwt4yGA^wP$}2@rAFQ?C{!w(xkVYg;hFa=Pa?&QZK~*WN2GJp0-s2T$sLckPx7 zH(m2yaK)W!X{?07SvjoNXIgtgzq@VajFw}z{XP&QX>tD9FMQGWKuHGv-LGcT9Sr{U zrfy%B{TIDZqPccOz4O=4UU&Y3t2^>V-`}?UzN@F_PVGE9(^1vuNas9kX)?fy6E$~V zaq_*}S3`)UN8W*&pmTCe!e!|R*TT}+$qvv85_r_3icN&h{5HG;PGl};lKXjVhrL$h zxCO&)ZF<-cyJ2jml9vPx5&pI3dK;mZ5urKTgJc-CZ*L5D84RmBMWlZfv^^@ymwF5B z1mCKbb}g1TaY>g9H_k#^`kS}}0~+w6BGDx=oS^aBT%=Sl@&%A6@2 z(1@2lX43Ks)atrK4$3)%WF=dg?HrBs%sm565G-pm zgJj=t9eSY0ST*>sm4@s4D4Uqb$aLSV>|Wg_}Jk%&%-6lm+e#( zt7I4o#d60d&fxRvTi(L#oAR3@iZSmQ;LE#$wm@Dh!HMWYoT3F z<}^j3Nhg|T_U6;bHhZ56{HjWna5HY;P^2u%3w3b6;WG0Z$!HzPk!Mm0?$Z+h`Z#AI z-H_eL^CFk?!9yJ9;smB%zYiG93YWm>tX-3qO0w1TJOi*3L*EbCiI_r^6DL+VgVyA( zd%-^rUW!46=r&hpwvK<4!5RlXpp@yH8*`RMMhoY_e&9TcwA%C z4YQRH*@)e6j-O@_aT=hN(Rn)M&j~lqtMJH4e9OQA|9FZi_T*lY`*JjPkL|}OxoFI_coMk?HbBS&#fIvW$a{-m~TL|*La67H!)<*^k29wQ$loN5cK_pN|=wyFe~PlZmO0tgaWjvvZVO$Db;BU`~x3UqXO zowI}4jB-+l&~3g&Eh{1fz^cfIR@X~&TG^)Yig&a5Xr(cgw| zfs>gXOzI!aoX%X}XoYNF^oFDXo4{GymvHK)^`rA?wJmR+UhJo;Tp&m=ftI46Brp0R zBrW<$6O_)1aO0BB^$PfCkT2)7Uxb#08np*shD&O_F+W)&FMUa)pcsK`$cBj?)lCd# zOKXnl3Y9FSUgN}3dV67U?ZAO*_293r%`aBVKiqNPV5NHCn>&BuVdA$99X)jMi-Bba zm`T+nJ4^;&g?V;&>T6Nd3rVB#lAouY3zb?9z4Rrug3R$^75Io@JBsCnj^1kPyjQ7K zS1hKE^|ATY9S09oDhKziEzXy#aP8p1YUQB5^Wj%R)oumkReypTbv#OvODWFu8(|?c zommu|NkZ0S(g=N8nY#&1M(6`?XpiwaM<)7L1xHmWrBQ5yuUZ~Q6UR?9Jmi7nZ%B+lZPMP35kZN4+p;^ zhq+RWwoQ460?s&FsQ>9sz$EF)#LNU`!o1Oh!AvNxEUzuH>qIB-dPug)0Ywi#v~#%k zz6swd{aNM&=P2}s(U|_?Ms!dx2qa!bYXn%ZFhAU;LYuaRoj564M3VI5FzkGw{KPU8 zNU~)xm!?d5qDPZkn<5|E73D5s^v;jBAJ~1MPvwQZYs>v(wr$dq4_6;Q;V>&((kx4D zOzAd)UeS~+$C&}Ove9UD`rW!88JKB7W-nFGADDoWZ8c?PXV?^NkqZv(b{uNTmRoPI zsfJipnc;3Ip+utBI7W=9UYoaVB*)-y4lOTjq4F%D6Pg?amu*?zR$30=+FOq~g60LA zN@G%YWF~eaEHkT?-9)8v{%o!o>Nyk26nQz#>l~QPYntZJd2HbKA!9~iW~E#y5~lJo zgqW@2{7&r2)Uk@H1mgSw)$saNI*4)0XR1@Yvw_R5iV9vECVEWC!sfyZK$j>yV+iWIj zezL!teLmS@Z%cmu*!uc=fZ^Ja?aL~W^W_CF`1rO8vkyuO3b?OxGLzs)jPiZ6nXQ?X z%mE%fe`Xm!rfaIfFlk4BqTq9wuKSrYZ%^^m+EZzo>8Z5X^Ojqm0teHy*;CIX5BAhO zGc)3>-+$tXze~^m_;zv4nVC&>_-qUcnWpG$-1B22unC{@#~#}mJ~kLWvQq~?@yNNb z&1NhimH4SoIym@Ko|Cwx9vOUp@IN`@#g9GS%*;K5N1l9tlC67X@)O)K_%A>9d~Dym z4NfzkXo^YfRn857Ya@l1n)+!;yEkG7Nc|ulOKuVYYafzm_)D5UxP(@^C!ShFC3$+S zol+)q0Fr4?13$R^!uiFe9n0I-&)#su`jOe$u$aH&=!t*eI5}s}U$&*W$1)BcI)1~+ z*UoeYr^5mcnLDrjby!5~mr%W^%}hf8Ltl4NN_uw_F*MQSB~GBOGvBrtGBvlfc>coe zr{1!4Td_j5#ku20f9=$X2O2GKdy0}%8asULxeqOFh48@6-S5L;qfj3s$&V}H>@@Gb z-JqKuvXY0sqU*|%tYMvhjgj`LyjiTBKC?NPE@UI-xk;`%B~D%R+%&KyfOS(n!p-QO zSTn021#%QCtU8khD!Bdxf8X2}kk>p4nX>dy@8Zw(kVlF7nn#fxyMeJ=Z8z1ch)lzF zma2*(8JbFha;1#sAIa%Rixk|uN4kE?7U@I~D>z@!4C#lsQdI|E9DGSOESKmHqR zG?hm4JCI_PTkY`<7zY!`brqL<$$=V?rk^|bEH|)-^!Fs8ZuF%eN}{;qm9JzX+-%lP zmTMGX36tvZHfXY>-;h4cAo%r;{Hznp2 zkH1K%ow1YYvx!XhNTs>0TXR%J8hfeB z>iM&}Dx0Q@HKo+M>BgJcGfQl_8B|HYX}L4CzOIcGCIhz^hT8giqQ`)mFHLl}W$EgL z2pv6sPGO2uk~L3K6piM$F6XJnR<5VX>}{-^JIkhkeVmmPRaeS$H{SHMyuwBpX&7rr zLZ-LxJK!kN-M@Sd`}*A2+GI8F8q9D`V;Y<{Y=Ld+b%A?Vn3s~w4wYMV!$1(mTIAGgI2eA(3UjVMyl=HT8P{X#dYwXdVb>9x zm+`4UGM)C+fuq+}!(eiH_tL(JK#$n&lMO>%w3&%cKz{qg0jUDnpw3U9-md|Wzxc4C znO;z+7b?u1mZX37z&Vny*Jm2jIRw0amOkK_IVZq zSH9A4bM@(^-4u?nDc=Mqn3Zsuu)Bs}B%`!)TF^GCx*q-&mNSP*FohT>_Oma{O+UJO4^T8GDlmC7@0bT) zG%nj<@GTf=5M%SKgV>U8PR#FEJ^b?v)AfRHDMVJCsM78&AGqSe`l-l~Bs-_!dNhH{ zSvOm&=OS0KeXrjyXM?!dZcerFR8$-MVlD?9KP=`d*`h;G_WYWW1viZ_B!5TxTIQOJ1%{H&+y15oO`&EUZsDrI+z$8;IDlca#cIdEJxJt*F2IITBb|nM)9xw`L;h zc%e}UOuaNELuq+7%Z%W<1SRn9r=9{|2!hyhBqisUoWe}aYeZGVd$(l2y0xIHmS+^| zl}@gra*{8}*ES=ISJ(;uI=x(ju zhKfun)?LkWJc5`9JzY_KFDoJ4Eb#W5!JVD;Veav{@C381N|||4CC#fB6W*;vUe|^1 z#{9wtPhIufygs@NHWf%CQfoD+pyrKulD=0;YHKZ?_UF4oSlnq9MM9jAu-35aVKGNF z@DJ=!p8Noh%n~Elnm8st&$WQK%Gaz70OeuK5AU0=~gEsGJ{s{jsCR zAu{1H37k12VV5Zp>CBn*SLNN0l!|xX{rtga^>&P;PV?BYqY{qW27E6k;SEe*?$10Y^VTHO zoUm6*#PO8FDi% zB)(z5=E)jDbthOS3vHoc!7lm2$rm)UN~_%C=(Dk1QUIV%wXbr}Squi(b5?31sf|*N zH>_#?I4=V`-uFtpX_c8fR>7pqTG-FTmez3rZ06|TUH2I>!h-#pSzTeL_rnMRNk!azA{tm;9$dP+0%9o%@ZLGtk=0#S?t-SJ^I2(r+33{MUt z0JHf?^)qVTF1e>x<4|ANe*|S+Bx5;vCsMtVm5=l6pA|LXWmlqHn?1=#k%IM)X(Z{P zCfdicgxD68Cl@>@4f`S`==H~Cs8Vwz`#6u&7G^nLB_f<$I3+#qeD1t3L4mEeM$x*Y za(5$JyeciGdOX=1y#(Q^4QcASBw4(!WSW#&F=K~Sgk%!!7*tRm}A5t-pofcf1RKVha-hM)Uu1s#fAP* zkQaF^{zA$n!d7rMQNukB>d{XSKIR}t-sByPDdp8DzQwL3)K8)yhLvGldkclcX^Ij! zC4tYI;(7?QRiQN4tM14|5?LZ%dO>IkIoqb)Y~*`9{IgU~Zllaxp8_Ln_2j%9eEkc@e*-DQ#Of zWlKhY__C6fK;6+TCAMX%yLn5qsG8qyGW#>%?yf0SC}G=CEvMv|if$+-+n|2IK)R+f zKOM;uR&)HE=87Tfexcpn!HjoF(H+eMuPJxfr<$S`G_KS5EqLq(R27>%)HAzf$Lx}i zm;v(P1EoT_zxDEG-+9Z&X6H1mH*;{`i5vf)!h8+_eWI~6(Q9Qfu&}CnoRk>qY)#m% zhS|euik8*L;QCOL0q1OFccp}Z7ZPMEu8z#8L$xeam^_IawVB#v2oLPgGn~F|EOsb9di<^1`n^@gag}^nKJ)AkZjkL z4LEoX6M_^f8ElnaaFi;Z~S852ikDj7X&e%xu6{YpKkkL%YqmLfGM9J}Y9 zFIT&b@pgSYzy0);JLC4+UL6 z(rT!@iuhCl-Lhh+3h&gnv}OxPG*I>&P`x~lW$5n23GjGG?B?M5)$RArm6;+@kis-c z`A<&llZ>$wJnn?N#XWl#Jp_$0?czJNpv28K7sju6e7Y!Wn3sPy>W{x7hAwlyASrm7 zbd~0s?%~P9FL*&ftlH$(S8rLq^VPkw%w0FR+#Q?;XLl7_gZF`7$&C65-;(wkB#hb# zMjUmXHsqK(6J}!Ja@-lNAfhT$0z>}h`LrmNsp7xqkRyuP+QCc{Qh&ODqZG&%qDQtD z>p;pX+?`DrO)V`UaL|!LwW>rlyFa+0C8)5;VyiPT+Zp^?o);=!8g#s+=r_i;9zRIC z#Y)8deNsF%_zsWAVTb(IJ4+n8SFy*fg6M`y>Rj0K|FZO9_Vm|eUXXbp^GN1hnP1Ih zngR@=R!=0a$gn0dpKX(6Ff>QRN76z)p$8Eyx6H6liW>xJP%X{Md!tIYH1{xUdLbi? z+Fya9Grv0n@K(;UO?cBJClMOKbq3KWCp-;sLSHD#1;D!}YenVqC5x9mtI%}Lox^se zw69dQA%NV4V!Q7F zt0=>7$!u9_NFh&AoME+sx*1ym}=@OB9*c> z_#cizW5;uuLt^j9XDeJ>sKuB7weGpV^=lMtTScbF8GvhbDy?i!LNgL@&s`1JJzJ%t z=Qx0~W*M$(NJngG*^vr|F~a4NMFl@0EH`9MrYwtC&>NYLJM-xNq*i^KBj zC(N&K^)(EQmC#p2q{XZj6k;uQR&=DEgL&*W&9Ok`lQ*U{Os;AGd= zn=*e-Hutn_cdcBlmIt5GTu<+GEhJk0LmuIrN_unrpmt$qe!iPf40PvcyJVQ- zbgm0duG~~CPmRBF@1e!mDel|0D*bkPp|V|MTFY(?uhX5cMB~$Q3#WF{jc?-zVa0Cp zgE-$nZ%$c!#qNDumHF-x-8sLsbA5HoqG9yoa(`{#UFGUXE_1zJ&Fsspv$47>^M=gF z63e^4nD8>y1ui20m-JF3TwqP6@p~g47Lv-_1rb!?|B~)^wmZ0|!$0hA{7TcBV&S5W zD$%9^6{W09+eOJgA)SYaBg~lZbArBLbUSq(A)iZHakr-#=qFvziLAzaU|GT5SSLu8 zc)1kQNL7#R4;%cyR5O$+8}%&|5Qr74!b_5oq#TaCS(#yeU*qRQIF7lel6 z_WQWiXG@)^Oe{)YbGY>e)KXd9xQNNjd$rwd+1YxBJH@0whWm>;rjT@gGVN-acfD`?`pRmo>J6(Ffjm(t)+xlyDr}CKhU$>Lx#1YgIp-m?xd6Ig5*7A-MlOubrd};7?5#(SVxGb?o%N#==+h!10)7xS_$Q3zzJ-qcwo&!QeQ3wK9wXeMOmhCS}_xXOd&pl>=Ze_MR zuY!Dh6Q9^7WRd>U0Ek5MKXDx92UeL%WX4rFVPx7UGO8wrC2~`g#msiYq%?UWxGSGQEWf2`>2o-kdbMu@uou!Pm>>iBPwu?&e0q29!q9^xE~yPW!yk_n)K=i=% z5mq~;r2d!ZW8q}R$P_a(0$1-gW?4TfqDx}>xP09Ps6T|5NQx$Lt(8>44QXTWrle7n z7M&-5Q_0LvZ6~aSsj=L=3rjmXFwEa?7#Gy8>0O-B{0;pyWGkW@Uc_^)O%T zxQhbImi~~v^tq+occc-zjIDNQT+)qE|V4`jz;($mfdZO<`_)m}kU+yLio zPQuwlm^aMxvT;lr^>=W+qgTZ0Z8RT;mAVYmH#U62oq~sRDZv3K2`fc-$#o6{!$cS# z|TQ#HV2WW3LauZvO7>f&6I=1m%wR{%~E zXFQ~q1eXs@)K^Yicl^+WxKP}8@TwDM53ky;rf5)R-nN7!7_)m8mVO(t1iLAL%)eq~1lV{goIrzbzyDK${bNTVK5|Z{+sg{^TDI;rYycR(#$@D9GTnYZ`BxyPvpfn9YWo!!P#4yWTbUcGjlskKIf962A#=mHs$WXBPj>nHO=J zq>`2nGxwhnADm~hPU3Xad`Fw;3;ACPHBnL1WRIS z^fv}ygbB(Tc&j$qDEr*imb5)Rb?}Nud9K+rWFpDY@j>7ZNCbcNYopMH0qM4YIR zDoz1cKX&Ua=afeEvTB1#Ar$6)%uB&Zv81r8-Jx&`WF1JPEPVxLgKD`Z|HApACxhM| zO?r(%0WZy#mb7+d=?G-rz<>X%Zb8+Au~3PK|H4=KM#KSLUehh)a)qva>a1!wmchGH zy*y_nHUSfpdrmbZUb*hau`eUT8ueO#ijDEs%u#{iIvQiP;r+l*ImVb)iTq8Kh-v&Y z30w6>jc-W~%1^m6=a}_J`_5cSk|`ov+=Hm&1R$*{LP310L>#BuO2HC9Q3sFf3!O=3 zQz64KJ>JgA3(2Z6S-kk%1rpZ?kdWe;E?Y{(GlH>&Y?D8~UTm<{eY!O>;5a8mUBbX_ zG7al455_f@+3kM|V7boY(2`+Y9E8jwrl#~2RBvnnvSQS?5Y_baK##ZIHIDeV08)!l z=lR=X9prpVpVrq-=FZHl zTIyP*gq&z9TZ?)VdzN>vOc%40`39EHuHELTb6buzCIHBqPV2rm?l0vq%vH86-8VI> zOE6eJbi#U>b&F!oFW*^(%;9|A^7io=O(<7*Ngd#>XI=w1LJ{tz6+~=#KC`O6Uk~gO zVP<2gF=gw4Z4&vJ)#?2K(xY)^rs&pWv+O%E0V#ga#&ey_y!aVES#O9OGD<6^qK$B| zXi6foL597-X`q7-K|Q@vOO$B!dkN;jGaHkK6wQIyXk$vp8z| z`X?Isz|bVAR=#@7CeYLjnaLniiz-lx>yBZlDs%4_p4mV?n`)s(4K=4$YV%X&ysjgt zcxCn;P;}r|^2k&k#lDqwOvRh4SJ;6D)jVARP~wPAg~0LwdquTL%Q8~CO==3PjLiv(IUnJrk59P5@E^f20^xHFe6pYLJ+T0OoBQhNYO~Y*qS{i6OJUxYsxN zrY|QLNMC-_l%e2@U%_!Pl)PFw&BJ_J`Vw2ycLid?wqI;rOS z(DQ0Rp;?`SkeWe_d_7QZeU_|p;}k+we)cVje)Ab0X&Z06CL+kSnf)7>wl|pevKYmP zH~an)2m>ur1{1c)taV@}mhcaJ=?{6K%nGD#W0pvCtW;^t9$}(Cmv1|;QsR-KazQdH z=m-a#DHqOCtAuT+C<+$tUGl;!PfXXpAS_o(a>D!nD3sOlF=cAzl3u#7R=eQQ`zEGI`izX3;7 zyHkO$L^gBOOHDsmg8(w;yzF2mE*pZ=7d$LPQg{0J(ce0E&FhMV%3}Z26@#xiS&3pd z9*^4X>HfLBJ9jJcB91*GGdCa$3HwOfbL#k;7q)OLw;mOrfKOmw4Rf+zIA7#(YNp58 zHpN6IDw1cTn1V3JiGO`Po6~BggR#xo8N2{ugK7MtqnmjmjzGg$>m34Pa+>*2do!mq zR|ziV)_;I9>0N>z$@~4qWOGiDs5LyX<<%01_O$J*y~vr;5`>eV6-09VQfSDxGXsd( zoL(`jn~u_OOoLc@(XDQ&vTKaHj#sKuegN_yN@0 z{KvqA4IdDM)mrS6vp}uncu3IH8*@5=MDkn?l%vnrb(2Si^E6lL%r2HXJS>SC%-dR7 z(V5U-Hs=E~_c}&kN#AlnKA;zGL@p?JRQlzwdVvNJ33hkKwD(IYbRCIMwHWWaG0U7@ zRfU*lZ`>CbRZ5OjOLfi2TKyWa_MAikQz$TI5+sXpV4>4zTEGbd*Ww9_#}8_eDJ45`HWccOrT6lKb2LuI20C!DYprko;h;zhO>u% zOpf$1KDz(th1)Mrq{v(Q?Rv?pl#Z|0EbQ03Y@ybjT+6$SK$+eCQ|W|fQ`zA8&XLQ` z95~pSpzOkz%7(*No_$Ae9>N`|WVnfxi)YT&%CVK#*%r|K*_eI^Y;HwhTOs>lR&RNeDc~Weq5GsLFnx9GdG{#uZcPM!vD8c z-d}G_*3rw)yl!lqDnBmAk6t+U#7vLK^RjsVL;r^@z)aecp6r*2%#!G$`uEwm2~Bxf z7dZ!aVmVbsNH(#Qc!5FvKW5lIJUiu-tB+iM`t1u_25Uph=erTXo}St|ysPC0{(nfF z-P*tV-G@&6oTjes+ROX*xS67PR_PtWF44**Wh7hoNk7WOOlxh+?AWk(Gfc}QrJ%GT z;`|vwm{6lIZHZ5fPh8oYtPzccf63=tH6Z8!s#p@zoz*W7zOMR?0>JqGYr#Vg?3NmT zMZk|p)Sw6=!>SH04ld#>e?^o^75wACk^Y59KmmgfNM=`o zvk@zyG2gLb%hr+?3$48F#CLa2Tq5r#cqHSQ%-;WoC6(d?3nlaP#?&*L`A`0=#!|^I zGu0wDBT}AxdTZ$!t&<0Sc5{e&g;|p*YRE$)KgA?U*Vk_8gPFO^O_`f{B-9&n)%yY2 zRINYC8O`^TIv}>BxZIoPl^4y?IUD5ao6lL?4$^aY2ke6AfaR_dPpTbGA=4vaU)RUO;8P(pNP(925CH$Lx=rDgoIVVuzdV&wTjN zd+yo3a!(o`x(({gsyxGd!i*<8QeW6RKP9)5B7`wb(;FE(Lr-xgrN#rpCX2KKtC^Ug zY57B!2mZp8lvieYbJdA2*@ zm^#t1jE%9U)&*aR}-i@med64Q&Ne3?wEm9stta<9tN^yS7=qStsI!HBh|{^ ze*6%-!;=`7%1jk%RK>=zb8LHTqDKJ4jJ%xXR?E-bZBWw~)|hgPlc`K6b9v^jVZ};D zl%xzB0ypA$8D3tR1pbq3twTpjHIIv3B3eHbT|*2PyPF&ag~kOw!S;`r=dyCK|dqrbAY@T%J=1fp(b*0Vh0lMNXkaxddmFT1tJ($3JljmznR$ z7FjItMU$A^KS7WwWG06w9pxbey~EQpQZ1=V>Ib|Fd7({2GG~VG?@-s!h4bgH#=0IT z%)5ersQdaKLW0mKPMZXRZM%t0_8yb|tjM$-*s`>=1z<=D7r&;+RJtGI`z0zXKm4;U z`}1diYScTDG(MB)Hg->t-P26wFpt_NC4@ZAmSBanc~XRTCh(+Z5cL=4>FlPs&(j|s z{`Q|IP_g}SLt+PG zEWH>(`{ORvDQFzMJSS~BI=0x+nN2ppk1{zX{jT7wk<38m^#qY`3mX6n4Ki=@$LEQU zxvG<5Vh8>C{t(xaIpw{P9-G+I43#hp3aXZ602BNXWkvs0CG}5=CL)vY)`$3Lzl8uX)oOzshXP;2VGUx8LBE(;TIT zT)c${5Fd%GOlaWSTBFz;1c*t&#{hJ6_~{2@Bcw=@?I_|bi%=^lcx?yb<~-W522~A7 zdS1bUhjFDQgAwX97(OKTtG*?@4UT2pOf9oLvr{lEiJT%y+M$FOAt-+RgrJwb zNqOEjN~+H`(=IIttXZcH{#+~Td$QE=TD5(PnxfihwH6W?nR-n%Iqla2>XrLK8OtIY zx50-5%-v5s0gIY?xNxLecWrH|n%@@T{bxBevl415)Xad$%4d09tz=LC_U|Br*K_bTfXsbaB$d9%=`Fq%v0ouBTs`F<}3`0;|O&&1J0#zV;mQU;8EK#7YP=?DGkYj zSO3qlbWEPu&WlgBPbe2Zs!VR<83v_NYWoy`QpK+p8A^G}D{wpx)Er<58FqR3GTr7N%ymA%7}fyY;Ze%i!2}SPHI#izBX6>5rMmd|E{6W_iQbykJS{g$V~% z5cwO-3Mu2#5MM&XP&Qax*xKePcU;@3c9;P*E9n7Fdw&H3A2?(YEwIt&nH!=ZbQ-U1K7by+==P$C_f)fT4wh?}hV@C#{*ewU1tL#chh_ zWvl9k|1Z+WM}~g!x22a-qE#b_SO01AH9c2gR)`;$n^Vdy^5n5xfz1HTXB(B8W!jys zcrZay24bkFnp+GDZ%v*)V4q`uBc>OY$GS|pOhn;`R2(7d@cUOchEXOW<$rLm23}scph#;KJ$H4HN66ddk3Q7*l<=BCNbLoM( z+{yKI(Z)ivaZ_b?QS0(M>Nnks0;Q&Li24_Q$i56QyF^ySJt2c42ySCi&C-eGTzWlV zcy@_{yluL}970)(DTW}V+NL{958SxJH}L-HWbMBLDr_#-GAB3q?KdJ06C<9u=8&2w z>4UC{$xPcH#h#z*&9`uAh+MzSv9o8S`p*>)?D@o%cV2dC-Lekp4(}29@^`(;SfQcn z(yNx2KWuX7!ID2G;Gh-%M+&#Ak`sHJ_-K# z`U88{ENlO+FWh|lm8Mf+Hnv?m{y?*W1`8^A^or@d^=<{1&7M5)< zf&fOh(Xv*bb}TbD)#&$JFdPHUtF|+9E^~p6!Pd0SX$aUa9w`{o9`i++6gP}QNn))f z?fVP!E+0Xk?e`8?73ac^(5IRN}m=k;61x>xI z8o=@DgSQSI!=ju2tE+R77FKG2jMZ$L$s{&ISc&Xy*TlFyXF{v_3r{}rg!C0$hdZ~+ zMu?CV%UUbaom^QpMMdy>#1@3A&-%R9Ms(({14Jid1so^2`f2>Ow@HC#V@iH!RJV9qE89Y z>}P1H0{-#H@u^bIH0>JON0QfxcUK1=(#)L9(ZP1^4Uq<``FR^j;KO9~c#+?HIc|AddyMP`p`A^3}9dv=_2T-)EX_R+KF*JhfAF-gAQ2>><$xlEMo zXSDHazquNRd&*TCl720Sq(BcRx^m8Q^;*d(;s9uVYn$mg4|ck!Bxj+d`1w;)I@5~d zhUqM=9+uD&B7V7(4IER`Qhb#H)7dB3I=wM-i|D@}@=CaA=u<>F(&0<%XcBCr8PPDD zpaCY>Ym15RD0+msb=F^W#ccYEeA@~|$M$!fsV;UGaCRsVEKnOp^#gxZ60EFg5~1E6 zLOHg<9rFDTBE^Q%eQZ>8bn8_}vmlB6Y2vxEM0Y8CbS2l2Rr9)jIj6}6H*NrxcM(Z; zJu>ab1X>!p>gS+tNZ`fHAc~@i*`DX#Pg)a`S9z-Zn=7<>rpIi1qEKJakz|_?BW%nt z*$ML{jAYZ6kgoV9Myf8u78AYf$KX$io+VPNtb`@zGf@dOTuk=tm@rgq@+vFREAX7D zTKY>4eVvy>&DEP>#Q z6Wc5`Iz(3%_ux2`@+N9TZ$4=;9**??qV7GwEW64p(Yxb0082o$zh|GE&kg71Sh?y} z)vfNTu8!*JBz02GAPHp=Op=fUlCTg_LL?2r1}wo44A=w4gLwvz2m8$%j4^&-jNf2v zf6f>@Jda0s+?Tia3Aai}U=#ekZyMBHb>lfZ{QD2P;q$%b3PTvAjhm#I z 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

>Xy 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νogI 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 z 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 literal 0 HcmV?d00001 diff --git a/src/backend/InvenTree/InvenTree/static/tabler-icons/tabler-icons.woff2 b/src/backend/InvenTree/InvenTree/static/tabler-icons/tabler-icons.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..a70119c01b7f3b2f322f1ff4bc530bb0df57342c GIT binary patch literal 840176 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�{a6L`@jfEa83*qW_E0#@Bmi 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

2Lk(er$D@Sw;>~FZa z@0eQxMq&#@EWdHY6GuF;`AbKvXA8T7VQ%`Yq=jhe_dldzBFw(EVeP#SLARpft>X3s z01&BRGQdWc31A!=02p!%AmAzjDvbz1DY|#(9Ae*;tvk)M$wQ49;qnLMSIy5yla}Mn zu%vuZQ6rX?v|XuO&lUiqAU9y>v`aJfio$k8ten2eUJ0LsAkS8kWGf@Z475Ng9aQWo zmbP;JU5VAsm5tbM`js2XzHBEv^bZKwC#KpbNXWs~%#R4CbPF}3ULYM%N-!0Z);2HX zL$eiFspE)|&$FPS5ior}IA}euoyy}!uXKxBwS|M`UZ9)rY4l+Z2h1Dsi-Q+5B5=^Swnt~Jf9Hk(95W| zMaO=+W25nJIndvw$xmJSE64f4?&|{osOj3{Ygg5vRcWyU_*uAI9?U z!O_o+CjADa@w~;S%uC|qMWi?OY8=l0s&9@byU*CQ`+EDz# z2ZH?R^RK!QeRT1)%Bo{#(R}%(vV@wVIZ(3N+)jqg;rGxW+BD35HfS&;n_79JXIKm-eI96k@jm`v>bcsKPpp z#wHe+S5>+)d!s{m_aq;|7f^6WCW;f1QdTx(fEuP6`k8s^RGw9MyYOBwt;foE9?41f z)V$X+)7xG2%0ou`9yoa1FOROw=CqvJq8J4OeK%J+E2_>Y$o}YK2NF$sT2SCTy*}+`ChoH@y6U)9m@aGH~~H&t~LyAog}Eq}8Klf3oW_vmJ$d ze%PE?`xnQ&xA1^{FoSnQzaUr4Wth+ASe13IjO$WAi41!@r{|^Som;(f=5lj4BidlL zms!_ZNl?J4qN8flYHtn4+>bW(FeR6 zy?L=libk4TnyLq=$Ezdpt&{hflOxXx=4(IlchO<@$lP#Kh)_D_d7CTAeNzYWd|d1-{z$wrj9suMCVFXO&wNE%W68V zrVpy=q?#U8(`j#(s%kpajNWwI>rETnn??rqrn745(`wpO(_u9|=7kiG1Qy`JV^~v< z1qmdzh3^2|SZXupv|i4q6R9RDi%PwWGC;AKW^n>NUJ9P0^idYigNXZ1Ccc_waqOxi zj~+jZo)my3in?m_fzN;kOOWD&7HT8cj*8+Wh=W8)0&$pHkf@BdBchGM4YPEGxunR&cO|_gISqeGn{`rMx6{fa%*b8~mYhX|8YDYr3avtxM zXE<;?PxsmePNX*tCpZ##Uz2WONJ!M7z#6u$apJ1dSId*~b~-BiA2DrqLy(fNNCx^0O=~lgu;I?qDG$_I&Te_bv-3x4y{Q zlg;6DT?MJPoy@%x?=YT6;btWl0TUQaeY{FkfE(e$YV22bKQdd)!gFnF@8ZIBW6Ay4 zwvwU_<+djkNSHs@`cNHcjUf1TzWHO0>ClPZpb}9cty7H+D82_J@&p|MhA6Oct}Am9 zIr?;5XDTp0ZZrJzIYI#1Mw7+eQyZgw+}x1gfG@(YgRh{2xw+|DxlE)xKz+TB;A_+o zu`L4EKl3We4Q$~qrLumQMFUqP*$00SIPS7|P&6T zuH4rv*QGO;`X{c`w_S-B%G=MBuv&vTt)+pJ4s<<8b-nY`E5I>A6|GQnd!0FFAuOC? zoH^}KGYTgQfhe4~0HSo}tK2C(SUT(Bd{D9=VpBgqy&F&G_h&0QmX3@<$MJn(ztN2A zX-KqD7tjtTB8q$w&iYC=MJjEZZ-@HBP(MohYqkGL!)o~yG)=V=QaCJC-%j!*s)|=R z;ltQ6iG0+PK0mlJrTczF&~Oe%azgHAc;6JPUt1ob%t&NgN&wulsP?x*TqDIJ>&N zo>{3g*sIk>eBgx6s3_{P9CLV3S>yYhQ0}h6cfF<3?oCzXv1|2y??i5X!RX+CUGwGvys*1Gv$hZgnUy z7sqN*{(}+)YQpejY>UQ@)VW_#k@^`rvXtll2T9nk8)ojoC@gHMXuA$4r!^FHov(RU z5>&3}C3<{-c4j3r2FJ7wkdJ4K+HPZ?OlSOw^X2-U)1p8}BNS(0@4fU;3S!{eFCISv zq&j&Xt-hbrz=^!r37k0(0whD%M-AV(me{3|l}*Ar?Ec%b=>%@L^==RKb?LxZR<0bBOE(Xqexh0rgNRY02GBxXzWa(1$AW>% zm99SV%obB4RDqmHzmTx+~nh54iqRNsVr2KGlku~{(XwIT&9T8K9GoKL7 z?M*37o1%0a&^pt~w9?9Nj|}ks?tL$IJ>28$v2MbqVeKG#xVLw>R~u7m^ocR6K~TnZ zf~31wHngf~vRg{qVHPE#h5einx*07GipsH=WZmI)=A>e*iq+PM$?xxv)J9q}#&%6x z9Uj?1SPI(-GAFehI}yJNgY5Jm{p-*8^!(<@K^g7l-h8zaoN|sGj^p{<7Dq=+1uuZu ztpq!F@e+-Y98HE~i1cDgrbtg4R3UjZ+VXh%Ix!GFA;dm7LQ&qW6qZ-#4xN_u; zT)D8Pft=1l8eFM(kfoP7!a7FDKrq{P9O1g|+t9MCz_e+AH7N>^gBpyWstv+{fb76f zYUn<#QwSa4fHZ=B>VNqyIxP`%!KE-Ejv!bL<;u35Ep{WeYQz^?Yh)dJjeTK%L0rdo zWBr+xF1kZrl@2GnWdI z1u>_k5-120%4r%q>b7cO=&e`Trb?m50xWcvHCbkxZfd8~d7R}2aD7ha_^@~M##buE z@2Idt*K?h_Pi1tRK7RVmeazp2O=dLd17>J?o|Nt-(N_*u$xCg|Mbc@Z$efIhww&u` z2O>I|Oa>;vV02Id@J&6cYXIfwcnlyfCPxDk-h%0QWy0&p&a5Ne93M?w4&I0+hXW*o z$#ILM?N1g`(xk@p!ADLtxgOoAXxfJ83{EenzdIRDL}kKWH##fiMjwe&`03^F=W5-4 zBhl`!BwB64>DEn(ZTNl{5_%L`i%V9n=1z8-TXn6K6s^HJiKZTZH=x~d@UYx^4J&p<@{j^ zt^)p`y*#cji^tvf$}gA!kF@qXEsei?hd%Y_)8L&A=%$JvYr)m%o`J75TYd@{e$V(_ z0q8d4ciQ0XQTM6-piPc*>yRN3dzo{p0_XSz;-|OvQH_oqM8|ORfzD>;M0grZsM_F(rIXU*Qqwh}9Dx+XC5^{|Pk9Hkf&d?F-PLW&0raEEV zKJf+OMfmm_E3n16);1fDPBF zeO5D0Mjm5&pUp=(rj3veSTjAU2YfKWqn~Mm?`aOuKi0~hX?gLj_6~eed;Og@`brBl z{EU{y-_yL`Yqt2QmN5JQt^Xsft>LG%0)9~&{zTjBzSHJ^)mF!-{{=I|$MYXWgU>JY z$N0e=ZElbUKCI$v%FmH2zZWq5f{tI|w)x3Oep!EWRNv9^8QwS^pNf5bnH`1I`A1{< z_PRYKbelyN{7|}!fE%l37t>V?58K7AJKLV0JZqmxpkHOLlH$c1@b3Nd?x|zG4x*P- zJ_)$-Fh=oE+M6>dZq*uRf$d5D|TIKvwUxQW)dfERdphPT^Oytu=w z6UxUs%Ei83Q=Xhso)!m!eFQ5CZ|8zF_bDfIRc6rz<@|_3-#r#Au#6MInk&j;_{V}KEsbK zYyP#83A#}zo%!Vb^X3JiXJPV$ zzn1Qevdm}Aqli9<;j8Xu*IjL&o;+68M{uj;+h@w^K3SG!zEmFl#uCmK^{ITJtdJV- zQw+}nV)#68*S+LE8~Lwb@b_U}{1m(eUol?)-tf_1!1jL$n$&o|k)xmD@ZtDO?(3`U zGA+(Ng4O#6%@aZwVRFld8NM&w)4(#WoBI)6=WyK(cip4y)yaQrHeOV3UmMB)cM%V= z|GL1QJN|R>{y(Sszm2B<#lai>AIAM(#drVL^UE^+i>v;i$jnI22p=i53X8^&On772#SghhF%jvm`wPjmUN)aHCQZ~#x5~Y-+q?*s> zvo%H0PYWZ+AflF0#)rM}@o3mMs`>N=yn6qIOJ6&$=kK=d*C%V8haO$(yxz&FMTOzX zsg(<1HEt{&KDQTwTaA?oGkB*1fjX{qSVYGh+uSuz!#Chf`1W(?(pRBGFT)@T!olJ= zRMy+DeG;bdZ8-cGZrd-ylklG0JRx?7;t;=$$#dsG@;;WCGzSNt=G}KMT{(xOjT zk!lEYj~AH(D3UCsNu0+{TE4LgV^SE)lsg$tQ=?fJ6VSQR>mh1{sO?pz#TwfJYz$Ek z0SUu0)Fj<8NJuS#tm z7ir7>XYA! z<4|BNzE6jY-cBrI!fv0nb=g?9bYPGa*n=GdbRqy~>72ycl%!D|`M)WR7<>-U zCZ;hUx@lrXh%z!LkM24oJTv0I)o`ygplVzswA)!;cdt7C3TV>$v*+k;i!6Y{Fr*ZYTLA7r&Ecg3$q zCRn@uT9toc3r23YxVA9kX-OPW->Zg4`--0dRkbFm?i>ei8YdO<&UfT+5tde41FzNYh+ONYPQIsC=ik*{ViH5?4E)({bqtq6*KZZ!n(fO`Ov_A@!F5^P$3}L`d1Z7!!ji7t%Y`1Mw7q|I9 z&|V~_Li5_%;9!g4_$OB$Vx>Y~UC&7vcqQw^NXoz>MQiihpK{*(^W}qIP~R9@tyMEU z1nvDG@MNS_kM1L59O7+-T>|XWyOxvD2IF&NjWxoqM7s@d7)iTHT*@rgNh8{n|U#M*argYW>~1R~;;lw5DoJ z@y-vF)GRRDz!R+zB&N90$}@DN9VCIf?(JENw_36>Xl>m}E2inGmXwQ2Z8JDH)izsy z-J7Bq6nT(WDV@{l010LL4-Ex@=Lte=mw)mTAU4d!tZ*C*^OBXd3RUK%j-||rKk|3} z;>~gGxBdW~>eK@#E1ki>DF=b@MJSrBm9jq)IQuh!{=WVLG4o#&m==G;bYp%sLjn0c zrrSSZs?y{%{gWRif57Da6_fA&DOZ;Ht$Fz49&6FRqln@6#@*i$?7H6)xchf0T78wn zryP(z(M!0}^AbM&XyRj70R8+8x*5V}Hl{~`2T%GcxYlh>-h|W?w=?n~LGnoq#id@6 z7rPGLPT)#ELJfJwjEz%fT-xO@qbROS1|*c$Z|`GX-3-J%Qs%n{R2!DDK&oBOTJ${7 zHgwO-!$W55b?403ecOJLK)=ntN{SaKBX7G&A<<0`f5qh+CD6+ly-wkKx=-7?!E?E< zU*u0z@&29p3GR+EqY4HS^s`%$|h zv?<*MA4+!`aAVqxB07xWv>EKW@pgLh3=W?`-_$Q*`3C024SWS&Kv|H-@b(Uljv@Hy z0c=E9F!%s%{|*lCV20kn@ip9T@8IGsTx~Rau+(e@#DON;E6tA5rS_caE*8kpmUhiI zq!~N+^vr?QAkkQJ*i4fynQIN`8dJ@gZ?!h2g;qeZtJ%#=+lIrXCi^SR9=GF0?CUJc z(jxx|CMY27`?47mT4YhpN75|=%NRC;hz@c%?Xq3hY-cCFX^nkg1ptLBXe)p9d!uJV zKwQcMx-1x%4B#G6mT0JOTd2Z%Ujrxqa))(XKX?(;rm!sQ;2&Y zybjVtW5$gf&$xtT$WOnEH z?qCVUj{87Zi6E{L%vN5Sl!KJiDG4GP@+9PbL_?N`%n3;ylJGgQlYcOj_Fk&ATG~r{ zy|(%ONg11&uV=wl84dp)^)~?NNj%Nh?A}+@G3RjUl?P@W)ynV&KrSn zucHxA9_Utrfo>)+z9W`!1i^t2#1gg0_>6t-d`3P8FtsvfSDk4?p)r$do5uXbVD}%6 zoeSM;_3>jv+L4hCGnG$0d%8V8Iyg9BaIjjR=gMbgQ08i$tA}MUDTAXjnD)AXDuZDl ze0lt`Cz`{43pByq1c?XOz*u674)|g7-l|%3)4b%<96fEOd9y2xpt3K5FXc9l}Y_LPOk`n7+_k2w=teeh7G5unIWev4A&2lm5%uG0jbEKIDwckTl$YyYAD!hh+A zr_O8ZD1a>>ga{eb1CjR5krsZq>Y@=(qES*b3CDvpMcNFC33ta* zt?aZU!(piw%QB!dF2?O(%{l$Y+Hoj+FJTQ=JgFWSdFqJJoQ?&UayW?k)&;$wPxv`W zsw}OUkM+7afV9(`8+g!MA2v_7&EsveJv?Cv93nRtHvmse$3?6S01wO z0nX6**;l(0QToc$7;{67)gxbH#$fX0KR9Fw9_cRhgmi=gaQtxoaDg`b;;;nVZJzl` z8jvf`fNOxy#J8uT-!89G%q^{Sc8OWjI!J!?RAVHuEA&|uONQ?DytW|O_ zmU%B2^_so;Z5Whf;Xz+K*Fr~;YJkD5< zaE;j_$*f+(Uvo{=)Ta$O%qEej$3~vIEX_t`zFiK&*~=oWVVPIYuP~Pquf7ICkhp-L z7$#kPzaQt$*e#$)f_?95aCun`4$pEGI$_}WuJ09T zo=mf?7bdj|vdeT1%g{~=SW4zE!by_)i=_3fWSMM}NwP|ERCGyZU>U(A4Jv=CR(_<$ zeh^#)GnhuU%3$h9f09g88q8H2O0`oPHC8Ltz{XhR2BtY~$fPwmpc(=I$qV5jELCaB zA`OAuTgI)Xy10Y$m%kAgoR^P@_`D=yYfwAQJjE0o#Dqq90>WAH;c1N|arZ z^f1On8f15PPa9O5TRK@xSl5i2ZaSHd!$~noCYO^Xn8tEaf~jSV$K%B$87(H|$epYv zhm-kaJt@$%ofHO5BbazWoG2&TW{ZPrxUIxCD_WcCszMPO361`jcuoSeq3ciW0Zkl*|N-5AuN|6Y|pAJ zX#kX23`99v_RVs%&JIHOULcZwM2AI^UNA7YdT^Qo(-dtPIQ}E9KiVhPF62D((5{9LP$>Mp3DVmXpC^t-JU8)e%SZC+ioe;5Pd{$;biftWJW;MAL~&ZZ zziywbj(>Hs+Fo-3c<>Z)axaM(@> z8#9s(0cHjfiP+=IJk%{geGulC=+>eR-d`NUN|9qoA6RN7Q&6i=|V(IU+R^-jtRbIH6G zlt_KeSRu9Fw{|?Fdb?F~P_Iuf@B*n5I>%CVM3vH?J&@qu4ynf*q*g>1{^Epgg^h9$ zW4SI0M9i^^JMHcF|BcUQf!g@pcE&u8qW)Ry$)wwMF`Q$PPWnyDjra6N?*x`1wnWL^9DiNrw{5k>s#N0+9>x zkfzsbSPz+*#7X0f;tagjW^X%;3?)gWU}mlkEyGE2oiNj+>6V)Afi!DK%{;ofWZi`7 za;lrO#5vN9EnVgKn1rx)l$gf)C}>UYnFD$zuI)?V3PBvvo;6o+t+^xIomx5SYI`|t z?;yG6JHGW2WM|%H)KfAckP!(3GCV=j_Qe3}Bj;g`u=5LzB2K?tDotYf+B-Q5-eFJ^)bfCaEkX5cs@VZ;wDBq%Q zRj*lOmShR0=7g@e*zaJG1q|$KC9WpmNiFGhf46}v;dqsTdC{TXS?e_3B;UW0j2a<0 zFt2Q@1ZSVj=u&%X1=WE`2w91qs4X8ZBm8fIYMT7SVMzZz=Q#Qw>qU-2^6!8Xg3!P6 zl(K{y(Z*cCnDabjg073mX%mB_z=9@A{i#JefTOJPk9~?TNps;7t$p&+pN{4Kd-F$G z)$@G=e@ud&C~rBwjfo4Rm$yxXR22y*4->#jgk)s$Hb5BRwhvoE zNg-0z$@>@+Wy+z&es$s;so7OoG!CjQS#`Ok?~NqVabyW1jF*-nfuuGeFEDsW*dAhG zn$#ZAR1pA+f=T1S3zi4tf31W)RRy(Gf-keG$j2^VIftImFJ`tHhwj_`tarfEOVKcg z&h0pbW86k0(Paf=yLDu)2CDcE*_w3c+sAh|9mpF4{xm=9*|bwk-H31s(|1-z#+fR% zhNl{k7CJxb4dhaK!5F9^(SQsN5bDotD&43U|Ah|L=t)%cR_lAv@g6jY@K+C^l zLKnj|nWxxdCCl&5WQ3jl0vfgl2`$@F^NZ?=04^a$Y(r^Qwaik?ngKlo0j8ZAn(i=8 z0jMhA@)Zwe71k+9BqIsTTi)q*g1nwrutsc-l>dSq!epcv8DwCu-;|k!z%X-Iv+iMs zS$_;M+V?4`ucV*6$ypOwB95Jk`#JeeZfK4ctO`;bBq1Vl&UnU89k^9+$Jkbg4IJma zgA&38bpE2vp<=fjPe|{Fp}l`jA5&01HahG${wB%O3-oThE@$M>EcQd<(8;KPtd_}2 zy%Pw1lQAepG*w&`tvLS88mVwz+{GkK>57^(H5=;nl^{=d zz1TAyR7dt%($Wu*lpb8bsK)@fvHX#ByGDKnTL=F_7`nGpPxxIbG4RADN+YgYWo3!- z5S|jO$r1w3ManXm0v_c(xqeUJCYk!$-~!z#Ml^5K-rC@($@LdH9-=LwqmyBy!XG@{ z2KEaGJRIP_C{}~UmB5y)z|B^FNf|{(0CM+lW!NFKm>eIn3W*InTkCcFZBo^GP#B(! z4cjlz^*V!aO|RHZlm{MSu7nahEl;`Z`!%y)j?7ZAoZrUT7X2a@8UvcPO7=|<#x zp+z~=V@Ts{MGYD&yd|Pbu?krEMo5KfH2Ig9aJAghS?m{}qOmLmq}a_HZG%&cfUl7n z^oZ=;83IG~4M+)P2fa8IPvoRM`?HYzUE>V(}pd#T1 zy2$v3v<|w<8<4=SVMg=PPaGk@^vKsqjX9W{YOIja>-QU-ie-q1U9ML3YkL$n&IB;!UBr7(rdWmsa* zBL?WJ9P*ZX5aq>P8H=0IpP-QLhH`Y$ysje%6aS`qnmD)IKcA6J{#a$#;+Bm7E-CK( z!n&RVpK4c%_mwe^!T{y{KcquD+ARJot>ix)lZ>lrgpEnSow%0R?NUbDR~gHdD!0Gl z4Li#X__Q`PD_35rPWG(VXZcaLCBHisvcB9|{a5;;+SBe#@W7C_0=F>b#QzUtQAFNy z3!=zIB4nv6;?Lwhf}IP8IWTaVdky0!^A!9O+DfA zXzmI36$ep7qo-9D%_@?FxU)h!301^Q7Le7|aOQB>T$nC~h=4OFtdTC=#Ilt&*wHY> zVKD%>#uxpCX@{2>8&9gm)yRdzu~E$$t_d`D3EU_pew}hr*nee`m>P8PdNu#MZo#B(fw6XJx{Fj5Ai8gL2yLx78TU`l=KI|V$+7IX6;uV;4WpyKw zg@2!`sN!IN9gd>l=oEi;YEHPsq#vjPpz43Cqwx=c_(lLaY;z-eNIEL|j|9l8RMIT& z;IbeO!AATQ_wq@VqX0rl=yrI6D8OGNwCFt$OkZ?az)2B2%!x>qv0AH2uhO+NFe$K1 zrK_?EwaPNY*pD7eCA3;PPWv@W?DO8ZKU-8MH=8 zfA|d*a4!_S>8r0e&q)%id>{(bUz^Ov&d4vG$Av~&Q1p|$th{W8vXcJm5R zQr#y4D?ucOvP{N&5rxYTnO)+xX|0cT3P@k__O>_wPPT>h2%RHBs`RRGA(ECG<)R6R#5u~(GJ3ojs0#Yvh4 z=bE83XKsAc+#EbQzcTyFUxk2Y^9R;wEFZp^R&Q`xePhVawma}H}MszkbkiR7~y_#mA<7*Gr!Jf z{G7pMA4TV{xTo3*)hou^VR5?~(f@`^zJ;A=yVO`lt>DvRaHU0ijuYHb-B?16n`DW* z^uIuLjj7)mZi?b9T|sWqjqr7AZ%)qmoj>*M)kK$wvm*TM{t#xqw&C7B;a8meihea}z3CoE zLJ%RAaW&||;eHu+b^JlNk9+}?iY3)VbuCSaf^sJPBjxr_AoYK1s4BWdsEK3@^Yl5y zyGTFIF^e%Pc{@z42z^;$GQQ}W{hs)?0>PVCw92k`DG>;K;(Uc_y!iky&s1&K zlmG!44Qe#|405RAoXSnx&ZFc6Tot+z8I5bLWFvSM zXN*WIBW*LD1NULM18ZPX8Z^$ih%S>8s>2jZ&v@%z>u?(Nxb&OC9h(lQePcIAz zbvVdWzg;A*bS;TubVb(wkW_UgJ-6hDDnQu@8+oKZ)~xmj{CPEJii1lRnT*721kS+SL-4 z;@V>1;1}M)-kjn0IgcI1lyjscP+sxUqY~$_bIU?h#3iW%CbXBK>!|i#9BT)SOh}lf zQ^X$$ze=Dx?qEb6BlxGYGS3t@g3Bvv3mt4{8phxAjFR3_7M-CBGCv@Nif%Wy**LQn z_pj}m1pK_GTQ-4j@5P>a5|Eb@{4zz4M66Qs3Y_VTuFJfdrml`ErRy*ow~+GP!y8Tnx7IEOzEh zCmXv#!~YwiB_E6EkA7PH>vZVtN&1~pW)+cOFq0PcBz)E{!>fjDon9|+mDkJOcUjMVmHpP0X8LtXEMzpC8nt5B;XX+7Ohe)gLmD;9nWCL*hEuV-7F?BM2rO|2EalATA>TF9>Np zi2&aLxR(PG0wZU5z&2tb!$iukt|lQu4fJJ{0b;~p*@4tqKLXG+S#$e1WQni0&dBlT zg61PYlCt`$y{EX?#Hz0xKl`$D5retxy)|hU`QGp#0FQV}JwcSN>4Rz6d6Ly#m8O%! zU2I_jhp!0BysS9}YLF5_?1@K=8QU@z#jV1k4IA^5jp|Pp?DwGUu9o-H=}=^&5Z9*w zs1^U%w5GFWEy$kli|dYgo4l-o(OgxHi`V+@;L~=04{sHfX!Z0Vr zzWjpVS6qG}rYcmW0He_K?>f1g0aT*j@<|ER4cUcys%R4~jx~A`+lme6)$HfM zy|NBbb^Xm`Q&lAOw984B&WzDp<>0bCzbA_&OPTQQKKFQ%@`N&o?hrvEc|EOx4U20E zV2)$z{7inP^&p-}_kS6zZ)((Wd`x?({|1MI(~Af2j)ZCGq`p$`BZ0vBD3u|k@u5597fOV9fM&&>H;)FYjz(fpr)uj&r8Z^^xybY%o_b8=lJ6+*l7 z3`*Ben|T8e!fiLS!d;obZ8D`4uWOa42x7e|;N?ybh6nmWdmm7O$3(xRo$Xb3chZf6 zclnxAQ1#H3QD+mS?5yq3BpdXC4P;8kZX(F77>#gwB&g7HmMeyg#HbR z3b)ymXaKgRv&%QS1PBN`wz?yY06zYh!0nq8XJuim!txp3wep#&V;{wh4jLZRC*|C~ z)N%W@l*79`T-q`4NZRQvUhPAqI_T5_{)H}UveiO(s4|4OSl!k4S(+7Oaj!5+`^*AK zWp!oNx-1aH7>;huiHUgxIVdPg6yDf!FUQQ(9g(5(X$#o(XcierUuQI%f3g~}7=J3~ z=Y)<_du7=risG_mY*}3*3_1gB#}j59oPhN1S-54@w;VS&hgda(o*rChMehIqqq~Wa zXo+_eMjNoq*_ftS91_jHARmrlLJZe9f1C0oinJEHN|?0o7stl@hJkY=xHvG~T|~kM zd9Z}RAgqR`coZ0GWCawUX`x)$gCn)Sv}qCoCU?5Mm}QHYzNt&wyo{M3u9}?IHQDLd zJ>T<>pNd@VaL|39LeAp0j^xp?7?KS2*)N+|u#PvD1mE<}1#%>(9J&~+4Kg=W42$&x z9Hg4(Bur!RrpJmAd5B6=)IhbRQK$rvG(@c8^B`lD#fFFF3M-*V@G*3wz+~Dkz5U(* z`ZZ(;Ss|o8C9l16qN}bBQ6DBYdV+gzZPQBrVB_7n+L)Fn+hGL^s5pOGV2Q;Wswo*v zOw#6y8$?Eveti5VHmCTb=hY2NS+-F4U{cF1CMWLD1-URKbYQ$HMzqt#Q(4gi z44_kkBQ^4XXnbWLeKZ8m2Q?9b*uxMF8>K;jVFXRf<;ig%i8sl(8P@sLLWX+Ug7N~R zfYc#8eb6?$V;3OfN4@j;uYk5P7J1cFA+ z|M8wQApxD(nn5M9A(HlzYKkG?B>D*YtcG_OvrYI6jbO{d2=wQxnx>H@C^nH&a<8E7 z3a>5OWv@gc_N#SB8=8@^tb0W0n+gdD?W=)8T5xqpjK+FGGBfki zXse6@0h>Bszm@OnFh*Ft&9?2Qj}Y@b*}R81v4y(5QC|`3oX#z?tOzTTRvhdz`oZrr zyyRx^wSYON6n*t*R6XRz9+;-cPbj^wFVP~A^8Pe5p{-B$NX~&S>oM622*bvxIHCbb zBYVvW>wa$+ZIW}!a2?}F0(qeV#RrA4J$^cpq$+w_RwuP}DFE>q;4YI%)@oP|UnQ5D|zmLGuXDx`8+5P1f&-Nr*$%q>mAF zVnN?6Kz2#xA4xC0nj))z4rw5qz{LZrl7HPfR6`~+2B9$;R>I1rWQXpWgjJN{q-X<} zQz$xs{5{(xw|3+yj2UC*`ndWSd6XB_wn3KybaJ+b44}4?dQJLE56mnULwl5aha?3& z-SlmD%iT~pgMSiqp9QXZ8PC?=lzV6ZL=UWs7Un_>R!%sX_CxHpdG+`a7+t;vBv`V- ztXK-S^^lOG)~!dTxe*O^AHFhe>WDKZrRA!^!bgQL$IzX6&af@XX7xpyLrX*3V?GJo zJuO{g@qsBCW3m=y5JP#W;YbDeU+Dr2OMr8I=vMxdX(1g5s7l+dJ4}Lu0WQc(z;6x8 zrL!T@TSg#}XS0^si!P1;@HhkNxf$siaC<17L7YOC}^mW+;M(g`X1OQV?Z%ogKH zfX!lSJUF#RlKM~>p#?^GM2r-cBks0Ds-8w%(_SG}lO+skFsPLXH!O~R6C%TU6n=Kd2{$N>j)#a^wC2BbEhXN^651t5Z@6fdyq&lTSs_H|Lw6RE7)+1AvNX7$@%CG0ur#pC?upOsZ+mMl( z$fzqbH2F@uv~3+~?3^8M+w$~KlfN>Ydu=mfiOJHxM-nEq+qvsKb!HYVlty$UDW_-Kv0UCC`<1t*6QmfY0h?5JJrccYolz#^tb5()35E+QSpxKcKv z=wmda=?T-pv=`&pF7a$mLAJtUZtiQ@*{l*^Yp@pSketpkJo_8JFXAJ?&LX+k%!;D- zxw`_%+MTB)65Wzb`!F-0g&}ZkgqVzY9wr0=WjBcihJ`6?1Tj0C`;7ih{bLe^8IoM; zhPKwAa#!Xr&n8;)o*0ELa%tq+b4?p)B4BIoeWeaIe@mt=JsnE%uDNI!ik6o6jua*` zsfaX}ttGf6W%z#I`u} zwfLs`imS$w&##|B*i*f)|M8*Z(86&Gh2l9ij*;15aAz7}D>}>XXI$KonV=`J3-(lr zB|~Q$?IxCupX??D0^IJcxXF*k80=B_?Xl$s0uLdx4Z1w5;g}l;<1uRyzBC@*kpn2{ zc?o2(;`ROQBHP7m}^`%c^5FSY^6uEI8%a3; zH_HmztqC6dAyjipgXpHOsLED5Y~^V2Sj)9Q!L``k?TxI3un3|DtThe!T9)VfyqYWT zsd2PzbQn6#kV%@dtCVYSLw*Vr1AWWNk$kwEYVH$CjB}PsR-Xc8VH)`Io0z~v>=`MD z^b4fwOzZB1lP0d(EUaI0*A`Rp7?^>C=b-;tytwyBEuA^=X`yv9R^!0_3d-^5fnMgE&rH9{udjdc&T2_KxT;u_w?bJJ z4QF!Hfjv*Vwg~>@ky>J`dEVh2=&EG8uF4^%JR)^wu?Cr>$1qw0{}L@q453nb%o`%H z-|zEe(FAC*IUfM>RcG(02vg~?uHWuvkQCfHvVc;6XQvYYlqA77!2CaDrTOHJPu0?| zGabL&wcB;aSKI5#cw3K8`>DUIGYRD6YqU4fRALP#P8j3g_l?rTe$-22JsUuQEfvoK z1X!qgf=NdE7KE$Ci53Gy^A{(Xf^(tJlmg;qxnJ931|yOa3l9PhF()MJv{_BEewol` zk0H2~X^b%7jR#CSri-&hYvl3^{gIK;N9$S+#WL3Er{~`w?O|&?VuWsjY!xj z7S|@XQ8V3kQY2~B94P{m48q@zp5Vfp6P@K$Uok=|VCzenmnCgn4Sk$#-k2IS77M(W z7&IHK2+Y856TcvsVt)92M}cIx+`T~iCIKWIVs#M!Y}OFII)RL9GhO_=eoSlEq<6UT z9LY2Kif5rP&w&5F*I3`74?gr1{Pvc9E1)MwzH_z`)PWxbR^OK`oafjB*s1Uz(7|;C z#jZg;k!yj=^tu0oDg31w-fjx zxWK)`I7wi<-;KJfsY!kRs=gb$@~+*IoiOXQ6fjFN0^wVj>%mQ8@)S4#K-yEY1aD|^ z&RT_z-29UPv-FVc^`dcLE(_k32dW5(q>ahTfzx&>vz}Q;oAHOmqL5xjsT0D&QhL;w z_bo*vo*Mz#4|s)Knc-p|{bP@+J0&uB)Cg!iE@or4*JYe?{{(LRUF5HFlKS*qeL6G~ z26(ug7(5%GfMN`=GL>_Z0}~b!;}83z{pe+OPMXLz{lWB}VG0(PAs1jIhW$<`V(MQK z_+<|tphq2YI#{n?KX;LM*0kt1uir36xJt*~f91Jc{aBvUN_{nM^A@qcct!y6{kk;jKs5sgGih^4X!FZh z;xUU`-1;m>2;l26NNYz)OF)1c6Oknlw-#VHkc~muIszdyVm5HQkn;uYbd3U- z59%XF9F)*(j7T>tHNo>m7MA?xx9nVfLLKFoe$p0w)@E}aK0kz(Z+j|Soha7wIO@9c zjP4^T&=24W@B!cCQCbYV>ly4pk&FY>tO7b5REgVAt;xVuU(CK{MQRk5C?A&g_hlvutnACJ9G0R>CrE;AnpZ#3&h`ScGgX&)UFQeVo)0ra%fy_wZ6(eegz45D zyhmH+U1&14DQ+^Z7@yfSSHMGEnb8J%v!z07*Hg=PljD69-nY*plEu`isJ%Ur-5${q zSQFvAbXz)mP2#9#Ntp=K3KdW!>b}r8_A-`aMlvyLrPq8Bl9K~Y0~AOPTc(fu{2!b^qEnhj*u&RLW4EoaC}LC-rQj!h z=!+!lX8pD40kpDbokR4~=6OXyQQjK-7F5r#xYk)G>+z)JnH`BeJ2& zF4>HJv^BG^ydpiq^6qG-5zq(J=vOU7zU|9#b zF7}8YILlqhlyg$`A}Ug(@kz#BBpKaEj(!WOm#3jpvK6XbxL>+(-8biCp~d=WIY|)6 zy*SLF&8W4Xd46s0UyQ|@6j*~0P2sU`67L&$X_TlOs@)xcD2u25c;rHIf5Dgy;=gqM z1}D9FyVxIXJvAtBl~`;T*S^Z*G%&N9H?-tQLSNh!1x8zKcSzYGzMgx14qHe#&)7hV znXy?y9>EP6W2U>;s9vy4m?0DhD?4N#Vo_OcsMcTjXA!!7&Sz#gm!1?=?zvGi=%PIA zwo?$OQXs$;7ML*c52ev<kvb2G{d;!u*!kG{Dw zVOl+Fv@h23<7nQoAvWcGGCz`Rm`2ydf6rtXKgxLagw6sAGidmt6*hg}AUk1WnF{yX z73CT6lf>bS(kYE-nYw``2>Tp|iUfVai?QhYac*VOo4@CE?6jL3_KIK~9Ri;R#S8V| zax-~m&pHOA;Y)<#k)i<^vf=}s5EscPq|u{ql@MW|ocM`Q0Npyb(j<)nYC_pZH|zs2 zd${rv`luIq&*MUcdCeOP$pJrn+NBZ2STLlm62%3b3$ly4zK2&!>Ql>u|70ZkkL19% zt>Nj_AHO?}AC5ieJf^`0KR4J7CuJ);sEaAVg^ zp3W=Y-sJx`m`*=i`}8;Lm}C>cZ}myzb&;t|@A8MNsr)YTB?7l`L9gky-D@Z4^3mE38_d4Es@l^iBL zwAsRnY+N4an^Nwo%Vq29qE!I3?b2CIGu{R7JsD4|XJRGt;`T3(Yv@%1jpMp1aIDua zwXS`V zyj+@hxerF8WGTmY`mr&qRv3fS_Mp*cZ#r1(ST@xKM&f?VJ#E zHdM=ZqcJr-8@FwgKY&1zDb8BA&Td?JO&Cl`)wyH1^bpvqzLR}R=qaq?_o?%rWIcE$c`s;j?ii5`D`1vNhrw4Hweua6CB^YP5$I+AzMP8^VnNI3aO8T zJ*z@Y4?(_=Gw8|w6QjS%|?-kK@ErkXsSvbu21 zB!k&}8n&qT0~8A2abSg?Ji)gz{M)(MkDF&TE04c92GQc-l1VF;+D-_P$w zi>eR^O#@b$;{dZNC_yG($if66k1>l$V=gT)YgfEFlCXALhh8Rb*1Wu~M7;WYMtf85 zQm{Sr-1a)naxYHKUDu5=(o_+b?4!cKYCqq;G(^K??@CXPe(KyE$ba@Tx9!9iOKm># zNvb^6E!3lrIb<@?BETbk4*n|IY&S``vhQMsQ-(~8Z&%(8C_H8rMi*g{w+7vOYGq9$ z2U_f5w?hLzK4nhJg}|-uZut`1FXE+wT^-@lAzve8vSBArN0L!#0^?7}zC{gaL<0$> zjmWkL_)oPU*e%;_r5bi3E1+=TBZbuGD@*I>2Rq(&QW~1Hzc(!lr}|o>FKan7%krEA zG@kf6+@|}h7h7^vRTt0d|8TYntd{~Qs~)=TL9_}Ti)V})YZ|z@@ zeNkA)hB?_oz!Bo0q07$POM+;$wQ2nj*Hb}UGw*Vrg(AyM{QK|2On_yoIPafir9JAb z=2kS^to)2pH9k#dPYd8=REC-1WNhZCYJ>#8HE^at5daV$k}7+nlOgPZO%h=1B-+qvP@aSxe~o578`?+-938 zdO@G9gDVkRl=tP$^>BTnh)TVvyUg8;KB5V%$kfhjqT$96v3ejilT?`qM+l+eHj12&?cGd#ogmV&$Ck80pH9s-Q?spOp zW)?o0Dh2vF$8l~VkhE=Yd&k`)Gadp%6&f53^BX}XHmHSyYR#rR7r$LhP{KJ%Ob9yc zu2^*5Ue()K-MFVF501x$Q_TDhd)K^NVH=tcDNTTmS*|CwP3h@y{}?VfV$)E~37ZK> zOix&X*WW)G!xsJO`VS$htIvpv?LJlKyQAlDRX9FKVsZX0S_ZEGje&+w@?SOXScHFz z8T>%2WL^ov;xEwvAXgZR{?wbkH1~M}lYJ0Y{i*U6T{Q`CSm_Zv`KlYAfEoGLPF)jK zeP6@uHEmv(_)2MyRZ!O?&}GPtX(Ri)`iCn5taNRr5*sz1wQdkm6)FLV{^UB_VqJcu z;Z^=H>xyHb_^B0#N`mi5vxw+An`CWIkHb-`>l>Gd;|KK$HvMXYdFKqavHhV&cbehg zV3CxbR9d^U@(|)xe5BXFp#*)3_$}EDm4v`}rPnm`KssxV1Qq#EJ1ky)v#h&JtTh0I zUl(00WBCJA9%&7V%aJM24N$d0>-!#Za*dNzYjq8vZH*$gS6|bN6DVOWXh%jlY0w8- z6p0xpA?o8bLHF=Y*&~%M^ZYPI-)|Uwax7QE$!d49K7G;zp3602reSBNv3h36LM6_| zLS-$td{NHY(C~z<$44^ovxin+-@+EfX@mb z>0N;IPNZBqyO4N#{ltBGVS}gErba)KZ0N8k0n6@vp!piBN&|z@D|SJ{0^EDV#yVsKqA0VMBse3S5W&3h zDejc7T8d7N4TsIzMvwhfq8-IexF?6e;^n6F&_+VYl)QH93mrEd4gYU}OL--Nz zEt=JN!SUFvjT~)<(a|M(z{U5j`YssGdd%7aSJ4MeU*D7tgGloenlFL~rSlp|EOYGo zEbExDSUI*;Tetcsigww|JhBpQ!_c&V1Twq9oj4{3qt-}lt81})>D82k7FL+23xjc* zS<^<)4+!i?Ydt2m3S9nF^`eh$`mAAc!WhrU3H2!8M>-%(?1pMRXQYo7105(a?>)!_ zM8rGb%Bi*n94t>Ld&fas#?`tsNSbI!p`HqN+^c6mLH9#8S1jy#YWBu0^ebMHKnSg@ z5gEV9@Q^Pj3g&Ccy(=GeD|;P5bDU$bHW3_bSR;WKV>nOAjSa<2GRKa5|)|0+#}E3{Pez_%s+Pt{`_? z64wCij;{|ieaELGb z?PpOnoOtsrZ3!ZRVMHZRI7p@npvY~%h5a&EwQz1Y>bf;5id0NF5ItOofXk0~zG<@0 zHzg`v_9wbB@~*L?O+_TO`DSXz&cRL1^J%Eg%eTz3Q4`Zdbs@U^S}cs++l^w2yh`@vt^1! zc`kuMhb@2^0?#$Q$q)j`hAfR)NP+1M_T7p#IqJrACa`Hoz|W%#ySgj$FH}OO(9Xp> z?E~0Ua-HW8Dr`pU1KWL;+hTB#zk|uI?+x9cxIl4B;f&Bl^p1)Kz1wE+m_003Vh`E@ z{n9<@$?X)4udYsiaUi?|lIDH{uWxGsKL?n(s{RktcAt>^e8iF1#bAfq4K2Cai$#AO zt0mPe42qLf`7=UsAo6*+)GiQng15pj{5TWe-9Lwyvg4=PKB`C@D3c;gFkdm}yE8Ag zdtv|bEwypJx&Dum_uDal5gFw% zN+zX>>ad5LPjJmO8lkaCyppmhOYg^p#zkvgV#vcUu~r4UVXQg|Fb z*SLXT2&eF-DyRID_ncz_B14t})S=^MuL85aB+8MI*LJenPTIke&XjNE+?=dx#-TzE zYDhmxr5y6Y;1`V7qIbRt1r+(@?BXo`!hlQ!vgFc7$|H%D8=})&VG0Ai*_&e+qA(;_ z2pRvHcll|~zBl4dl$LcE{B zIHw|QOHHk${I^5TN2#uRIQ>E+o${`h#0`StHSKp%8O;wiqp6uKF6=1afP%VdiAT31 zG!X)ZZ417EecEPikB(1kgaH=U=UI=| z*b>~>CmoGb!9$DO&SJk2lAM#^McuF_!nnq-Z8@a`Wl_vfo5=YY zB_x8ndM4im)Jc&*CiyttAVzZGIRBcq>6nI{F(P0su7^&%v}c%1{Z-pT=~VS};> zawx{`LB(Sz4jdH^qM8-qVYH}mHYnRLVmu+zwNf?mt;!_OEi=S&Hl?IU%_{MjNHDYO zP~f^K>2;NB+FGP<*I+W6eEe3(pxEFEO;=4^ivt~LQ}1k=Gfpdf=nI2pSDf+QmMrls+ho)eUq5!5-(j4js$`)GAV7@ z#DOIt8QmQ60D(}hMIK4=!aegd*RD}64m1nh-zS7|B*bg{d4$yan8Zj-uoe@2>}m)h zW-p###c7atKdn^Rn!yMLS!;BsTi*4N@AT=O<0x=j@hIr`huL*ZYJ^%CCrh1^gY?eP zcFr)hI|?M>&y#29kc~e%GEAqoeRZs9R&p^U@v*;5B`@$)c%G}bs0#90RZlLoHr(3% zfY|v65~+(oUTu`p7HO06yv`QB-7zLnj0%cJb;~2`0sE;9+?HsAN>L;QXdD*@@w6`* z#r;uSQKk`gLJ8Ig<29JupOT>Sn~lu7dMCPRHDxACn$*fz&8J#2IBWF=A|Fn9mcOmu zZLdvbS+Y?R-=!+KXF)ynq(190I?|ao^dBm2z^sKGW=w3<5$;r40?Iw~B8Tj3h)Ks$ z9)$D|Y6HfO$}hGYN(fsEID#8=5K`Co+vy)v!cN_vc3XjLlTHWlz$xv`DlK+1id5@v zQ1`uv`t}dJwsu5+L?Z2ySz|i&DjUh<+~)4xC_&jUm12P9;;^BFm5K1|q32JLxl?~s zS*sWyVV8zVGWZYfjUca#j?^MU=Eerx-x+|#5g(!v!!Fn16S)hOWSk7rO{U-e8JXW6 z0@Kupwj8Pp>R&b54lNF@niIn~(k=7h#NQ-e_a-B)bmRVwJK)8Fj&uaZCc%5>KPpeNum&G}_ zILHgze~Zb{k&Mbu?3r4|OJeJLGHejQ+z+f2Dt?H3za=gvk%gaBBWeVta!9bgWnXB~ zfy!b$d($MR7=cVfq$t)QyK9!_i!p0^9WIH#Jriu!=A2C{5U_wmrqK^Da6HuvJQ*N2 zdMnQcP}%6V`i32GF$~<>Ie)0(U(g;?&GA1AHdz3Ls3z^|mChdte!>G-%muBdS0dcoR zJEqA-kajE+k@8mc`2H2zynO4?9k;LW#y)2i)ekt2vSuautjq1wNpIeJaMLyGVP~)@ z(mHx!aLmN7u4DFZIz7$X_iouRc6TNaJ=y~;S-nks zFdzj=ph?z|&1(FgvMAqiOj1@zo%YDn{Im%dclohh>$**K~8nX8w-V~QcNWQ1KnGLLINRXzR8eL%uG%IS1iNYbpQ8HyZnr!kC z@rkQ26ZTjxD^BFzqcnRD)~;CFyC9Q+`RWCuOa3jP30AP(3Ytl3SVD?4OJ>(ozMITK ziE8I@++sCE{Fftm1g{Im@kldC5tq{>f4PjKQYt28Dg}5{!zz7GU8n@uVuyRV5cB;p zHxCZ-z64O7zAm-Y-JC5K`_7nh5gt(Juxppok;FgFYhziJON?@JhCUmk1V*p{y>_x! z5tZ9yAx($+mg4+z!f%YPX4aJ}I`M*P!4$+Vv_m|#AJQNf%=#)csTbM-t8Tf zZ@;b+SJ(re@aTd7BCb8 z4ccNia!KxBgh<0@mk$fTN@Ty?yPA3kYsWcCZKtcWil8k|kvsOe6)IDQK3^q?o)Q!3 zQlBALs&(?N+fydS(yYmpKgoFzS#@~ZztThasu1s7wchcXqKh%RhIjoB%AW@Ng2N`p zh5cZ%4v7@4yMf=RaPBiJVBoC3$Av9zWfo{DTdwBTdjqctO$;4bVB3|4y`=WZgsRjR7nM z7}p{E;Sb3zFy%+zIrOAZ1}=?Gs8|nd;&fCJHvHjXS@rmIThTUCdcvf_mOTW3@w~yb z?obd<1u%w+yw?}>+_zE-?OMaj(bSxRTz3^w&I%AAn=5%CNPj$mAi6!d!5a;fTMu-^ zTZh^O?2sNy1Q9KcqmE8OLRsW(mCO_yMuVqIp(bbG z1%+|R(h)$(AZrVGb6nc!I1MaK8QgkOIj|@tUYe8NHL(OhZZDqIhNB@QzBbX#JE+L2x`GH+}_<^`3B zlUFHfV#0Mh`8IrKBz98u6tqxf8MAJH0;r#bf^0!5HF0QzsHhg#NZ~6Lb=6&1R1dvK zOSr8{aONgzfx_JLMXSO-CJ(J}9UR%K@>9%j(J0VV508_mrmFnlELMhtqWX~+kOLL3 z{WhRA*mg!^4P;U(sV81X@Z?mWlFC(A#+*R)($wAXGWme>A@(p!q6*Sy0ZvvTQN28PQf5CzpE51=nP`^TDcD@^&u-lx)%%jM{CqZFUcbo5A&v{` zYZt##X8caTT(4&y06YMEPCYT9Qu0<8b1zUrg+hr&`Z^uKX*}We7zhZV3tRmg#)$*zKMpyzJc0`?H0x}l~B&M zU6U^PP4Vgr)tM0?Xant40W{&13H!Fc>@++BW^gvo{q6xP+q52&1i6=VSt;!ags#*b zbuLmB$*ZG6-$_&jzphoha%JSZ8Ey3)u|k#qeWq3{{)qdcKknvb#x$*5am>^Uw4kla zTUfQ@Tj5_=Z%)63A&!}+@xpi<{&x1G5xrDfAN%V3lr0Bf2~-a;S?Y6U;)db_4W9@o?6yXrA4L)$r(&Te0R6NH7Zi7palsCF-p~ zo3Q9XZp3=D4(C~s<4*tF3r)}_opB++fBY7Ba<*?IYJ)riCKgVR$#WWDS412IXe+VO zh>?bU$!)ngyT?QUR@4c!I_@+jq(~B6;^>!Msd<v0H9mKXB$1GR4 zYk3z*jyT@bpNh8NmBD~XGcpULroS1MSdEkiB2RL8)s!_>rXW7~Y*(i=$4yCei5FWJ zr`y)-Y5<7{Dy2zAWk(0%Sr0Mh+b)gDNZ_=hNy~vFqcWX7Nr4Y5(aY{pb9i}gq)2qV z`qBQ;x%3KBUTCK@p;|b-K@Md?)l&+Qwk?3^W$~^>_eq-bJ+gVlp$`hL0y}a(q(M;e zCt>G(!2d#w@TakEl0+k~q!VIZkidPbM_ekm~-sv#jpZkOEq z@pqnSGUJo^fOj`8k}?kk)2eIKR15hxba$N=4U5J)BhT~}6LpdWo0gz`-4rFn(UY9E zPJay+I-)2y($wIg!2jl<*L(Z6C`rBj7nNzK5sh$Q*!<;xdu@zMkej`b<#KD`rD_~2 zCATiF9_pZVurIx=14bQy0kjWL1qdm`L29$F!$DR%0*yvzJPtH)h6nqa*D{}1@!>Wx ztpIiky*W$7o@P&vAV(vHKV5?t(Xv#%1a_N(HnG${`tTIGd*!Ay=!Cf~#A?(!feqKP z>KSYh^d|?DP)mfaYR5TX8bWgFa2$7$457|TO9g;kB3;RojM`U{suD}dqL9#c zzGJX(Z3Km@7QKYPl>zyvz20)n9ybG^rjN=u-gVbZY^0;IPcx%7SLRc%#23HmFF*M% zOQ;3K&gBI*7kb00{L=Ml;u%30g#wn2;MfX_YSFMCBBo%wu}Y}qr0Q`Rc{423reMIz zX2b(&paeZs`owwDcu(Avc<*(q5xeg>$ zmEiW`FP*=&UZcDBKEG5K(8~qdN+i-SNK8l$%w~B|q6;G=ytrq0mtQNAs!YeMy<`Os z-b}N(c=5UYY2KDEx_af>t(`3`hxa#*M$CH*F2SY_9&Yi0;|Sp^n*|p0Y=sDuRFX@k ziRs~mv=Cuskk6IzvtZ>(1%Ps!P8YnFr>`dCn15Y$7>@I<0o>GGxwh59c-{Mmfbnwr z5@!nb62;L)`a|Z&+XFavZO^)q@4cFrzS|!-Bt7b0a#!Djjy)*!hef`l7!g;z?Xtsp zpSU>@yS?MSZL4$#ZLT!al99YcVXX&iZ$k4N(E8+$)QumGD?Xi zv+9`_u%&)o@XJ4S$iCD*;5BY)Oe)pZc&-TujfzPDteS}L;Ur#*^vCH&nT(xLbsu`U z%-p#LL?HMzb*`~Zj7$oZu&}}+LtMp9wxap4gehLO7#XtgC5N)izbqNgvXaFMcC%@^Oxs`xcO28R3hkEc&Z+gG{KvhPT0o z7+JCLqZ^7qU}Tz-xL9qolMieFFP%-Rk#H2%Q#80WDv4CRktQOLS?om5gyfhOhk=G= zM?jXCYFtYbB@VC{swp2o#GKm4J&_d2U^NU?NcsE&IOS6XaTUggV}kWPvUrUnn$#E4 z5b`pe1 z5trzVTUn#ZKC)#;GdJR9nihsD;E5=|Q?yyos4r~2$V+d*A?L<1;!*d4aLMSD^#Gd$ zrwf=JAyDTzx{$Zr*jC~Y5;X{n6Ogie`I04(k5-UG6hS&93y~!|_M9pA(LtmNi)q_3 z;$}UVUm+Dk*&4ibc*J1+X`@1*U6%@kE#Uwgym&=7c~^l^3ZOfb;$X^^rv;B;g2uf{ z{6%NsJ(Zw1z~tp7Fw#zl8wOBNULohR;z4nK9Hg7(sAV&n^gA5DC>mN42Q|~J^FH7^ zdUred5Q>Pa&o)A)w~N}OTpjwRjy%#?onp(g++R*Log!o?JUsypTtM42XH$uxxFbbV z6{M0>Te4UIS`bgQTglE`#0Ygt{$X(v%WJs{W37f&jnPho_ zd75>XH#i-`c&U}BDQkb$>n;YOtwpgcclNv!8o{cX02I1daAnMD+diRoPXJ3x#I$z> z({9UWkqJuZc7bUPvBJBhVsIa)AeuwMH;B^DmMmA*U29xyeez^th-V+#wggrr?UBTv zqy-UDI_|oap)o%mqyi)oF;-e30->F1r0A$4wH&|q^kPyIwwYm<1uE7PMkrZrkvR13j=X9ajD!&n4@M` zy(v!QoyM8ZI^8P8lF&xTq3T_DUC(M<;I|(2^|~E?QjSc4F->^aiYYp)3TGf!g`!y? zMbrhCwW`usDAp6va2~A<U+rCSJj%{uyA78IBuRVoX22f+Pn!MSmBXUFY;3W6d8No( zTY%2cZCh9>tVDQJe>|kXCuWaoT63{5_}qUpG>>!KQ84n&MIKZ!dcBZir<26Rjj1Qa zYbFjpw3UE2q}n~9Hk#+xe;!vh-;pVj`ouM3iq+3euSGC7DqPJt5S$@xkWJIeKe|sN*IjM0sG+A(+g9`*6f0+d;xWLfaF?(0i zTnHKRv5axq;&-LjgX2S5)6aU>HVKnVnGOp#8$oaB40)P4b%-sXsZ9@24*+wRl`A-| zuhY`+>w>no$2^Tx1(IGggX9~G?(&P(U_$q8lavB{E1Dxonpa1| zl>G9tW>?KAEil;4Ynp$Q+XDPyoYL}O_-fADe?VZH#R5nYGq0d1rlPFXLQfs5*n)j1 z8ItEoWc@AefS*jmcco^$uX>Cydk5H`+*Nd1KIJr@9;-Py=b7I%lFf^8jkdr1%0vb& z{vM1iH`ouned~XXckW$s_X-zX< zuRf4Vn)aw0Va+1Qf(U}!xRnnfu8eMLHSUvU!(cpS@Lyka6(N-J z&XK@pYpVvU$Dky9r?To-@6os{j~M6AL!e$JgbLyS{eBl)n}T>}2; zVyd2;%)MWchR3a#D=kFAzSLGLy89`OD^2nZVB@9lb>oFUN|-~!Uj8S^B<$_+85tjW zp#hf%r0JQp?|#6wbiE#`D1DgSap&tMNtDZ$eS-M8mCkKT(Dye8i_x20E$m;J(`gI) zV6#JSKjIUrH&M>h7e|rSh_PfenTn6QgTmi*e6mMxaXuPS9J=z()9TdI5v*xN26p{? z1UE@4S!TVD+6mh2|9|!=A51qyTxmrq5TPEf+6t#DxyIen?@waXOII!^399@R| zYNfX^-`g7O<{g2wreBa?VZZ~tC=B7jKVScD9MEFl8icbun(Mg>F!~Q-%w`ld<3T3H zPNC+J1YuB7_y&9ouVbixUYFaIYa6>{(i^Kt<;iHhUx);p^DORzS}dHzOj1aIg4uQ8 zn(-5T`kg$(&I@ugp!m1*_jb0^J;+#TuIucrFo)s}O@5Y;HT-G_>ce1Dw_;dA^ zESK58BVI0HS}7$PHY*J>?#xR`KM@sIGEMr$l7ADKmlupXdgd(k{uvqZyqT!&ydxn8 zLp(1%EF1gnJodVyeL@oFh?zybkUbc9DMfUW7Ue=Grg5qb(w?X_0WY}V>%=ek87bsv z^g8m=Lcf>6aMFkvP2w2Ng+`y4_XKUzpc>&Ti3PW%Ky>)Bp^>kQG#X4dsW{VT6!NwH zjTxnMGjgzN-L;%m`ygxJQ&jTU$YvF0)^A@1kx}>b678;!4V+4vyORMt^MlG@NH=i5 z1UqtrJBptgJQ3FL{#Otvt$z@m2Q-R*8^hEmkRflB`*r-~%EGzFy2b^Zq3pIDIVp=8p6T{@KjtE(fnD#;Of)=%@ zYtjEl|6>>k)+~o#6ju@_+dBLfXzR`R)EYrZ7Kx6emo>KfppAJYmRX)63_Ino$e+J% z8rgC(KxaVw-QN^f+>L$u(Rj_yI?kgfX;RF$d(gWPB^NnSG=YjdRHK7Q$WhYj3cm>I^oo2| zQSpjyaxn#MlScOVyO)6}bLn2@6EtF~Z@T>Vxh;qaH4^!$9!4y0wZup_pv=KgN&kXv z?L+<5o?=;!S(iFq!<$XK$URBbjas-P7~-gC8bzqNbGO(ZpNRN1r1!yJP3K{*8^ zdx;PrO(~~vbCu5SkGAA6@@BSV3tF^z@4A5NBfR~o$$L(*1o(5Ue;nGg^;uZCXH|tw z%l~`w+?E`I1X*AtU{S)_vIUt z$*mY)W;5lY`JDjJts}~i-xS#ep3@;FNfWKrKH2H*E<-G}1S>{Mo3PGN+(iNkti51i zWnwAd#=79xB!?D$KB~C%r>s;cyzka^so~0gcV%T_MtyJ$G7`9_2`xT*gi3gmCzJ-i zZWxWIXjnSf@CC_XJk_9$wf#6q*kdo51<*h1xcl|w&-S!fn%jbYbU}ipi9cYUt27_I#cookJQp!%*~oH z2~Uc5{eXrXRsE=yQF+)l&US4EW6m& zedRH+p^>*jLb`yIk5>>y|4ITEEJ4{J4Dcn`0MZ29f+A`1HL~+;Mb&Tj?Dt~45M34& zW+~4XARGW#FgFHA+p9;h(Ry75T9ZmPo)A;}-sszFiSFW2Wn>7kWHp-20lW|9>>Rx* zJ#6*HrsGwKE`#asp09p2uvGZ3DF7_HOb5);MI?ibZ< zHR&&fo#pRTkU-hD9yOFLyrn!F$UxfaeR5QA$DC1NxIwWU-y zH(`C3-jVMFKaup%c^yfWhQ)7#n{iSo@y1Su8Yv+Bro> zzlb_4Hg~K^TWxx!P)c%{4>b!)9U8QB_-I?jw~@*8VOO7Owhf+iRl2h7+Y>!v%Cs$TR4fGhSE3a!*yevt(NEVt6t2$7(p6!H zui`XN=!DK*8Ua^y@DB5}DF8!_rHr2>hC~D-tndQ|BiwT$CS7LJ+bp81!@(9`R0js~ z&a5x;VR8#^O7|ky095ZZoRQ5~DS24>k`Nj9Y?D<)Q8UwEDKb>*O971+qq%&F75ER+ z1DV0*5U2?+`FvLJh(E?5P!TxSyVkmUaV+g zD?VJ*iA%hAQ0t(ghlnmerg%0U>Ue3SY1b*@_d={nTY6fal#)uN+Ai7>dK>osidVgd zJ7y*Ul{79e;)sB~WULP3y_w0sp1Jk$Lnf!4%iVA+ReuUb+MTR{iip4R{V7*GPAlUzVHyyxhA?OGZcGv-Z9tehO{(`G51aVZ`Rx=h_ z(9jA&y#`dWcz?Pk;O+iS=0@q&R-b`f9TNeyixK687TWeSbcv*@P(xolL0l~chTID! zQY8|X*Yhs0fxPNHY?E`T2zucg;))SE`;!}*n6*f#{yk#1UwUM~hXPYA>D}qGn0!H5 zkMmt_7{^lWT$$myJWrEU+=c#=fr`(-^V3ML002lnxR_!}VHMZCNi=M%(^7v_hy3nBA_AII7?oi>EB9@rZ#QM2eFIM$ zCiUrv&{K&U>&Exh{~%DwBQ8XjHgC9f)Vr3OeCbi?TtivA`O$g6XZ6w0iH-wlW@PJ- zH7NPmYmy~J)gV=aL2@Q|i4AlCW=uQE+kP1)$=7>%1tl9bREI7;ois_3iw|V>l=|=z zh$4n=@>fd6^W22GpyHP+l z!;)`2D6$F~6!2~!}7U_fg1{(xZ9digyHHnWq#9X35FVD0Y?|7a`gLs zmB8hEJHED8&##wutc9=wJ7bM{9sHxF5gV{Rffc;Bs5?bxXjA4fWw|kSl~r;q;#n8l zrJ474Q#NoaqlZ2g z%cM4YwX9%s19%_0kQ{@2xtfVFQ1r6C#vt0Uy1QgIo1%PeP`MDu3~m(|BuQV1HO+HT zJzjN^;i!CztmE9EJ_53KM2P{pJ8m(0e8#|`<(yL`NpfyhRyG;DENL$B);8#qjad|n zP2q9Xgf)gJ$3#sGk=&x_K=2n&K=kKG7HXT*`t3+Ky$fnSG7T?>w>NzLU^T8Fa~EQP zM)aWr)@VAqY7#>gOBGTyY4jw39JY~knQsUmnTC7sm}nc#fOB_jL?WIZX%0NF-5aec z9#3j3`L3=-PVEOa5>f1XQK6Ls0;2CV=-9}9@ZFKxmbxqC6B!bSjh(-Kj68{ zlA%^#AnouDOW5%c4OXN@_fnTy$*G`lb`K-P@I` z*wqOt5GxB+&FuxXZt~lo-$=GXcL{ss@~80HRhvo?7Id}c^CG*6pQn@M&cJLZZ=+}% zv9$kD#c^Q+aaX%twdQFC-{otHn=HKPc={d|Ve%D`+CI?lZrme5rsdz}w3S#M*;X*O zC;V*BcD#;_iaIFu2@@?%wV+{0eV?>Du5Pubqo^BVjke2FKkN8)X9Z9iC|vE>XssxJz~>{$jDNJgAlR{`36!@2juNy_&M~!CDNPB= zDW+80G{b#}-s*WOszY9oro06m*3DxS+5sDc^mA?` z-DR2j$9wd$Ml(q*+Fmw}OtCUm2?jxKtwO}o!4jPgTqyRb=&`vRCY~xaGQ%0^Z9fEj zqBim(Nd0O2e{4IP@H;jui54W@?6=K)l4+QHciXO31uW5W`Tywz*%uX3Z5yYzhh~+h z7J1eHWpa5(bHY;7j-{M+%8(bxxtNRZ-cW5(yjrn+h$42`o$o!W?iao?_${StK=Sgu z*?8D!kjrgj&vMB(M4%m?^Q@ti+u1aj(|iL`rZ7TgeUIUoSfSK1Tf)My6LjVz zh|w3fg)DFTcG;1ksd&lvQUsXYX_=sAd&|)gh;DflXAvO^&HqI(7bccr_gYO#tWSG? zwwiTvy^Pw7wLl8mwps2odVbm)_Q;M2)}tv`+dwm^)H03}8G;z`-Ht{c5SJ!^8(@9P zY<&H>F9$`T;@n$p*y4j**<^dH$B*^n{`6YxJSGH|gsFj$W~imON#Mw=SJC910#+h9 zZ>KlvTh$t}fDof({bH@5e^h(--9T}ENB*rMnyH^E+!BZ~pqK&F_uWPT6WxT8)BnwZ zG+-nF{2QE0Am9bPVPsCU@+@1^S(i+g0?#P+z$^%YYBmpuCU(gW*(olyGDjH@7A2u5 z3xoY|u^1YGN#ciBj-OJMK@p{ZqU}=;-dOXJ)}e3!MK;4JG+lf8T01;c$(>&AdEguz zDridE9NwxQM|UT-xV}I|(k`If*)veln7hSMXV#WnthoZs!V=@KpL`}W{Tog;;Dq9Y_)k)XyV1QhTqJoPP@RxZL4_?NQEN9_9)OT@;+ji z8Hs^HmrfK7qQ3BxQDjZ&bAdhl)y~w3fL(VVB&%FQ#8BSZacq->mH@h&lXD%K}b{v zDuMo=_uALFL_%ILx-)5(re>1&9#F&}CKXG$T~U**N%? zg^u<)TouL42uQ-NfA__nFwyXE0)r8utud=&dxk=M&QYaft*4o69>M2}lg$ z`k&Mep2R>?^N_JzuX1=QA^}jCv025$WJ@LTyzR&aE1})S(=L^zGl^O{_3^=b0;v6I zk_oTLJJz7^WODg)d-)Q+XU<6*_kGTyTGOruFp6k z_wY_77^}v1baE6_9`{?}rSj{@fg?xGB`2`~G8dU~1qCayTkwAj~L3Jcu(1~5e@8HcIv#fQWVK(vP5UP6z<0UBv2p3f+ov}ic^2#IvyUq) z+`w<6wimrbK`ve}ORn-FKLd`)@JV1VOj?t?9d(C$bsSO}47QLs^VzcwlMSv9lA*0y zm`D;}^N%#dV@1WTU?@*#iIY5|?5C@QsM)}ejq|25FFi)3_en4kG&gmJa#WTURYLqafR#ckMebmV@2NDnE*@>Wp*@X z_xtTitk)05G%4VsiI{dN8WVNX%aI2SneQc;m)+F;P?5bqFf~ys)97Cp7NeP00*lX5 z7L<9|2wXghuQ~8P)FL6?v7lK#TYebH7l^N2wo2=LFe(sxPe4`Wnr8YhP4VAy89xBsavOl8*ZFCPxN z3D0HDp#RmLNlu%( zSHDeW34CaHg5;p_AXPi&0$wu*({p3|5b83sOk5vs!FV0<(Wu?r-8dHJ+egtuG^a^i;$(dQ%x2l^geY93PA6-uwckj%u7sh|&tR>_k1s4m{Z{ z#uJ0*KYcfUi#~k*BIpMiYC=!P##7%Fk&VRGR+LA~kC!e^!QVk*amM|s%Ih?Es96A| zX`S(53hD)oyR*S;qXy4r%%NK}uYlEJmk=O2;Y5PV-|^>3t3m7tvgID-Q||D;fu2 z;lDiK<<5Qx--CykqJ+Rz2+mn)-HKw&h6=`U2pINo(Pb9CbO58%YF`7$ws(t9)oQ~(pG`3HM1JmI>tVmqQSuE*ouzU#rQ!0mmn!;YpjEv9Fq9O#=# zVpL~Mu~;WI;utZNbGy=D%2~G+0bu0-&8(bJ-E;a)cv=75!VpXh{YfCo(|r- z%j$;;*l51@bp|2N(#&3#154!2ax$SmV^n9T5-JuRcQO!8>FHxA&p3AN;xX-3lQGJZ zsm_c5rPZJ$dY5@>SA8-FrWD)V*}yUFTA6A&>Uy{$lvs+|y3!*RIN)p)Y4?yaIgyf` z(cB#C!QzaxCz-@c$Wuink11L@iooz&U9PLHU#YP9Ba zW>y|U;Z#ZUNRFYyx8Yz23Y|A&(HRtWrdauil8t3VhL~oum_UD1(=*MHpxC@KO4J`c zvjt2VQ5G|5B#i~W?xeDH&(=LQON3;ntlZA0ET?=EA)Erf>%%dNFZ& z5rOf;^Y||fq$-U|=a`-%BevF(A4TAB-H^CC5HzQnd*VGzV3uXef6)k+P}3Jr(H!Tq zv@AY57@A^VT70qlSmx2{mf;>>E=+`VjUtHE&0TpKwZEjGax-O3S-6368sSq#&}92= znf6vCTAX74pytt)(c$cC*ylF_g|5Z!ZnU`oCCHmy!E4CN-Fr9Ty}}Fj`41%=0-Bl#+!S@2A&DpHeyYN0itRGb-;(rzPZS@v zw2X}Dt4?Xf=HnOTdHjkOWJOrlMR!oeHQRhMfN`v$jz7OSg#emwoO;*{o1Nl*gYq5l z9TL9an1W1PJ06{hMq8u#Z1)nTF~XFxm#TO4+)ssb7)KbQ zF4;N7XO}(8#Ec8v-IxIGEUsb-DcA>{Bu?c0uu_*7RU=)^N-=;B3aXI3BPJMbl z<^x#KE!lLX7!0<|!+yRL^`fwj5QYLx!^1F9QhXi(xvvRkq9J=XjW{bGSV7oGgCy)E zDnfZS;LJJ7QB>wQ)j4RNZ(hOb*UhL$`fPv##Cc}yJQAby+N}B4fl*e#cul})&Q)9N z7ehYXX5(*qd?MLXnP$2t9_TeFHtaW^Gd+bkl!s!brGlUqmlUsoquZYxb#-ha*^>wM z@?)ZhUMCkE!4NQDkr}inK^KnYD}v1vJRVp8Zosz&zcS$i%IH;t9XZZTsCZlk>`+DI zr!%!J2=74C?2oYCkej20p~&Eef3>LMOp+^I58JYm?#>%b@n+gwPCUwOBNuS2VF($& zTqHV^xDEAlCkyh{GL0AJkjAZq*WcW*T4<7Ho;^T>3jr#L(MuaIbWVVI0%JK04N3N{ z5)J}Z&x5MgdKxv|F)8np%M}pqMN{H%qhToyHLpHh3p*?K);6@G!3ss+^pv0%;_#Z3 z$P77{l3qJ;2ItT8Q7*22r#y20``krsokky^$t%(sOmX%G(rnD-@t`R?)J7kVmOMFD z$yboQFm*Vp2~lAEfmcoNEEu$77<)%pmhB8UUhUsMxy9r^a0jk=@M5SGEv;B}#!r!{ z)2zd31`n<_3cr$C9Xs5uR?xb5Ydh~me>rn(TKdLMr8_UoZuzkF-s%@*E{BK}dO4cT zY;f#9luG$WvcSm48GWi~0C+zljGzExKXcD|-S72$cZ4V=2TM*O*%jW7D!yn}b!6QK zHGl#Ov02_t)QEwEfMhX3M6%xR_e*6tvclH7W>D&WtjR0#bR4&+B5Feu}v(@gu}t7&kU%k zmWrRN7aHsfvtnZ3*;fKZLTMw)o7pF)aB^ONQ0s}(o>XgUP?XKB1;FpWw~IQ>8||cj z<2hb>id2mUQh>(|MTDyh`N2vVi;6gO?;5jcORjYx2N_LYE17ixFJh|i*nCV`vipSs z4YIx&?ee1YXhW(`FD${HH|;HhJ_GDx#QlQz@ejjDT%ZL*jrs&BK$BuD-ZVEgz8aY- zQg!QnkE7d4N{9)qp?J}SW+(5#=n`Ci2&{rzolu@QSv^AuVW?8Ck;9J%C_ z$KVMRDR)HE!=+HiRqpSP2%XxD$w0_InEF(fLpg=O`Ej#s_m8`3Ib80Y`S|rJxW`{L z_|leLf$W|%_jG-C%&=&OL}EaWiN)?NP#XF04WtLP{m#5M@3D<%Z%H{$+5JsY|N59` zd7GU}AmlSf_6vyfg=XqW^G6+pJjA;j7_$a_%y;RT>VQ-Qh=QB4_150|Knd8>o?+f$59?9S(RdPvxziJjd8#X_h5RkY-A$Fjo((O6!liukgEeji6L!U z4=rzCIpRAW#?RTv9&!?(1)v3Eff4UGE#42~V3ESo7t$7edydz`s71e70O5U&6Fq3N zH$fbn8pn+sn+5Jei`x%xPTyQWgoR-W$)aWtvieA613zPIrWdEo+%`-_+tq$_AbfH zt@_K*KHMxv?MpRpkxIc_nnJU8 zVG+1*uUCV&WTcTT0&lk;u`Ix`Bwxww`%Z24|I9|omjmO3ZxYqz{DDCOL53^CO0 zyC4K+9ev5aLN@nSQZ%7LJC|ZfjgZ`e4GMv*rzHWUq(mwn=ZLfbJFk+dUCi^wtw6*s z(<|rNAGyR4ROO0fCb!Jhl<<5{N5|-Ffb(2XYQp5QG9r5&cV#~)^ZpV#3GigSiBFb6 zbBQl|#RC~N)y3JatwKU*$C4+?V3dXJS=46`3Z0pK&Yw_#8;%~q%&TYlC3dZjE&lv# zY!j=cQY|*Q;`H9aM`A{_j1e*N9JHmDOP?~O`3q0_3qy7<;ncA-dEfq9id(M>l9IxE z9$43kaE2eKS(f1dEgW|o|ken*{re`L5 z^Nu%=k}@#ULuOK=9_LvBEWg)*0%LutceHXz$9B{FPsb%33H+UVmA``Fo0+fvno4CP ziC3eDBTG^Rj!>@szQ8ew)^8Ilw`5uC2uJ2Dy^0_AH#UiU+JwoDIEvNo1bTdn8A=}? zM}tQhUt9p@^4v-um(Y&!p1%8EX7vBA|^^4G?9`U-{sJW;*F$CB1~ z>in%|F4XAmKqc?_vGdbfxQK%1hgy1Sb8#-u-`n9+;RAVkCQU^VJO??n6C|JUt_Zih zXk)b^yt5;yCFT=s0;24;Y?gTCVT4s5>_yyegXD{M&uvBUql+Lu@L&h3uFTiAn`EYn zMc{){5bbl#n}31E1Q7|AmZLi9P3O@i=#;9+&7hm;q4}J=n8e zVFZ^P{0$NjI(`|fK_=SD3V`FUF%JwxCmpjzVy98~GUT_8WEV)USHp81^K%+=#kHXM zAkebEBtfn|pv)jXL~$YJHzKvf*46^qhUi~CY9Vl_VtwdN z6k&ALnwzatQKxFVzwFJkq)o9~C6K`ySW}1UT`ECH7hDWV6ai#4x!Vjxo&>yakji8< zIyvHlt^*whOi-9cQm`y144BKB)#7mIhX^l|fP2LUG8+UG?M5E6%=_7vR>r;|`T-4IV`p zmyTTyMIx!UUTazf>N%3C8TI8MOXP|8C}VbES1Z8k=7R|26Ljw`>pDS3Z|Z9B)Rp5R z=uss5hh}bof<@R@%$hL3DjcD|)8PJdj6co+GXa#~00A20SiFxjjSGMY4{8Cg^9)Qb zeu|7Rp>Q)Eok-+WC^`k@szQYCtg*OJ&7ea0TS#7IN?XU)autJmIv3 zgNV*}KzC{44l2o3S~uyy-<+tCWZYt<6c*MZ&GF~4=X9yU|is+K*EQ)DBt+bMX zMVyt+R=5_8Y2n#KOJ1P?o``ioahks>Mn(P2IE(aWKbOCJySm)1_eX zjDa`EoxAJVe*OkXaxZoF)gATBH_OVQfxzDSP~O&E9~BxhFYnoq5{kpFG?qBmSLO2i zslVJb7Tw`O;t8!X9gE-ym zWjf2%{-`uYNY?FaBWFGtE#A-WH%@{9>B`^Wm0XJ7ZPlX-TNL(tX1}>Ywvda*nz-NA zS#|-+nnV;TNFV@5;(oQhXF+QvogRkEVSI!y{|tcx%BdZqRr^_>a1t zmn+2&i}gvhv9=b>v~c#w*v6U^YrK&(VwJJ2c2u;A*cguQ%A0{<%xd52Abj8?Kalpz z+p43?#0dp9m#h={}J*(qcOl&ctW-jt9 z+w_o|=aQojToe1_K-%=&sl!;-sh@8HSUhozz=(r9WvBWU@8K^>w9O8Tl2hR2z*8L? zvfTrXE$J|X|4~qL8vW-%<@D)qe;zdca=8rJs(J^C!oU5G{by#H+e4Ey>m|L4f4-H* zEd>!0GlrCCruyOZMx?&BQT25GCMDl2t{^%9ha7XrSWj_V<~tD3?nkbeAx^BOzq;kx zsDSAPyt(-8LvHx53o+>$QP)~4!(G_ASh(s!kHsoMQt79LF2q<2wmJ^Xm*E&gCV#Le zWAcx}_N~BVAmunNqXCo@U_x{jFeE-SIOii)-lY z7nc&u|S?@YQk`Y2XL z5+YF*ODODaz_V1EK|@^$yi!`OQ1grsV?zg$eF(=bLF+dj(^P=F0`LgtPv!BV^|!DU zbIu;ki~EutsbG6DycL^1&Z&U4jabE&b786E)s-RF?&DZ3nvz#4po1vT*PgdfoF!>+B2wAk;lBhg?wMqCzI^SYO;xm9zK z9fZqX2sRu!G_OPqNF^#jM%*=HtYO!tMyems;NelkKkR%9`fcTFNulH^@V=JLJSId2 zITyL!l=?Tq1jIVcx91G^L zEpFtzxpdd+$Jo80@RA^rEm)QI!xz^iij=s+@trdE6lo(^UHPsogi}PH!)={@OX=EH zO-~79J38hs;kt#t2D~~pLiF#lGVf!xJQHx-ndVe3TJ1OUIVzhs&-Z4CQd#hOAK#91 z>*r(VUR%PpvMLU|1g5(8YDWdf3uLMEPkqX!G=!t%n1L-krWXXwk{^T$HjOeob#xJ? zGT(M3{5&}cmvT4ASSa~A7Rk)-4a>2^#E#hY0>f^U(|iB27CqYYm0ZLb!p3xBBi0X> zqyk6-XSaD%Kw7Vkgu}r(YX#5fxjUlIoui}3ce;>@=F~4-sx&0_)7FH^&q&BVyIQ`z zduYRyR}rj40c}p(fR{8ANS`=d2d@z4kq{ZUbx`e~^E*woiwZvP{@G|_ju^eL1D3gp z^-Sgt|?*b4ijdD$-+Nknn23g)pRYHnrh~o_jc! zFMH%(P_6eMXbmu79v{->31x;lp9pg65MH1DkB1<2BD_VxZ12eKNTZ`{*NG+r0V~+j{GtPbx4Q?NX-E7kZZ^=cmt+mNnNx z7|MMS3PuOXX|E^fgYRgCN=pjfNnt-YIJ4DZ*!K5~yi zcXX$R+6jyw%I)$7Rg&HHm_wS_!Pod z|6C4BZ%x&4JZg@V(#woY;B#}Q!Y=Cz98awl$^rHhC~PqDI;@S~=y}mzerTx^Ll--q z^fl$q-d0>CC%#`2fVlMb+W|7av)vz#F;CAaskmRpG zT`fKydJD*nH%1=g5%&(TiZmGNZOaw&AG~FlPI_QxT;md_5h4prH%&6e%Mkr(KY-Dr zd%tuzhtX{O&tWG=pVvTpus?-17vX#75fSA@J?UXlG=G;_nQ*=8ryUQ~q(;1XAuG*1 z8)YNlQ=N{*#sSWB(V8&2-d3{}ju8+jx*>s-f_0c_6vPKBJOD#LyuW1z{S7vGWqs8D zgR8s6y6w;u?Gro-uz_AWe!6WsP3Z>lh&;M}suP9Z*xv+wMYo(IYZ!tYsw(u zMsle>%KFn6n3(VW zcmch9-Ari)<%5<(;GaaHhMJ`U10lqk3xY*j91L&&F|A>-1?_}GCm6okzsbfm&crwTNiCdPH36|7B3*Q-1zi-5k z2kB-iCvs?a_Uyo65bAJ|NJ{h3-gbuUfz}KURbeMsH78~*h8F*|((@ksH|5A< z6;P(@t&xHzLa8w6X$2QbX=AnsM|JEKBG81zWt>+Fnz%QW6+5FP2 zHRW+OCfP<=7Zk^S`AFkOu73L#+|rJ(J_rLayUCKHbk7_p{+Y!RoZ&qH;!A;m`Zs`U zublWhl*OjhyaoM;dkJw4*g`HDi{wAi;GPVLwjmNx{C_`DLwDbO_NMH84-;6DTdQT= zcHgl#Kez#eE)~_*C~s;O4ipnDZLk<5HcTj}b~G#{-T=Mhz31m|io5@L0fe<8w&NWC zs#HQ2da;T;YKsPwe@q-X&VkIMo|OcffTvFgpVM0fEQDdXZ+9+XOo7#}C7C~85j-O! zd7_>UD|P2Y`l&DX^!<%0EwicP6iKAbfty6Ij2@^}iMnb!N<3WLRTkD_DYh?_P&hM{ z-YimVt3wmAFse8gb}m2b!?3Qd;|m%wg%Z_X04LY%Dd8SvJyEd0(5^>@Q>iptgg5rq z6s&!_-aodr^|7w_?uAHhwNpA8SQa3OS<41pan*BgPs; zZ81Boa3P@fDnc`E3BwEg!!kt!wW4*QFrL0(b6Lt7H}yP#$RMyHU52s>C*|5d1sZuc z!{orCWb~794<$d1iHf(A*1SCNz)%OnugpQ&CimgTR2-)@6j^CS<*_X_fnX7w=;+`n zNK6!LWTwXZ86fapNM>B32q@+2;bCW17QltW>WflNi&mXpT-GFd_foUFZW)i!$h2Am z+;$o%2vcZ}T%GQX(4i^C{}x#Hb;e-&{3xw&p%e2XF3+)~^^up?r&|L7CGa=2rq&Xz z0q+~JD@I=%jiB5kce=yTPSVMMD6#1gsUFP8=K963s;_r!Q}Bi&%3C`DZM~u}6?jXr zSfPU;RajN>i|$vDRAI(8$K<@z zwrc1;!v|o{6-@698u^lQ2qVuw7Y}YtWXQSYGm$dp1387cd((4)l5q6N;3g_g3`A*> z(+INTPyRT`x~naF`^bw~f(I6a5#eDJ_|q4-dh-M9Gv=MLwv;}bE|0JUKD-ag`_PEeQ3J&NHxoUHmEF#*y(dwBH(2y z5*on;j*`l&aM1$B!?<#Qs-WC-bpP3J`Um%U}P)G8_S{igy4ePw=+MGy*MIgg&)RqNZRWSMU5aaiC_VV9VW@UN=oqqB?hM1yIDcd zV>uzwv%&%cKcfJmgFIA7;B*PM*?m46_j&HnuRdHsH23q~I?}Lh`I^ko;+Tid{X;%ucwdhVB4ZOcs@-GKY;C6X)2(G7!7Dd-u7FD@G0~DG)Y?q$0x>*3|MM0nMj6By5B&t({A`enFRb98SGxRfhyAksjtz8{9Mk z&$7cNM_SqBy&>ErNu&-l#U5dPBjWOI5`i4ZVh;c{eq_nmch=!()zFsn-=kI0oH&xR z4Rd1H#X{V2P8xQW3N}bOYFffMV>&OSZYhSQlpPS#E5TGSGbdb}D?6EU&e=p5PcwHf zZAAbVIT0>@Jm4c^%=1C5RW_ z+gC7|HA$vtibAlSc03=3_kVoj&g!|!rP%ebKYn(dW%LUT1rRA?wJ|h_&2SJuH9p|p zb4~v=NDjp%+Rku69h9j0WasfGNon_dGk|L#@CLT2fVa6DKV^brX>N_=GhS4SdtTH9}yPfrh|jOi)_fC z{gn0;%*&^1sh?OLKr?033tuZ@We{baju3xA1+#bYnO}U2oAT)(As)=lB?&yDRir%M|ySDLbpXLbTS&nK=2Nd z2mH?Lj_}J?578$JAzY(yP8XV3bZoW|wcld%z!SpN@M+AJh zIXEZw?hUMCe#D&J?+2)?{OL3+<9Y-(i5q#|O2mkuTKNf=R0TmZCqYEU@^nS{LDC_9 z@>wOITs3kLUI_R5BjbCbRL1dbG?)r zEJz6>F%(71&MaCdC7lFASD^A7NyNU*Z8d&og%tOXM@mwZ;9zLkq4*%!j1!N>YYRcC z!Dja)zz|LGS`xV-O9NMZa~g~CGK~~Hh`*$DzNoXuSEY+&-^C{QkakQNHN!%rCTGl> zLU_S?o*?WO*)<_PQ=9AHs#GRPaZhK;yhbK?+$iWrhLZy`9tp=WzxRe}4Y_|nz^up; z`FLsN(m+SsRjD_v0&KxvhiEWt%`A6z49_nyq9SAxKCC+Sq-L&huAH z+QpAYYEG!66KINv0T1E~sO=y0p<&<%wt*>#PstqIzvz#6BUrUSCeLhEl7mz^>;39Q zw;i=M?bj8C&Oygg859vlwHeT?`)DWW#s8?y`O4}uzc-3DGofYo=!(C=_>v*jTp$O> z>kQOXigvXca8odd-9WQuINi@lMoT1k_$aOX%sHcSlyG@NX@r39fUE5CI?1FTeO(L# z2vk(5s4hxrUp>fy=l6YIXl?sc{2j^Jq-@+~;l*{YM2qQ{Fa=YSC_AQ(i$w7gH{f(x z6^>~zEnFm#X(uFGSw`0lRwGlA&RRqC)5GaUn7phLhXN`jcF@ebsdU%<;D}V~nm&pz z7Amt;Q7a=yk8uXEKxm@s*5v774BW=AIM#9T$k+dlbPC zp@P)wR2m(P7OnBQUOQn{4oc2bJjoY>uiR4Tds1Y~Bel3TLwXT(AB8zWE+czA+W!S= zsRR3SXC`JeWJII3RmGMonlsLF=@ecedE+BpTRV++LRpg>47u(s`BpJor`i_4#`xVU zwv-^|!G*9m(TiH129H9HxFQ$aDa%2aoL+XWu70#FM?1fG)!yr}QZ+^1jZgU%!0*DR zdN?9%cW2FsI^)dhS?+iI5{XryALIz{NSfF*J5G{*QF>_G%Rf&e8$giLmgk4rGYvM$ zB7@LVRzk@IA)Rp>ZrnjE56vv^@?ETPCu*`WK5$LNUaSs8NgU{bE2{hgto*Fr(RUarJ3?)vemP;K) ze!fIS%+lbVKd*_hop_hkaK5X?!)UF82(G=0$zb1S%nIWhO>W0wl%=MaNKn*qQ<*_j z*dKePxIE9+Wv8!hR4+hJa7rd9$>27Llc9%~l4>ekBTJ=3H;j5Dal?46zafFP6_bL| z@T^&*4z%^La!TpLtf-DmaETVUV|0MdUg8et)pi#n z`bCSf#Jnuli9;aU@B)Rg5_8xO3~X(>LYDEH87duJfk#1P@Un) z>4s1H^Sa0s29TCbpTU!c{sy_1RR^Dvi--rQ4yr_pJ%-&Nb~A|)Kf036=wUi-R;%l}0ENxV86w4N6U%{Zf18dz`-#-km@CqhBP74v~k2z*v>PJwkizm<}}EwGwh5;^qw*PN`$pJtv} z9`Wnf4GhB0Dh0F((9RCO+TuWlAR1{3V)X#3x%PDd&+FQAvrPg~3U`2#>=mbtq1ZMo zYqRoP@0N1wST0OxGVQ{V$E^4(V6U>8!jyT9EvprYXD1CFf4>VOZD$U3aJoEg_m$Ei zhre1n!!ZcsZXk_C;PRgz$0M3K2{9X$*v!LH5DCYTZ?VTq(QGA^3em@;t<|OO1!NQ- zu^y6RAZ#H__z9}BUo1Z^WgDrj*Vys5jq?*LLO2()3*L-8{gzUsAxos1M|#-<##w4e zm|s4>^8mK~2sqONnTP9FV{Kfu9{^%@*C)(8?0_}`>CK;4gR7EdzS*@pvf$}mTCk^d zA=n<=fgKLVw&?R})>W?eUtQM16~X0Gb+%)Xu_q<00ibFvfZuo55W>uzYdE30D&L>K`!hx(_p;=c z@0+j1AGZ9wC!)=--`*OsulYwNVM$kFrImcvu;O_mGDe73XkFF?kKzdcIvJtXa4p~L zkArrCOti9uxo4KEShK1RtQqXm2h_eC4r3GL0)w+j_mrK+@ zp!i_0Pxs8iOWKkQ>I63DrJOdmdU1-?m%T5)LdsC==Cyb={xIPqc0#sjUbt3{UYrLa zXO~00z6dFJx^sZq!{udvT05eMXrP3Q1g(V@M2E(E6YbN2jA$or_FdqLS$?iH42++p z4Lr4sC0;HS`InnTK)A)hYvZyI+^z2rSi_da{b-ZQetC}_kNvz_U6MNETaw3Ghn94q zaSk_P7Z!o+mRzInF_Xgh&|l~#f*c}C49~ns`Bq8V?l1JG4D>M90snwTCx8=tazujl zf)Nq!7~<&YwyhJDyU|b4)8P^yzufoPA7mC{a<9m{yt1BNo|C>ZXn6B@KAOgr^o#>` zDOEnviQXf|L1Ds|-0vhkKzF_<^)&YYlg_DGS;|q;3w0&^fEnNq{N8^13{zUj-`aae zr=Y!$VNyw1;fdNsZ#!X{xar?gnuCz6SRhmpE- znv-QsXDOfE7kx9j`^j=I2xr6 zIg&<_)RgPWNbGlbe?4hCB@GW2#AdJnkn%`&gJ&bF^&49-H7j!lmtr~ut<78FHtkoG zJ(O#ziTEEbly=hd)vZgLt+3exvC1xJtZ-8t=QSg1a6hqVe9Igw-E?1IFYbtFWJWCNW7slX+sQ7vRTkOY)v60S5=(~LEJuB);S$6c=#v=W)?8!Lig?_)c}gg4e!yH)m()2WWqeY$Sfopl$7ws++*9+!H03>vcI zpW)1ERb9VTjyLchyWb8pKC3p6)PAC}0^-Ez=0JUD6+sV6`08LU=0pN&tTFw5dJLWGK(+oM)B${CwPjzDu|A17*EwkEuTywRSW-77u zJ@d>7rZpd#Bfd-uZfVY4;kA!3RiW-elY_v-_iT^^&q?je>RXvyP9U~I5V5*67NhI4 zfiEmuL?8w<3&Jc0fLW=myVAkFs)5WCjzb@uO{|8Ey->`rWz8#ep()FlC)J?bgb!5& zm$QyQ#1M?mFUIWObTu;-A>4s#m36Pk#Y*4j$!{HuH*KevF~MOw5(h>pgCwuZTg#C2!Zz*SxMv0x3!2f z+gA`H!9v^H`!YrtbU%9y5i~DSfNgoSo@m&!`R@Kqi_Y26B-9DV3amOFDxP6F!pl_B z#gbGUClx}+)^Yleo-MpF)NwGBmpzw;V9*__y1VJ>VPygIMKy61Kh>hmn7o!dhoD4p zME@AwV-CorlI+ny&u~$JUf2~wXO+NTDHIWL4pPGUpmD*zkc~y{mr-^)&q*R2gzc9x z@l@DIx&V@tdF%f!+$(nP7I zC!c{*X8h}8{|d`YSLEA!-QhSr;#ubR&_Av?vZSp*elp{*{nYrO^$Rpeh z7B54T;=nTj@q$!wIVuQCgd$a*K9Ek>xYXC9Y-?z7xL>@WqN8<3MeOQ3C%V(N6Mh z(LS?T_;o>JKNZ^I^SD6Goq(tF) z!b`~FV=2qEgOv5UIZS18ER|4rc4fRXhXJVGK#>EH&7K_%1k5;7YnQn0v70~I(WF6l zEZ^fC3@v45vbT7|NPPn|`E=lQX&n_p0((R6o{Zk!OG`148gdM-O$ZYJZEz!!voc8h z$hdLjeJt%ft{LNLWComoLr$~A&`8IRfwQm@OeEI*on$H0p(ZY>%g9CR>VPEDyty8! zc~sgja;H`ql0FOZu;aP$Xn_5iU#o0~Eg)CI)4NT{cn}k~{|X8yxsFMCU_9*qCR4EQ!&Vsb<%3n!=t~=b zw>;L)gZYjI`H;0Yv7~E~)co7=H@RRtQvsqveU^M;XufhweMq9Xy^CjLUT?ej6h$^G zQ`bGFZ2*G+M@vDawOOw|ch9Ou1!x`=x8}!vgWg5R@eWE_G(LU#hX!3)s&y0szCJSoP4Nd%YooqY6cFcaoE$|{o^afV zB@YLnj)Kevtte!^UER;OJheEHIYAzOH`svdGs zta$z!bav3ixMDzqO|JXUsL|L!TJV&8aKf=v5reOcR9=V<-X=<6^x)Cyq& zQ@chc^`Yl)*C2AgU11s}5%Dn{gAtiTo{VH;hoy#^Onb|SsRbvc8#4jrTD?`QG{3X^ zlD;4n&YYH-$4H>g$n0ucSMz(K&92Tue_?R`5zCCx8^4hBkO;FW7_a+gIqyn%jI@RS zbVDuCNSN5oEqm;wx6cC7a$dg~bgaORK%t=5GMw+noW%N$gEE80GRYF z=K%C7>;lRBXo@U3s41uiQ(pedw)HM#mRQLU%gL3)xowTQl1DeTkMjszUG7=#&A*5& zuRCu|IONTNmhS2y=X56LVt6qNV2bHABQ%SumW25+Gy?+J^m##eBVQ9ho+x@x34|a;dq%GP<_E0= zcx75#e(h#I7_XoqJN2pRgpv~q-F%9IxgQJuygQxn0n^XcZ#e)f(eN4F8F9GvKsY#k zx}mt=subuhd=!_na?dbEQ~|0~)4Brl9?H0!-~->%Emt;ILn(;Mm~Zayu(~`9-aD}{ z=3g6V&aE9I-8Ls!zLLn0ILPa7GE;URIrZG!6j1^Av51KfJig$z8oB?pWKB^OOR*yI z-$op2E@8xT0|3Z=R}{y3I%lTv?nZW7VWf#(DYuqARGNs5%UPa+-Xn9Uw%h8I+~(8+ z)g(8}-=m!xJnr)H*^QG~6}*<;*67aSN`=k21K@X<>ziaf%>gXqy5{%4vqkbWtQ?E~ z&>hszh{I7-#CS^m(uu;Md+#^}3?iOtBuGwE2(hfPJ1L^O;djV|WpT>lz8X*B_$Epb#@H=KcQ8{ec9Zv?Z!GD#NQe6kof1; z_lRjk`5n}Ayb>mi-i^Lz7rM#*!G)YSBre;z1uhvKN;2+ghuaX+AEk;hq}~c8#-rauUz=k zGx@H#<#pW!5X1CQNJsEqxz`0GLede+t|tr;J=ga=WDFq= z&LhBaCWW=m+##{%_r9>Z7UPWdTl+c|I&+mnA^-3_I%$c3F(Yyc#&-T$@_qK<%!t5_TY`XVxws8qjm+l!mzLz&Ul=L0L431F=XXY zt0G?p$*L!5KjtsX~oXG{@waClj{^5dO2NGQ^DcC$nSKkqv zzPkvB>Yrx~Aelw7SJq-wdvdth-TFA_RMgtyhAuU10x>4(ooLp*z{0Cmjm2>%2yu>< z=cA*^_f*va!VNpzC&<4@I|UkyY?aU8AOnD3rUhgLr8*HsP9`=9jX5ARKJZ!j93qMj z$zekGf@}$mwu|kQL^TW`ALXYZUHl)#A-xqUNZPmE`GE|IpYn+8|Nl7!nS`l|UvMVN z2>YBuUmjApT$wyxCkY18DSIZ9reWC5x@Py(zzJ6yUCf7~sHn`!mfVM5BVFA{mJWRd9gR(Oya^@cciN?;Wv;^0xpu_jg= z5}!>gok2{cx!&;piJ>OYDNvAc#$#Hc(B5F(OvP%D9`cA&Y`IGI$N;Pt)HpJqT4CPC#C0XS zoLN2eyc>O4K5nd@W^!o7xPf5ez4taXgZqQ*{;}#R&I1jLHvEt(ebg<^FSio71eMLm zy|7_t#z0g(T1%HGdeckFbzN2b3$ZXJ-JO2Y&LP-7n7D!0QP{wGKu^0ZHMufp7I(0j z%J+}46dQfb!kV9%q7ToW34z-PRo#1ZEH<#cWYMA}QAtV{wRe;fKsEgsdlFL^n;WrF zIRki(f!|`|WV&(env!U}{gDId=;?2N4D3Hgj=>9EQ6$N;{G<0-^-HhpBU;hoSw)df zJgKQ8qS+$;jk9A5Pj}=a@MC+z~(Nq*SG|UAX`Nq?Zy7pXNxrm!3>jd*iY-`7vKzvS}z|vn7=W`${Him845> z4Nu|xSPBy&CK{CnOXh$`z)~!#nielqRnaCI1`Y#RsQ^=BsK@)$(a|t{5>kwvTvhZ2^pT8Kg^Vk>*iFhw@ykyru8< z;`}hl2$Y0siQNWJO^vm2;>bjxiEy0Bsovnc>ben?>|GCW%QO|GZ>KtaNAh1nF*b-}Czb3qdz1h# zs&=EGGUY4Sk3b>3cz5jUwaE0})D7D4-r zxS~Mo5zu!d830oDPRk|h%KqO3dsR6t8@xj6@5US;8X`90qNIIH3x8udX(ixOmM79O z;rg#X{p3v-$X<)|OS!Z7&u4Jan=bU+rR37BEgMm-*P1Qpga*gv-(vpc|G!&I36(b%Daw7fSDu?hRXDT{~-$ zG9U2H5f*8 zs$^t=Qrwab?&w6!p+i3&YYew+7Pc5E+bIG3b%H|Tf8LD6ZRvuS6#|+^P&mo~_W0!P zw$Eqps)*F&tuAh_Q4it(Ku-RGa;*!LdkMQxG%LGjcZ1rzCwavnSy|^9GKL@a){Mt> zFv}#oztEhBf4koU{KM4h>vK_$B)~j%*{<@&Np>}{TCe+{;PJ!aAY8`ZKy3z}trQFq zshWI)zeiIu{mHgY>5i=45{>QY~6+YDj_ zsNf}UJ?5@8`bW=R&iwZZ<@t_Ol=s(IVf?I`Cun--MwWk=&g_%Cafcr`f2w{Fo2szg zQJRqE!EURMHAz23iJZIqLt=Ar0>9Mt_0Bt`qvT8c9$yVa34Y$ zJT+i@;R)DF{1$y$7vink#Fw}SDz`9aIDUJqJ2ib>*d`u77nz@3_((z$kN+Ed zvspk3%<=0`C5`%N{h@urce1_rxNM;eDcm!=3Mq6|QHsOTwGgly3XV=AO-~Ubvu!^~ z@t3-pja^T;e1LO9nYK%!jCeZQ-GWbBwDrv%Ag9;b;EF@56Jm2R%yc6EW`@pBwmZZ* zM=R#}O|I=(m{?1%43}4;Zzc0F5tNlFv1E(ih_)T?`p2KLTHET_Q19;wIfhJwqS$;K|S7_BYsGZ=0aX9^~ z5)tL$`1!^KX5hwdfMaX)14eeid!?hhz489c5p(ybX}T7p!tInT5>UI;-`5`a;UC7u4X>l zNb4DmsPe&9Z{DxQEFZbSlBU99$3g4NRf{TS2iL{%m`04>uw}*6IpAwzlTz19=3~8YVwv6iWap_-q=1ldjy{pEH1ozxCrhU%J)=RPOXUM zNWBhRC10m7`TOe;FJ*pauuEq}GJPAEljUTU#|^IQwkAp}%S&tF2U zxL+t{ln{`>nD~Qdz3DN%Wg#@2S3;0*(s_+DeA_4mWUV$U+ zu!A^rM8-Z{2c>}HL4cAglq!PlKYHH9bDzi0xR-kbJSd+s?aUc^>m2SP7ZjQHTj0bg zSxei`Z4D94wrGV;p8z$U8Pa|0l-$%Vm8$n>riZNdeR|m;bWwt)QzQ%nY||8I1t3B1;(2TN-1`8iQX7murVUerVe(3@=Q0QfM$Jd$syg4KtAsi>I2(D260qTaX|WUtf^-(GkKuMvLVMy z&tVeAF4FLfH=r*;#PbL!03fM1z2b)TWH~Uu>ho*3mUVl)R&z2R#;!5fizcNdMydJB zy*7a(;$Z=f-OkVI!J->mUYSl2;=uxT5|Lk#5*~g=OH6-nfjDkBRqYT!qzTQGIqlCD zyD@B54nG%{c0+a8rr-J~B}=n=H-!neg` zXYr+?K|GT+f@=3k!$NCSe0XS{lV9SxSz|n&nZPNMqyV#GYHF#qOSbFV@7Lkzw{|;= zP07_=c%L9Zwiq6Y`mxh+895R(8RywVFdUDsdNnAJ6gVgD?0U9gZ$UO?_x>f82)z@l zXwdEpyLpj#6u1yf3`+ry#?DT*Z;BQo`-4HM8kf@|E)UH^(8tlPx#;FbB+J=X#NB3v z9Dt(D1?`B$cB!VBUEIm-E!5l2R1VLjbuPZ`s;c;kH6CpH8hPapYWEdNz9*+aOBU>_ z8}qhFi68qJtlW@uH&`{(VunXCNygb&4WLoI{k2$Az9uqs@|WM&vooF)(LW&Gy!w&lS6;#$?rdAit$fQYdpv2lOmZi zsE54pzl{fd2&;nsq0F_j!sot$11C~ed;uYc*zLKT0MR5T6SWuCbs>a0C6b(FjLO0`Hw zEMn;T0ceht#3?k>&m`iQ511&X_@X$ds$6F2!HSD;6WOb0kb`l`6hm$lHzHP77wj_1 zJHOuWMpU;=9&OQR80j>(W#)%wv2W8$IGn-e9r5UE9)eh{^H+KcD4{>#-R^8G@9Ap| z#TR{+Ib6mn3|lLtDQ!c)$EwBUpP*1@Yjv6RH0uCmY46`-rPZkLxI1g)sAWCxmp5u8 z+Sn;D48qq6a%<9{&AP5cDOEQjlQO_EH2^x(PSks*MtS?TLNU_B9x_*Tr0W&mdTDC^ zi~%J5eo=8QoV$;yKk9qrQF?4JdAd96&Wt9>fB;<(nB;hYccp**ogM2rYt=%9OsY{2 z9@sV=Kx63Ix~(88q~C{|W+hQ`b&;pD`*m~U>th17zUwqc<+!ITe7=a)@!(!mp;BBxYkDzV{ z_ov*FXDwWx6IJ@pbU|7lk)WPl4vmnh0~f|EIz0oD(nLfj8Tcee1y4a=1Z5ubsRE$M zQyi+-{77%p$-a8yaHs{EE%E*3gCb03h7ul3a&_DBw|MC7BUKZB>a>%1d;Uy+*{Sjt zB&w=EPpQ%{(4Z|{eBQ~hoy*rZ=L+9jg^tHW3P(V z>+XuC>>3&FfmfVZ6B7~PKa$x^(qn&h$z@#JC}>Sk%U^7uTip;6UL0Sf+$fgYh>nV( zpoW@~6mv-ONyY;IJxmM$OJSrI*%+99yWQ-hnjLu=sA&m`F}#Dx-F86h3CDzs#mz*?*#zc8WlJu z(OOXtBj7%P2?TW~L7|IsZ7V93{|6gmW6H_#qN(=mNq;7`Xink3SlF9x#6$*W zvmoj2mg?X;Dj%-j>`iwf7UC0G7PdZ|i>Y3PA<&0KH&Dbd4|(slTR1Rj3Vit>H)`#f zMW0|oha_>I1964if`mGLPXVt+-Z`k%Dj+Gb_7{$>8(O%ZX|;LowiWRVtVERdQ$XC@ z5alGqBcbM*LFAQXbZkAJfR>2aNZiZ0dZ1#GG~%UJAjKrSexMOZG&@gok}gye^0c?V z4DhHf7FOl>vQsK0#SuQ(7~{SdG+`DX$7-amhXsP(k+QKQ3D5Xr_%94I@R#Y@TR6l6 zf->$ui~Pcq^9!g@$zZvrR(U6>ou9K*AEnzq+b}8YA4R6uzJh@V6hCl)9GMJUv$1aZ zxP%ip1%YFeMhlW9Jra5_rd;Lt?*`gzVowHm+9&ytMx?P6`Sr@9>o^te zkIhsLd_izM)RJ{?{3&_!=E>nB?%W?4Zf$4WKkx2Uz|kKEV`rI}-0 zHio$(ut$K-WW%%EpMT-)hKpxb!17{1y@pX7mkSLKCF02JGY7$GYddLP<_IU$Uuh>@ zGmZav3=hv&ZS(FZ54vwN%ER-7OICVC=J-{K);Rn%HRJpR8_S5B=-3-_lsG9N#DjVvcX`s!bew`(yi| z0dQ8(tzujyTP@$eO}U%l2V-NpExfqO$~me0mw_}=7PwDwTy4sIf`DAxDT{4v;#<}A zm;T{?#9`QxzD%ppb@(d#vsly-uG|kdpMO>jG7L_N-5Zhe29gqn=NmuTbW3IgU0UM6ognxAkpHC^$%VjNbhKrJAzHsl)Zv2MFK`F1hYeSl$v&)*(?`*wL|JZU5 z^0-45KWV59vh(ZtufTsNgoMwaDy=`OrT@&apM9k^a0iy5f*tM}Puz9&D$S*G$QE$h z8Ch%5P#DIj61lHK zI6fSEpkd>rBe&5?)cmEW^{lnuYBL@DXUw3hKdIJJ)##3D(6lg$xR-s&FgLDzl-xa^ zrn<7Q4ve{EYqWvM{4g95HD*uMvAwBn6F#(J1NFeSH8}#KaXjnwPktG72$-BvVOk^^a98F4J-809!=}p63~83e`E&IrQ(Uh z!h|VdVvo2?BNv3SDc2Sxd{beZ;9J|Kf&^@9mD`e?c}V%>CGnVpD{SCXDO6^ZNm3D3&aTwHHU9WO3DQ`r-F=lH&iU?TUxNf-;iF80-sbI5NxZQ?Ex$D;-^#N* zJC7{i3pBCkl4&MCYYdA-Ap#%cs8tNIOp*kOO@GfzD0!lbGf&Nl)b@Y(#@obTabCGD z?6NMw?=gfYf>FWX&bTi-esi!8xIZu;RhNiHDq{8fcR{N8H%%qA-xZ0?-2a95!|T>x zIT0CF$X)ezxX+8@{D#N$9NwCp^yXW(I(ZyL!sBr?zRwGjBJM!b-tYviQlmz#}(2kOJM`Z>uz3~`XAwo0nHd}}NIMx2O6z~#qd zXRQL9PgkJo{X-8(y9q)4t*e94+i=OqnmLk!1Tn*D=24p5vhW8sXv|ZfeuJNp(%sNi z=IZJ`jh>tL8DZ6I8_TBX=g=rEJVS4r+}MipRp@`qos&o#W5~)0#t!ly4WFtk-4`C? ztl61>KEC+7s7^eJwY{p88|BKERC&8gVUu7>Hf<-lXf8SeN#yPe^xZ`|COy@%@>LGf z3!R$=);&uv*$o_ZRbsJFgwR^@nPJz+<$XU@A^lvym4WJlaE{?HrFoYQl__b?1CgDx z1YB;Y>1;_-q&ePdO22tPmz<$%w?(yD@!k{-uIK@h&g#ebLi*Q z;#iS9YAXRQv;a9k#=mczyNA|;yk~8Zxiy(GpWs=+?IW;yr97eR?Wn%QY0sHOS(F*P zXYbuQ;v{bt$LyJ z?2&?e3cKTb%bdyC;Qi_0PDb8vCS#+4uM3J}LBcLQV#!fwIie(994<>4$riZBTJ~uS z=j8*qZg}@?7)Yvgoi1LC3&;&X_4q1Xl~HeXADI-;>6eTyF3E;Qcr z*wE$XK`?9Kc0-Okh@c{8&v;w^sFcwHneq~p5ZwAGJ=g5D;^gr^|-D#;g z%e+DWe^+QcR7s+yu*6I-WpIekye4pt#_Te)hLB-dj}o?B>%C`N374Jq#eaM6)g_r> zj-$qlrKzUQE;$=PvHMLz#1yxpTQrS+%>?LmU4dymTa=7XhNz>(P9^`Mx#EIE+b^SJ zUd+wmABbz|dbJtA7#)D(Uh2bn@4xx66N>p3rHR9EZ}m+)sE%wmU+h*EEC2kQX#{a_ zWJQU`?eY)0LN2Q~+MzTdB7YWRD#9y`CZfprX}|R7Uj{yHQ0M7M{!uwCis!# zXjH~A4B4=sz4gOop$(Z^==Jfj`#bZ-y1%akm(pe7sdpuBl4+N$l$d-v78H;o-!`{X zsg|=z_?}nLyYKVa__hu#k#Fby3ZQ~t9ojIe-C7G`sr`Ml@TcW-DrIMXnOZgT-SPNZ zffa)wTBIyj~Tk0i{;Wu6V#Un_avedL_ITO}^xfVXGCvW8Fe=!(vo zLndmSYdq2lA!$%7={ec~khJlDUgyhV zcs)IA&s*XH7^{%DjX53Aqo{+Sd|;v_YZ_7`B_sCiDoV)qeUB|GUm#@0J;Y{H02;`R zzOHwZ!=+s@4+V!v{_6X0#;q<6nYi$ z+|%6~&BzjpZdHbY!0RgM<K{{8M(PW0SnP)m_{~WH@dd(G}emg?dV5tLaRFnPSSmV@W)k)yY{6MX4VGR&5Y*zV3c6VO?2pKDE9#r1ezaxxs}+nU41Ts~DDn;!GYMjl!!k)k`# zg|E0jB%yGmx8RB8GmQxh?L@ir2w&8Vz6OGtaiaH14P`pi+|v3}?GAr9k+gH@qj*I+ zY_0~2K}GsYB2}qhq*Fnw@xpdy)2sF#_8k0pri`csC!WB==M{^l2OVqYwyaInI#re0 z+7y~v)Y`ndTzeoQn*P`mg}%Wm)Wk0{TPrkJiB}q}jZqJ*Smin=Lb*ax0xvay+TY)h z^zc$Xpi@Dw<|zdGeI;@ml`oD2%PD{B7pwhf9JYJ|K`Up z+LchBmi|4W$rc9VMW@xp-uFazTQ!={^w_U&`F_m;s3|QSf9!Qa;PTW`hQHEMi7QK) zg9BUmOkA+c$Ah*0fUdsyweln^Y)WqTWO0o0nqnT8e&L5LZ5nZ|uV{x@U|kby+keC= z&2W82&zHLkc3~4)=?=`Fcuu2jN=6S8-n(cI_}(u#S|zsL>ufJ7^_zkwW!kuM4s-!y&!MPOXDSy6=ocg3{g zJTxOv0L1VXJjWK6D~i5kg>&4n;wFsRE#2k$xH|lVJ&IUX;WG=-#Oylal|w;AU`&h; zPIK4^?il{^2%jtiAnq52Yk%hgyyaf%>Xhuk5QM;_Qw#=3B7;`Osveoz-eLG8VAA(I z9f?gd_2kFQQHZ8_lC0V`SW=}yV14mh^IgpQ9Vb=y=6me#7R&_d?OZ({_$xe0{Xy@A z+qqyR{5)lxxO|U4XLV&>lguM(=cPO{1?&w z@|`#c%X%t5VFhaMWe*}Jl8qQpnSXd%`t9W9`Xp}D6_4}?j!nNRkm0u$@ws;loUvlr zqvblDV!}9&y>qYAOFy!qO&C9;7JQ7nauYT*C{Oe){xM3&@fR4UsJmhXYhxzoy|~2}SxXVyyVO%jg4q z^XCF`5)8ctp5Jm=c%P92ZtIQLfTdw*q%T=>T^v$2`)d^+Q+1oLx;;zNVzS=Ln4Pw zl4KS>`tAp9bpr)=qobgj{^pL)yR2jb*W@DZGZCp89?6&jI{s(!x@Xy50`8ozKumpn zwq{5TKnu5n6$}+A4M$eE%%gd&I9V*m&AV9SW zsG6DV&WX}Zf2+lb1IPt}quqt}2;m|{uh@2HO`Gzw5i)us(O(d_AJ2P`bRL2}fs%8x z5DrGHVrx}8eGvO16)V#4j6weX#AA>wzFv7Y*O-`a<`su&Jhw0TMXk&d z;zEoo&)8bMNtl1susnY8+StDcNppO}Od+*~;o>Kb1P`<|oUG<EtE4HMFLwBcN#Q!NLkCz>H$|ku~c&!bgD?F1-e1;jdwO< zX!Ib#&lmdB`%iEB3b^o%MQ9dVD^`o0iqRo#L2<0D4QY&B+rU_`s2M=~A1tm$kNywO z+By(5c%_PsE>xN0%+jk}P9nz=+=ft!EJ>3(d>17*G#Ti#ZYoErB}Cd^-MRzS%K}_% z#?#NFtjpw0dLbEF(l!xcXBX=XHZnQu479wtX+X-a6dnOlw}M|ZM!_IL)` z+_azlUa!+E;emEa2wDS7d?3a_K})#0tSAVcP>U?h+L)SRx4rfcOJOPm(Kh5m`Ii=` zf3i9IQFPDjXy+Aq`t0pj&InZK%FtF96B+?#J!TccN-GUWV~xC;1^YHQWD!Ny!%Ntp z6m?}r8!XnIO7;gmawXvL>+Ey2Yl#t9dKXxbiiR2r@ZJou7%M+<2F^~Z-AnP{wJ~1{ zbPQ$?<&O*SM6+<9VD8@euzB{*LAYwE@nl{0!xLYbK&w&4U1|I{s3<8E%O+cdRV`(P zD>1~zuVSCLER3W8;5v4J$lCNUFnIw5RKkfaNvBAOFE;w4n5a3}{QcDL6K5bYhZ3&O z#v*CZctjPxex{1W(N5)lx27ZXVpeW(V=YZK$7?>n? z@2Hf18tPa&BlF-}dV4;IzIp;Na@RcLBrW2x36{@XEF9S%Fp4pX?ZhXA34J(&5E%#m z{j-?SabbB-SWEwgN?(`IoKNV0-!w-0D%sL`VWGu>1Y&NofPg}Zn!6^ww68U}N5=TO zrV$edzYVS}dmdXVGI-{3vF0^$5MO#>f1ncRml(G6vGUJ4V7LIaHnY(mhcT~Q3N!HO zeBGZs`JD;d_Z#+Tq{u=#=_}JYpNX#jWzG5exCtgQPv$q?YXgW?w6#S!fjL#T`4u8R znV2?8;I}2nE{GobMvJ5E5-&1fAPY?Vki!16Q#sLM#4ZqAbZTT$*_5aUP zJ78>Yyc`8j3~^*H0=J;Zfyk0xqNu^^Tou$i>pn4SN4I>JG%_bE;A)Qlku}+#x;b)6 z>I0p-_BAnc@J9~NKoxHVpo^xPtbGllQWnB*$(sf)^pPg3q9d0&+n@BxN30|(1zHqG zh9T@$zvXUbSjz07!~&kuvH^yl(t9peLB(VZ>{^y7d$dU@!Du&mAk;VlP9M+M5D$nzB~RPw(m2a zyG-F%Rc@YlNT%{~6|>RHY|h!3^L72!x(8oBy0YU$U5)`FB5<{g@Gviolv@Z()d))t zBkBW_0iMlZ*-^*H+bu+Oc$BI8lj>2qavSr>nt+GSAEJ%eFEmchTvrYK_&7pwW2h*M zja%!c9OD!1+sXS0N8WHx59KLZW(zIQ!vwE#I5roR4cS*5o;bHPDIrf6e#5u!P4jBE zQ1kyWan0VqKK;4@m4Xy0=A{KV&oFI(vLT^hFl2n!k0$O!ZHZf)T>=cK3;=lY(M%`ALR6( zB)P~AxYRZ0+n5b4k%|ZX4HM!<^Y2nkIiJQknP@YUOSVVXupNq?uyH}O2$Y{4ryYx8@FlKjCy+Bp8iaVzmS0%j{H7`C^){d;RT%fACpo%jA6USA~+vj1w1sV6>2?39wXJRi9!1q z8^!x0K#s3SKN_mV9U^d>KR2lji4n2LabK4CGm*~aiCV+*`Z!(b{vS5ak+Je?iqJV0 z-bJFfApG3wjdu^4slM=Hh>GB|U5YNW@giRZRWFp)pRPQpjjA5oiH;{*) z0a@s6wL5ogfex13pVdpH1!;CRo8Er1K9_8wTWxbeyAlV@sSNUo7nOY%`re15Az-Vo72`5NA{*EPMLAu#MuxohTL8NfBt$WoQH!?anm&G zsNaYFP}2FtXx)*|x$1GV119yX-m<(6@?i;bx+W@V>3igZ9z4!pdSX9@=KZnF#1v5^ z2;&1wLv@JdmmT==za1Ehi;eYQ2WXKUCCT3MD)b6VU2`pN?chb&q?09-g2478Zo({g zr)^#Pl`Noz+CZr!mn7`z(bj@Hi;l>G3Eerhp6Wewi2(z#C{uJ7oywMgO+j#d$jp$rJ4gEB-~k z@$98u#B8gG)`L$C0ghTS=|nN~a)Aw~{)tJJCk2M-#@~YO?<#B(tGluiXakgW7cb%5+-dhxgApsKAz}up{{57epM#TaN>2m0Q23R?;8wMlP0i|f1U>{-^<{oN6F-x zNPIId;3%>)T9zt(|&Rzu#V)-cwBgWl57m#w_f0U5O}5 zTCF3*;rSzL@0vw(zNzntXxQMyPn67 z>*tYB+uK~2lfWL%omgwV@nG5Bh(tfXv7pgB41V-+gPNJ{O!5J7Uceg&P-!2d({~P6 z0-IZv|I#8X6&#Ebrw0{Ijgwfn6PocTk3Q9kii2s< zKo}vPs5qSTu3t4ovZxCZa#&6RBwfF7)IVGBIUa&_b2z^q%84p_XGY8I$!s`CAel(o zbvm?5TwBQF%@d;^jC?m52e#}_X@UG113^KBfG2r4%D63?fG}Ju!XdO*KWW|SnuNy0 zqRX`svspTi_ZHaIXJsS*Ke5Q1(7X0O#i-*b6*uG1Z!BLROl*;O3{%}!QXdNKmd>>9 zBvuFu)y_Ba`f{G`3ta(EKA0@i4&U%T?`5%86ebEVL#3RA5f{}f2p6+B$5PLwDP$$E zQuMMgHA`IZkwK2;$ZEAu5aH&x3;vXed`j<(2PdLI8E1_rp_LT3nbd}?5-XS zgJw8xhZCbMzHB~l3Z0JKEk0W*e9d6HutC?4i@uyI)f4fo_Sw>#i`M}Q9aJI$_sF*ArI#rhS<8x*4talti;-k z4 zoE#zoSDDfT1J`9ucG637&N&V>I9NJ6ZI*lt);p8uZ1B$badWxF=)vQ@EzYlNkl$oV zPOdL0q~krdt=w(k$Zq;j3Gb+yWt79A7Rvnd-nsxoC8rQ$e%Xg3n_TaPi<`qHDxPXX zU6u+Kp2OW*`kd&go4J~vYRnm4$|c_#|1QJvmLx^!%U<>s=;mrKe41RTw(=eho5IK` zP%7*lYx{n`PBGC%mWL=o?n&jaXQX^Iq2j+A$LZTtfgSk>#lPX8X^QP=(y+43YHneu-aZ?3Ma6_Xa+xb%9S zyjym&N?ZSfvN~Z)lPd`~xYH^^O8_u<;SHPMpS-cAxJGPIifuN}Sf`&<*YXCB?Hs3h)x#aVGy zXkNak0_98*|N1Z{Pf@~T-4d&IrR0|ZE3nqBry_O5nb1*qrZ}EYtbT{@HjKE#$Oxkq zZi94i|77#BlYd?O$dgSs@~N$b!H`FDOdoBpViw1l(6sa`Lap%v6LAr}X;&$rSJ?@> z)-sbkfgpK0>~48pTGlg!KuRM#H|~pn`m<*ZPoMQBflm~)-P2mDpM*kM^}x`>cq+Ci zu6;wf)?M#nq~OU?NuFDJO@!#LxZRom8;u6y$7!&$?ZO}p44Ee zWe3<9^q2V@k<<3%v@i0_DBV2!i^mw3DCadO5{-pz69^aA^Q?Tu(Bx_afz~dOqdGe; zYW^5#W|oD6oyY!yiW@H%d0Rwpi$JP&@NzkMkFxHl=@Hohk{Vq*PRD^FAKH{U8v&}y z_0+Q!KL_wVCa3%Mnj$a_`sR_(N`fKmPc)eAv+S72?ZZ^rjy&EPC?5in{p$Z`J)zre z3`pZ`?!yZlK-}u!06E&YH96p;wu3l8sq3+=Mi^ zY#H;P`}bt1axL%SvNwQtTNl1G>P<{hqL!)A-{q1*>6a)bB|3cX)JN7@%-E6_hY+NiJ*j_ zuonwYX%KrYK+ZWq%(MYSaoTWnyjXGs>2njBSW#hdUhoYwTmDP*5?#lf2()3uokCx- zz3HerE?#ABw-_)HR68}Me8|h3f^1JstQ_*P^_JO+R=pI}MywZRp0_SgMV7D;(q=_Y zk2kCD(!FHa$-tf7N`z|sQWZPAcVzu;s82R#nI5R!F?|TktBFKY{l^VHCc2MGjo2)| zuVZS4URFH<^xc|KV&2|VMBe!3tbf=KjC)UDfFH_MbT3u194nSv0c)$->Vwe@W!oNl z^|YOy$jc4HEPtou@9)n5^NZn1(nh5#4=rAK_H{&umdZF&2Sl5hgGasp{al4{N^wT> zJ}GPPhm++0Z85LV$I}Q{&sQlJJ;)Zy)SF%G3jnXlOQ!%UH&gh2ZTyvTkdbosP&5JF zTm5Qhr(G~%SxM*j4;1R|7X}pL$E;XQMY99MUwnpXR1<;O=V|g}Y98rP`vNg&LqBA; zldEGX{%}1~bASKmnb~jHR8=hV=E_U}>gc~2g*WM>xk){;TXf|0tJR>f)=H3Ea*Z}3 z#&{;31@Q**fav%>_P*KRnzh>pTBpE-n}w4{;+YzfVKJ;ZMJSW!j55f*r|Mlrm>U>+ z50bWa?gTm^|2IVq|j?) zZLdaNbaQM1=bvq|Hz2ARkIBy}q znV=ej_E#P;Cg^Fy68BGGnbx^lK^Yh^C_!hlW2vsRN9M(|&z+P$P+G7o;Liw*bI}-6 z&wBNrWjF6u#rg|0>h21T$LyeRw_Ip^{SVK1@=b}S3PXLZedUTcdpU-_r;dG0G|rF* zoa#oL$AJ^a**9|{o@nE!H_V!pYcbyh-fw&5fCu+NBHb#KU_W$4A3`Fv8>N02KQpa3 zNzi@*JU5Cz_G>?;HwxatY*!|b@%j0<&E2DukVzDPFsQN5kwu%WVeg7_)C_F05Iq)= z4l*nFkB7m}TEoW-n|gnSz?r(NFtFRe4WL_L7&Az++g)4>TD{CtwkOIuVG9 z*5Kg4819jFRFKn|5HKQJ30YkEZ>{a3s0D@9lA6HE!^O#soox6K)QV~ii}Kq@XjI90 z^;9k@2c5S}<6zoc(~-oIN_B0}NY?&WO-|Bc1_E}e_8@9zEXYD~ooBg7uLMtFM|x-8 zE`Wu&r5YxPmJA~AdLP<^t}zd;B-Az-t=qY3|0F(5TEtKpoPOXWD5s25rG;p^Y;A$z zPKZ9Ka*Ug9wBh4lEXAZ>xr#PbL7_MJ<$R70Wq!kTI5D0+f@7tYW4ts?*lT0Q78pi~ zqvbo3#X;a-iAHC`%dnlv&_Q$Dm)N2R5TJSAP2sjx#u;aIhYpXHE~wKSOC3E_&q?U5 z?rn_i#jGPheyxdcEazLNb$5N!%$RYNwuN+;%w~(wU%Fq)P?4BcYWZ zKpwFBB++&5wv(L~ zVTiY}FJ38~xpTr>ZcVm#&4!(n!Y*U{YL*o_r7Z$irXR%G7wpb>+E?o7JhWPz({C64 z^7KL%YLCg?fFPVq>dEBX# z$?|ewCD}H;jd~yvfGizFY*^*K2b&vk;|g(b2t(^Q%+Nd{j;GWNZI&(RE4W+Q6|;%z zv^BBT@l_L@Pk~H{)AVp|+!n9#m3EkHqc;-#%PuL0*sp!x!%L~tt1Y6Db{!}$DxY=% z2weXl^{LEi(=9Hb?LYnV^mt;wsH2>*I#?zcj7oP;?>mdMbSA=}I~yjZ+;6`UmWw4$ zcyhN~_?v(}w?Y(YD^yBnl$lh*VR0UQTzz^6B_FvIDQfN$R%tGsgU)06w0AaDPEw26o-%;=S6A z-0vEVutOTw$e%P5nrCyzA`ca9bfbP7lBVaRj05YbyOhRY4`Z7P7KoRDXSrmm*MmX4 zy4E)x&ko*}s*b)9ooc<8M#F(Jd<4v#fgyWQJh^1|sS>9wju!`e4+GRQIC(2l{Bb%P zP)TZwtc-BKh#?zh4*7MP1tRky-1UWhz&%w0j%MBgc4v^<)Mka3gZ?+IRun^&IGLh+ zl-~2Mji}&1Zk2`|Ev3>?sYohIfaY%oOM3qL3Tn!_cYBoGO>Tk4TwtLE0sHH z%Rb8yevDq9@Ug>E?cA|y6ysex@*;~1Z!*H2mcE1p7dqSq5Mn~)-JvW53R^Mf~}baq8tmKX6pQeVKsii{m=vFE~SxmRDuY95jy z+P5vTZiWl_Dxvc`hnEfQ(wnl)IUa-_6-GvN*^+G5Oxy;;&BPZte{%%9)ky%aY9(@K#+br*+DH=} zh1|D^o*LYBS+tU_6>Mv9)~4-R%cY+ulky@<}gP({y6Bj<_t^u;A{4aON@%YNM^l#^~^^qF8#ET&y~xKORRqDK=MJ z=22z${OzX5>iz@`lx>kn&HH!1V)Bv#olmRu{o1qG)|v!$8rb(5x+FX{{I|iFn+-4S zT#DA2_4n@nWG0_0+EHo_HWsL#vHC+D+AzH%(_ zfa26ruV_;EGwN1^iukX49be+CxCbpsR>02f5Ca-i9|l~>ad8;|e!m(e=hx65OT~6% z<|NE14qiJ_AYr%np|gfPNy&>Nrw|v^ikG{5i-eV6Ka_Gj-w3(szZ*+PMw&%ThMm)PKkKd1oWW6LMi3`1gR%U%>`$PX z+{AWGZzXS4LDb4z&7auQ@MHl%nM1zVy(qaa$PPFY=g|iXJN11(#gz>u@ROK7|&F zdCfvr{iRUI@%75;?xt$vjy$l_nFt?x{+>ce(Gyg4fcBgmMP44i5AzxIP;X`EidFic z5ePaSX|RP*+qMuGiYhM=V_o4WbL_gpPz|C5Vol{BOe2}82v)I1NT=JqdmP~mLE?M? z^-98=TShq`1Xd)Him8tbIW%uZe3G(SqO3XZ+@Qzdh9)+ST~O7tFdm*yfm|dT5YZJx zxyN+<&^u$#$Q$ZMZj}GQNI1-sP&l$>^8fz=783?VM`oy|*KkCe8A%GFY?_#VFz^?` zn+w>uu*z_3Cl!$4_9wDz3J>)Ub(5G&V>GBr!@UlLt-p_9Z*O(4j17=l&uhNXnh`qB zU6HfYU9XKS^G=aETK5%OMcxUjuOH%c^H)tmr4;+@{#G*}?~d~Kxv{H}pr6|7&4=vA z=T3)peIF53-USAz=e40~VD-1Pk}mTSiv$w#*D+0TxTpI@TrX%Gr_s<2(0}tGry$rL zwx}$HF&UQPTZP$qQm`;2rsMeo0HP=6>%i5P^gEJH)pW@ zSGf=;^SN^v{o%eO2mpZB;|3#tDX8Fisrz#<7(6^b^)G0>>?rj%Z%h) z;vJ8DbFYC{0a??sWZO)%PGXjPr_m7pmgPgfI?BN1OEe+x@K=*NMN_ zc*)C1Ia(+iF!{%PK7MSuEn8hMG5Um97&qp|{zKwLL+2JT-2p#c@OpfVF~v=kdcs-26vzJ%2*;kS$A-+iqR@MrPY zPxqMy#e03(^(!>HpGy9u7jvSh&;I*)O}*#K0X{OQeg|6TvU2b)HsCWvpwKkLxGj|m^>0?quasy~OMfH-vnq;s zGv~`SUeS${ct=MAwLNC@+}|GKi=VB_SVvOLFCA1b0j3Su0NMz6v8%IIJW&Xd$(55< zN)Eq1P@ExSk3*^{p%U_a9rWkM6!WJ6>{H-NUkq2k5V+S~)$-^ms8Y!svk-}Jz9!>i zwvp+(FXa1v`F$LQ`g|{rj_H~@RB%jDhqIOD>FOM7D}sBx%^b3F7W|F3UIr68O<%p)_1pc9%YW~+I*oPuhh&&7%!@3u&C0^w)&{0| z85YR_UxAWb^qlmru(Y}Z|Oir5XrNeNBoG-==4V?Pm$7k7oLjRxG&1r_A znS4ydj-AkZ2FaZ6H%<2CjOjk7c9D#Jge}88UKSef98hjG);92{7M7z%)jyZ*S5Q+b z+G9u8r)DQLH=CVdI*On_n?Wa1fj;3!k;LW9QZA<{iw{`+=qWrS5(Y`uC7Gct4=(Mr zradlAIyGRcKV!`iZZH~f)e9Pu92qt!e=2j2#hRk_l7I!C1ge3Mw^y&8sI3_qt)ht1 z^v}q@&6vmUJ-?o3j4tQeq6*GoD@Er#BUD6Fi@V<3HATh6b55QW?Ju<$fh#@>;W~2( zEp3X)4#;kiS#2F2J{1||Ij*n%SZZ_@p-O|N6NE0RC$L8DYbVMOJ@A78MS|v=FQ5#} zl%T&VilkyT8f4=KmWENkqB2Dts}fVm#ka2OX!VCb6{hg5@y!o@yJrZ1P2a@t44D>R z#w6)_j5*JR0@0ScFe)ImF;yTR*wvGXp?thNqw!j17R&KI$A;=>iX~e<3702k#%`zi z_?_xn+-en+bhO)AMcdA?*c?cm67R1`)u^=YT}k;vaUMveZ&iK*R}Rj-v3uXJ)g87Q zUu1d@?x5>9(@7Drv28(O!#aur_QLkiNwuDno3wdFz~2HpY(BckXp&I86hlAqZmb9D zC_DA?+i^urZZ-1Xa$Lj6O6B#V?|4oXv)3T3T~Oem$sU^Ih_W=`i(DWuuLpkU?a zvVrw3gp*W)DE=-Kpx2?a&S-5f%fmO{jiKPy0Xh4r{n!uo&L}$9sY~1#bV@Vj^!c^> zCT(kaMX@YF=@KzkWO@9Jm(~CGk<1I~sNvb`jKThS_Vqql<^TsfCB*J^UaO#VXJNWa z8%{(Ze=F)2%nmkoh18pAD~ibj)F_<-3sY26y-h7e!@!}LstO6`;1@k-QZXTc!eReH zptHFG-O?QJODV|>%ML-GROP)cPgD!arnxh2j@nW(0!g*R!&7q8Q)H1Y`A76-rcJ{=3O;Dc z9jUf+2`nQ!;?m_0`a4{*Kb2{u@xQ-faJM`^tutS@Y+hAC2ihi7W%Ihg1{+f^{ zUF3MA5dd7D22Y1qrjWkDG;pqAjqUZN)++4q2rU=BE<^8xHNxVCk&1}Koip{8OfVZ* z`k)f5_URO$l}=O$R=)H!4Ebwk-FW)Oti|e;uw}F8Mz7scQDH-c_*{2ZzkeTJh!eT< z;-8$RLY9%H>Hsd!&iuR-0PW+$@|%D4r!)E{#QU85|Fb*o{aWSdrw0_Dy?hLB^pCb$ zrL4=O=FKEx0YUESqORVfOlJo9Q*BtYnS{S%`!|O^ejEkd4JcD1b9gS;PR%0%3bqBloFvK>jzSr{@@_jbBhFamw*v5=tu9#98L&zTznOqJ zA70FMiboU7ocmiVvbHU>-+Md&-~CxrP@neIFP;#_cI70!j>!%i6XAzS)R}jc{2=5} zwu{oAq9;>X3;e&T)V8rHus)7efZx1v4U?0MGcdZNg&I7ax zZG2%8mE(I3S#N;7^gDppjmxBl)|upr(VPnY{>hps>8GiK!iUeK!aOfny|{&j73$gC zYdRbDJKd|F|94K)*6EXLL6)A&w)LK&*uIq|s?P>YFWMIe(l<70BefQs+FP4CNHq^br_t7M3o0~sh01|!>o;e4Zwy0Ii((#g9 zD!P(9;rwSAT|q#I_KS0iMFQn%n2q4d)CDhbVu6`TUb-E?hndJnNmF(2AbYt|q%T{r zC%Xx4LW<`baN6pFtFS37vUYgKT9%l2)1Gm2#vx(QZfLzCNy;8AQ6!zNbzDa1eBq6DdwEqAsLmytrR z^n^ebx(Tm&aDrO4NV!Tm3)0W@taQ=Q(2%3fGr-#?Te9ElEdwpRKk=>(Tp41e2^$YA|2zKE4roRbjw<66xEiI1|v7rTyndO zDS{Y_7W2M-+R1};7cFOe%ko08a(VQw@>#wotNo8kz&zDm|E<3DN!B2L(N|L<4c`W) z%Q@ic>;z6&XXcL%E+*}(d&^v=?qZ;~FHa0Ngao?J-0CZr82oO!I8EQ+c@<*i+kg`M zro>gZ1k`h{lsPVxr>t^3$~*CCc2`zG9>TWpRd1KTWR>gQfwkVHle_f~n_NwA;POvk zlgnk-ys<{ya&<@bJ_Jd-4FYVX(tG(_IN3Xf_w@^ZJRQ@ZtM(9~|1u#oBu&Y#aN>jn zTGIN>s<|US_BSARPBznefIyi(Lb>FDc;8MXyl->| z5db@vg4Y_a&^OvO-8AsTd!;LmYn05Uk^@R1S86kpdhCu&J1<_MUs*NdBw-(}nrT|% z%$mj6RP5biQ1-*<)Z$a4$$-hfTwjk`X3i{KmEIEY-q!0PrnKYQ4C#qyXk(WYR-1Xq z&{2kQ>P`K8YgLN05zTF;tyZyodv}MsXxq7cBDMLF-M%BXL^u|A7QTw;!WDZg63@xe zMgJxb`dK|NCz`l49f z^Dh^$bBB*ENFH+u9%3jf(as&gSBKl1}G+ze&K4<3t~{AcZs9oxN;;I^Ema1NV#5RaNLZK1?O{$jnD{=sBv;SewH56EZE%~cm zj+BF{)zKQEyL=kq1dKk|FK6DE1GZ2ByDtp6#8zZ+P55FlDX}Q3-tcoIk_#V{1;9x` zQ4wb_>MoVDKS4 zTkA&03svI}=#u1D3EsKLbF3IS@g_!&DUP~`7*LtW;t_=1EW3j7x{+?7V;KTbShMNk zmm?k`y=(h4X=FfAmZ8Vb{pQeIstTPqyFw#8opzpxS&Z212xK}yL?^?u`t zx;WUy$w+VdKat*t$Ba^VIebE5>5Sb4Y53wu%Wxh0YBP)o69#v4S3N`~6`P8^+Qx{s zoW8PtEso2u8anx!wV92ZidGEof5${9*% zTe|%q(Q%V=j=r5slp2iA>1;M=V zl`}2}KJ)e82kqngL-C2_2rXFT@4MpM9|ywn>Jl#`mYoKQ9N*=SrJ^Xde?a(18tZFy zxm)P*xX3i((jSwty$xpxF=*KHVYek@dT5zoyj6&oA}n(~W*SF#Aoz~0z%PXA5D0#Z zPght08w5K4gAW3%#8VOIf`G$IjiVa{ietE6dc(m8g`H@cofdPtVh5Xa$cF($Rq1vr z2}=jEOs^-U=C&tTW{WdXN^WIB!S}BKc8M+>jNf*HTN*sL(Y42es8xXEa=Gyz1%cx< zP;i;Wl_K0u1zPC7DAd{=G^)Y}V63DB7zUE%nX;vJQdEBdchy`@0fi=sYi3?hW^!-R zp7-qYfmBd46%o;+g~)xvd`N#B%yUVK`4hj^>jXK`EF>5%s)GSDa6>#VHTx7K;RUvw z_y?!vz7>rW87gt@3MAw-8x+i37WwvZED+;JLA?UgQ4YO7*NE<4M!=0+2?G)okWFwM|)NC41X8BEA34#n34b^WU5u zq23fTbb%0qB;d`@zG*d6>@iiTZgvM_c}*Rposf?UfNmts^DK`aaX_@H5^^;{PF?cO z!FB{|mbjNE{O}hV(>U{?c}Dko-*--kybgLwj%8B*OV($rh)_t=KfD_WF`bC+h1<8g!rB> zLLHO(x;>XVyqp)^JkZU(5VCefOvilbrI`cZ`y3f-TX!yZDV2e}emHJEL43 zdiqFtoLvvQHp~(L#^p5h`cMA{A7Y-*GE1(G4$RI+G4a{@Rej`nr{SsMc!HN!xE?8@ zymy>Diu4R;_zh*A#u1Q)&w5Ijh#5e5jJHOVAql{fmHHcmxU~a5P~Ns?pV&9rb*m_! z98wGGCUQw!h9VX#w>Q@}F;^aEvZrwkHF1!8V5f8O_&X4=A&)FSPMZ}XCbY3I+?3oo zp|K&XkX-$gfG|!&0NsIS8_QsXbaPh;b0Y?|S_@B)`nu@j1l{#0rd>SP(lvpFlRV2b z884FI*4xc`?W@9D^l*+h#kw@4)~4X3^VO$wfI*)O)0WyiNpLa>uhw_8K@zp#3z=o2 zPs+f7wt&n~SM#0H1(jE_bj^lbH_6Mn7~OeJ2v6a&V0Oy&dp-*ED}%35O|zFu;S+Xcl7_I?~Gfg}U2vcMSt) zJ~KG|Nf~N51`gyU@`ibW01&M07(BUTbN4z+8nG+Prw$%uF-}fXQfw~)Z9TWCaDsin z9=aWEU%B$+JOq;8N|3q=VE7-zNnP6F5J(t4++%cQ0$jJ`zPf6f{MZsqoiEr>Fj$?I>BzruC*?nN+u}*q+<#hDA zbT6FxsY|mfNV`w^!#~1rykO~fRsM;!V6G3@aFde{h#=%{(v15>@NuABaqa51Jn^n= z5Jj6J^-yC?5?W73^7ng)_T=jF|7h&EmJ!=*AxJTO`VFe)0~2gUS8D3~?CF(#mdnRi zMId$@9*1Iz2|nUQFf7l(!tyw8;YYIa?T=7xrN{vy8*HMGDR>PVVz%w4`~Wu&S1_B7 zED71#lu=&eTT)*fteDO2Mk$@a;#x9J_7D4ZAMVtxq1skd@WDW{q%LepNA@{OCZa?h zqa?KTn#Y@;|6FYaIq{xX7J3EZXx`TgSB0X(jv_{D^19rJJ&xuzs)OAx)Q%v8w0ObW zHT9`i>h}3#l-+mTe}hd_WW82oCwirX+%9&1?(I|9t_)D8xWAq|hOUavlSaS_pR*|) z2(z={9N#V?%th~gJ{q@7M+w|S2zlsngDIiv$jILvu-;(Nmm~BoDHe-@ z+>2vKmTfS@z*Z+v-{3y!L=-c6qZ7}BHC^m)!xBr44UMlGkbk5+(2&_n|2igI;66ri3l%F-x&m2y2 zWw;9|jw+jZlHBWi3!*FIrS;jiJ;F&hc~$6Hb_`bII0GJ6oP^_V0%+`_Ur|xOc{!!h zUbG_IP#Vx0#b|fR@6+$>OKv3ztSqLD){F)*idV)V1fs$ywLS<={NPm;E{Gk085(R%UbcBzj_f5TAcjNgVpz4{2dd!-8^N1$^Yo&j2=+s z`t*4+jil)aGCYekZt@c^wzaxERIU2|T$@K3z{}aJIifwhrre61cEOOYibwsMq$gL8 zkGyQDfVDxxs-%LHvh8U=*Gw~S{n1roP)LkVQt&wG}8KFii{&1IrS9pyQVdN#4 z>EH6YpI2CWMx&hf+szL<(~~{xIO_>`2d1>+LcM?R>)7Wss(;){gn^7(P}o7Uy6|_X z{JYDZB>`JPs?iPgv)*#yEj%xwYi1KTJ1PUuLp?@hb?AxPQ2XhAU_-t{;DLOPcxWhM zC<_wh`Aq8|-;kZj-wLMdr?6`i(Rhaq9*KyiJw)=E`E4KD=phJXjkjiIL;D%OmNwEE z0na zsR7CM97`y8d583N9i^3s_SRwVOru;DaPya)CCKssIG`b9#sM_?UQ4!$hA)3}?d z{c3HWwf}|H0j3X)I&Rb0< z=I0C3I>+ebJkzP9LYZRn$;~=JZs^{fWx0nRQ=DBluSu$4hcuJ9f<~l>dlFeg1jR zjlSP-;Mj0UcYJ;TK0DXfRP3Bqi-#A=dsLSoLgUSc4tR^+qi98%$4v|qSTqRSt9%)S*F_dlSpiSoQdtf!Zz@a)QtJjZ z%~2et&0HwRcrEp`_er!X+jCBKp2vHQyMEI_fNRFA=rQxAD+rGBX51uv&d(*~-)i$* zH?}>p^K^POv$XZr;8SSuRGF#Kbi#-*1G9!3q01zSskUBZ%Trn=14)0~>{<*7Ma1*e z1HqF8MGh~N`koGATWQ1|9C*Xi@l^40UTo0}r$yf0Ul;uS9IOvWU9_eb2fgXnbM^^z zo-NZ4%(54&C=&a8^4!ZHnD$2ZmJ;X0P*wi31skyFlq5XiGMB=%Vt4YJn)ngy;v8 z<-GLV9xBLUqJ;)8#I6pk*-H4lMR4H?jVn=O8ert z4h+5ECdqca+g$l?8WVA1G^{OEic6|~TI+Ok#q(43aI3kRcNN#%=ACdbcvlra2r zg_pPNVK91_@Rtkfj8;LOp&nTJROZgN?Yqkcs*u!f!W*>{A;c^{ox_sO?wQTNM| zLx%AuBA+95R^&+TB%&SNRh&tq9d+J@w2X20><6c}v~juQl>` zF(8$j;(p-w+yQ2n5Fj^QeP#q-WSFR+oPvf?jWG!wJJEaTaEFUxX(9=wOp*xNjy zXO3E&Wr-Q-VKs!5u-%F_k!!H*hqQ{+)3A!#n-Or|E;T)1Ej8d*7T z=R~^6^>xKg|4>#-z_R^6zMHWQ<^N&ip{opZ68~|Dv2<$C;}^J}1rVymv=Yvv&IN1e z;pQJokSv*9PgA7_3Isg-dJ-_}6sz2X9wkFR{gcr>U8OS{_senZfn&QiEy21pcRi{B zkfSwFFa)zU?L0nGVHN`Y=&n=fMi-&cK64f^iXRG($Qk|`CWq>-biV24t6ZZ?sn067 z6R-j!dyoU4g$hDryZA=~mlW+(uxq1l-~0!F)pmMdYOgeg>`ShY+joMXw6+pcIDSy@ zeNUabfg2r22}C-$R9o)r2-M^~6LQ>q$DeIx!9^N}`8p>n6ZM66oKmu|1wBm3V^XkD zDJbQ0D{zllcCmI27iOMZys5Z01xai(f%)d*V)NCCyCz|&-1_DKx z^;Z<_e}?jqP^X|GWzzWieg*JK*+?kGW^{94GRZtyq9~pi+H)`8sXZG*;ppqTH44Dk zwgTM;zuhQ8r4(L`^YadVPBHQWtI0wZ)Ov>u0;;l+C*++AuN|_wC~$Y^`wl&?>-%cJ z^H|pvu#}q=_Fbpbxd5cP_r=7kLcQQY-f+gj|El+RCzFXeCsd}1HhH6rE*{nfLUG6i zSUkgF>yPe@Tn5qO1&Q#nN4X2LSa0YWlL>r@M(kBwS15$42L!|kw%vhittDv|I|ZjU zQ%^*GxMWwzH=#!h_iAlmKe#{?k6C-n$~aM){MSeZ&1(zCdygpv009#Qo$eJ?$Pq4cd=MO?R)G z2d~5Ln6&4ov1<174w5+RL`js%+B=%4P-1TcOF!omQFE@UTGLV4B1SGuiGub%gK^O^%bMv9;?=vp zn1&(SUD7b$cfMEDgvB0oBId9zi`z!*GKv~ZwMl4IccH!DXKF~`yk!F5W_%4Db4I_a zaf9-b%bWmMm`$e9N{6wsoS$Kci{Gt~mZ2QpHiO!D!wRi_wC(_o7XTqdEafnsA7rxw z5P1>IYZOc5L54C4oUM(YT`&ubx#g;{i(*!mDU#DqUY)uWUXARzrfF(THIp!JF1*HN zNcD&H#o9*ldvV$*l!AoF?6}nnMwU(02r1L@B2zeYiXuPw)e}xQ4lZgdPBOHL16&T$ zU*nFXzL^;qa7(?SUg}z8ET2buC=T5EoaUnzXE;+pF(^EUuq``y3!Md$Z&YZ&lYBH3 zf&amZb|?@aRS|I1pRG{3cyc1U27XJsxph?d^Vx4Obo_zm8{xVarurR&#P)gRxoK3-R-l`lo`2TDoC}fRx0!w6oCuNT0K4cB-%8_4TV`P$_eVrY?eGSY3p)05BdLM zH$q_hZ|A2c(`BMDi+n0o?8<~$tPLO>IuV80#UgPc&{47OV@4LWSu9C^Gzr7`*5ew>(P7QhV4sHA>>WsR{-F znC?LGIOZ~D$$>$mt+O7#Dw10jm}q06-(Sk{x~^iC3RVs+KP3 zOe9I0Pt$i|lHXS_7c}a1ikZ1$l>i{Hzq6Dw;)ZQ7F-McGCqH?d_P5coK8MbfB++8! zcl!)F1w-6K2v>Ew7}RWw{}nhFScB41<(Q%*r3G(6Ce2!S5G&2C-v=fC?efM7GZWUO zn_|s?6_5S71rlPMajeJ-1nNq7cZv>r`I0ZQ|Hg3dD;*4zi(+tqfom+7yC5gTEx=`De!!xAZmd_kE zo3c1HMJdlY8sA!U?kAAPLfs0BlU|3-g@~b*!K+7}ecyKmHk(o+OBkm1Uoi3(5%ib$ zyOAGzDXS<atk)mRD1T;@k<$kQyM1uhjZD%8U45RJ zWh0wU@GR_8cW@FJSUgwRQS_n3%-=NPqx2VX3a%4CLb~h5c!wf<2O|(nJ~RUHBMnM^ zg_jDwC`WYjP;^wW=5L6hNye#cdx6b|dc9yv7h}=$>iKxSmWm;NcH77kKk?Eb;c z*Mv&PWR39O;uF*mceVTX?1-W}j&RR9T->|2Qs93@EHE?9=*(hkwkwyhXRjGc#k5ed zzw3ZD6F(_?yHXjjHJSibU4{q1&V?l1I4tktK)QQ$Cmzy)uHPe$*!1DGo60IjIgoc2 zBQ+6RoHc5n6w=Y??JsRlP;|6FRS<=M<+ijN%l{eTC)qA?#vK^b%$41KuNtA=Vy=zE zi$g18N{OT3eL@tYvg(P(wmVXMW&u-n6B~<`9u87KVvr^03)1-G=Zz&qxRsmr8S@?D zT+h5gM=RS;z3sEl$o6||pfTCiw-zXzM8Ie01m`*d)P-yC$~R2DE(DHa5s`Fz@arH; z(dv@n>SH)wOVryG$B?^v2292ZkV{_|r-?JAfvtFV2c^xPgFDz)xa^+iq<}{PUcfnR zM;sI!4bmxx@U8*K1)OP@&s@%6SReniqRTO=Hp?byfC+ACWt~t?>Sl7cMLBtH!QIQ3 zWUUK><+<>@J|GI{lxFxx39Wn`J9m9}u(c%AUrU&n$YyLP(d~Gc-8T-tb5UW2fXmDt zZfRT7DwNGtrvgjX>G$C@>H#$r;FWb|23W~q#SL|@vySq*Kkr`4Cag)`qTLVRPr^@ zhrt8ib5nGD9~u*=b^69*6=09Dwuv%nbdJ3}8{3I}4VI*ner@jb$TbtfxtD?4+rH1v zFPw{uJ&WT{Yk`>%^LMx9hAt4@<#jQbR?Vh4c~Q@?e<{#lHe%3)Xxit|}!@ta_v1cxFRq$ZW$_5#wlp(}Gc4?A|l8?;%;%3R^%qF@~F z_?67F4Kvlk0kp%!@$XNh8{GRX4HIHuM_}Bn9YzI+{*4_ta$D{v21z`b)-@%bVc-9< z1tNVb2q%;rz>$_N0TTo0vL&cadI__CK8AVry!=CR)NzcTMFbx^>&;V9XeQ>T=$BIO zy0gJ(rn-P96%%B0E!}5NCR;-;PUzfWckOJ0U191YBT<{7{+cn{GNnKmxX!cbST2ee z{NY(`Ae%EJEDQ4-CK{wr+Szvas&Su(xCdBS0{}}BF(%BNm(7-(tmy-J?5S*pRm;+! zPb|0T-gjp))7E-zNdd8)?KdfYp+Nc6)SX5<6zA3)p(uAx4)z<@MC88W4edcBcX8-N ztB^PHvj8dO<+0`)N!PHV!o=QiR>xu%dD7j4v%k9ws?3ip0B$qn3LM6EpNW5D^&_Nu z8GPvZTF^L{q8m9i<`^ucceV{p8pt4UvSJYM&(lF^Dr#CxMn`+DV=mM(IP&V6$#+8S z)`(`_Ucwjglj0V>YCuT#>e&gM3BvIvV#%Fh5K?R7g_ zTEV)*w6SjI?az#+*VhIN1FC_jYm6FUo_#kI+X-X3sPbmlX~?$y)m-fN*} z*$eQKhG^w2>ODY|Fxn0U6#333Z~W8DGvt0PqkgnMNl-FAkHD6g+M6(!uw}p-B(vK) zR0uAJc)!8`daC}ZViF+`M@Z6%P+MApxa>FyZZU$;tCGa7)h=F7kVeunCDjjw9=Q&1Y&{$e&fdah zMZsYpogSTy5FT75Ymm|h4`)%Ups?+a7SnK z6bL!8+e6ZG7UB98UFM}2|Lw9D%8WD&BI)XC?D@{$z`>aav3S|sQ=GkGBl{SyDW$<| z;b^&T!V=>(MXRxs?|JIRM3(ZL#@{Cn35A*W`|+{d@>-#Xm)%^MtCg~^q4PpLcn2Ai zV#qXvDGPac4=JFgM-oXA8zHbBUOxa~czs4JSOgH0$Pxa?e)Z(l-S_m=G6I!X+-)?w zR666Zp2`?L8vHQA?of90NOKqK=|dm+(S15xyo6i3AQE85jU>A1Yuj7VYTeKE!-Tq> zll}dnw|O+HEFE2C4jkmXd{?i8B)s?tdCjkXlwL;X4^40GZv-O8Ed4sb*-8{6@~a+d zJ6D-v5~RDNsilaabP!M0{nm~FJ*S77L3Ob{Egm;83~$%5pvKK zBbn(Q2H;Nz-i3}|r*-(?Fd!@=T4C{vi;@7{8ynOV?_YMtvu3J2a*st(M5!czo`JPs zM%4RHIwF_X2*kQH_+^?oiS6eJQ1cb)`mO_NEbk)@y!y|uU;r|a#FIH?N&TozNb+2@ zdzqG27Sk*FpOFpF@zav6Ss=e7^Ye`BQLkQ1SV7YV;xS`#h~%wrbn-UTw}rFNNXQsW zcKEsYO{DwBP759hNw7+`&Lq}Jk`K}+=nvrinZHyLjGl`#6ndxg*`6P}+2)`6&V8{y ze*~wTjV|zc4p(ARV!Ze~rQ7Yr5Q8%SW-s(v|H6;!Xqo~`-?+;xx9V#00da7S7R=)p z&Kr#=!f}_S9(~kMbG%s*nShn!)MDTtapgAIGjOcOIF#ngmh3vh4!!*mWzU3z5y-G8 z*sZOgg|{FlcZD<3(XC#YfYsJtox{xG09mUUGt*i1&g52tVo&VP#y%kRb<0K0{R(RT zYbvF#y#`P-e|(B3$L0dSO4oKip0Gp!OtcvRz~!a3Ezl}yle9X9yl;R%mjm~B86}KU zB&N!nNWnx==eq3X;b(2WUWJRUBp&8_@`n9Ik260(ajyE{mjaPzYhzU698n(p23w@c zE1a*%Xc^%SaD5blDu?1ICf#Ej!|ruGy$76Dqc6ezjp@pTUc>Z?-P4Cm70VQP!_c9J zL-mndmonr64)dMM?oi+1qFX3B?1o-@?l|nqc@E4a;$q87j;H=2;(DF^o?I+C1av=n zuP#(Ye?o2-+S`3v@d`<`Kd_b5uHHnGkVn6&DVAgKEj5|`*bAR_ztP=M1kGO^&)u=ug=spBzd;0_K;jt2e=vu`?O~*p? zn6@N(TrzTHoIy`N@^`Nm~u{P)miF#vDBNO)FJxgNEZ(q8gZ*CnAd5QF86#|S<2_VH_ zkjEWXRPy4^Jwsa~3>zTjBRZ|z2YnhJXcol=yI%sikudW>z;+t?zeF9^glZ{;ZAd{7 z>9zSgs zYNy&Ds{e!r+Diq+(ug1-IQ=6CuVM&rS09jxq0lsRq*iek4)7ho@5de<{5qo6v5i@i zPE6txOU+`XE!1AmGj1LyJPiM)4@-`*QCVW}t2IStETlV>aTCH(S27M7lZnP#`qe)-@g z_-Txw&S40#4nkGw!*|%Tw0xgs@u_9vP<(DyS*J*rOcXrqS#Wrzkq8Uj#lkmdVkSIZgV7;pM(qaHA(Zul}Xi6%%zPEI8_V?}xxP9c%NY z;MIHYDI!&)i@dQVvaRg0T4DaaA&g_be21J^o4+V!x`50Bo6!t7yjjSA>i@9f;>D3O z-v|i||G+r-&Og`nO`|Z`uJT0?9Euh2j>}uvyvjB;mb~T&5_A(`d93cDg|tW!Krf$_ z+_Z75^&)?R2C)^TcX6-#gHU<#`A`oz{$c+9@Uu%r;h5y|I;hHL#?YL$W{DnY-~@vXzL zKFPUs84{2q$~Ppw_dE|ON@b#OY-OXlDC))9pRj?x0Fr(%?`*?jQH{k)Sn@p z`d*522rlEgrcb)%@lYqJ=eK)G-Ic4|*`(>mwn!ezBen8b_ zXfB^b)xD+t7@YVhkk2lcUm{Yd8$zbg)9Od{0Q;~VgB)*>EMjYWH=+{kM|TDYV1Q|5 z@>j*XD(n}l(5-@OD%nKck58`ZM$(_uBkm=WAm+Ep3Dsnb0w_;r(yu#?cV&1&uaU!! z=HXg;+qX1zeMUJ+9`6H{CG>d-^2c6bk`FoyDw0?@bEQ2l*7}fT-ov?+XjhI;s=?T$irzZW~^TzVyIp<4%TzHgMWcF`u7&Oj_ zfQxS;odj3e@;-$EGScDlP1(Rs;zCGbD0$+{1PRk5RyZHdZzPCU67DUv%=EAe(V3FUS1HfWm-}dXb~$*`XUcq21U|{xiat|j{ZiCZ zLawuT5SWk(4$W@fI^=%OoD*Ldwy;~VH0~lTQCt|nQ_~rjQlXa&7QwnF4JWL1_1G+xXM#-|Upw(&k-?wkds zvtToJt7zCs{0<(glBEhK&1r_VUq;y*r@d&`Mg~{85w+Y~|MmjbzVLa9wNzWW(R$Jz8p<+$5G55qPnT z9QBG>jjAtAyAFl#4G%fnI3y*n;$g;EWZe_E(Q-iMx?hmH%d24Zn6A}b8-H>%$Q&;5 z92o=7K|Qhx^IH#vmSTFNlA;G$>}%;_16Z3QIayGr6#~FiN;T${gLn%>Gj{P2ShveosHXGH_aubxbJHuEd56UDg~+kP?Uw36G4 z%#SBCicc=15H5@+P<3Z#`d{IQZW8sB6V*!$w-5Yc`Y?5tN9~Q3#9!XGQ*6?(f(5Bb z(yXYRLWmKaQ4oxrQqJyKW+DwG8MMoCEe_}TsbnlOYVb^qz995#lqaM^y?A=!NcBKQ z`bYTDy!-T{(>8qa{&?2(N4*gpr{*JUSEmfCKrnBANwtm?y+O7kU{ci!qbHANqCaxv zc1UH~iwfWs)p$$!TkFQLw^?mwk@1o7iQHXUoA32dnogRpQGKG3`XnYUObEoKn~@IE zoLcLp$iB<%*ToW!=7fwr>mII`Eg|O6o30wOe#tUpD$CyfQPVS?saEwFa|496f7~*UlcczXLMZ3WY_PQJAHV-$v$Kr% zw3}fyQ+CHBk0izi=*=|9qoUlkjfMF*xlzvRc*VY)X4htx2^q(86ti~@jdO2K%ZRD6 zii#VgGV5h%;f{DZ(;TO2n00gzvp&o+=0YPc8@7B-(REHS&tKeN;#bNAnIT*LJZg(D zxKOz4rTezrzZ`MMbFYY%Md{n*hddpZfv+Ny#;Fb4SKcD z!fQ9>{gnahnXwe6D87(0(_p0Bzq?ZG#xlb<@2jtKN9%x>gUpUXVezGA&oYU1%9MZ2RsW!7-D`1^--Gj`Tb5#3Sj zLj|Bbvd+(~>gOu4+j4@HsU3IvL*YKT%H9Va=_7DWf@_WZrw&$(tNmIzzIFo_&to>V zC6&$esr&6n5Xod8u5BW8hHxz{+yE8(EbN{mz4IqlPh!70)zJAc)Gc#9ApR8 zh4*j=PcJr;74fU2vw!9CDf$z1_OOHJtKAN~x7b-1jvr?mdW&OKI*?1JgEcQ_ zO2!6O!aiI+&;3@iHec?~3d|BgU95okoX=_wXQPd>eJBktia;sJx=p1*gWpb?&`P;= zY{s!V{MP&o`>a*l#w=#*OlW7@P5Bunw_jN_GdMsi5ZLW5BNnyNbkgFg@Ta)H+B1=- z%W(;|epmxDi^O5YBN>ONF}D3*ZOP%8xUKzLmvs`(_}LPdM&p^mJ_(!MS?9HmvPb|q zo`;F6WL8m^hy(PwU*H-s;|wfBSB}eaUosOvj{HI1xfslFH+_62dS~s7LkQ>+^x-0> z4Z~Nn_!Wc@O}6o>;Yl%hEx*3Zb4QzNZYQ>E2B8>~mj86m|z=@GmGR!s5yWa>TK(RV@au#P**(BR`6EwIm_rYleze$ z?M#j-nEUi}oB-jIM#9jOFK}R}R<~qVX1)fB%w^3s5-`OKT`UY!agq*0`rT$dE9sh; zu>o4;@Dc$*#`-uQ)rTtP4q(UUF`BB#C2;p*Y{5F|Y=dX}l>bOHm~O{iF5tjyTD=Aw z>!Uj^$cPJ+R8Gg=SF?%4-@mrFqiS(~^M0jjCfM#a%{&^p*@qNgUjYrY*Zj$t&|{Qa zokd18HDSZ3wiiS^ien)iYwzR$QYo)=1f--=(k0*3%l$ z_N(ZRynX+!pMNg|GNl)g=}A1E;TJ7JcOlnqRezSgwcq!#GJ3A;FA#*r;}2!>_bn34 znmDzJ9WJ&?0R!wCF+!T8P6&&WB9%qV&rd54`vlkIvO58Jq4|Jp?RUXYV^}JGsIo4$11&#aPAgSBZzNncl9G3 zaVU*6_As-ch}-XtBM`+?mWhY4Od=|+`Zu_$(JyQVl`56SvFr5yUIRcNk0?^^5#DP-xd4eUw z#0E+PRLy^b%{uagZwULN70S`e@~#SvgisXhT=2<%GK&!$gua)h`@G+GYwPvTN7bpy zb?h|~Md=@Qubjsso}Q>5q8eQ#Nob=C>-bV|4uXuxUfc(=6wuT$HxJ#@6{cK(hStT# z%h*pkD7@$oUU`T<#0I)_e1T;f>|`n;`QBknqjsTJw#)$rQ=sM7=U3^R&Q#FGK9Aev5Cz}{C&e=OOQj+{Rx z#fi#Ezn@z#6y?);K0TKg*4T<1>5Z_MBRq^e8XL4CE5?K)g9k}zkul(*`EBqMDWeX>NybqGd59Zw<20`z zPO2&eAJH*^CT$R?+bk*LUte012Lt5R(`M+b$A&p#3*_cuMWAoId-u>LUEL1yA)!r3 zcd~*^wVYD1+SPrau8p_j-g!(s?JxAWn5FNU^5+Rjn2IUSa_ph4xOoc>_pqrL z*ttdgXx0AJwyU3S#drYkH}ln|I>M5WUGJ-#lYVKu{wggpKQ;Mf`ai-wwiQ&{ZB^}C zSDD8d#8W5|mgm_$!I}U_-=6KMzmC7{WVunOd`14gp1mDdNAJ_?HMkchz_J|3JjH(N z!V=`u+-GW@D@%9#pg~JCF9?!k@%7e~rt~CC&5sy4k*rXpZj#{dJsx?lC*FMbX@3gy zt}F2OJSfVVLI8{txNW(3;+yYkY4rYboapa}z=_E| zWgirkIL~0PXF+8E?y~DzrgEnVbSZ{-h0{72FB2oGZXRVd?{oQaWFs+i=fah{Wn)sd z0UY@i6{}k%#?;?0t#{`@rwdv)sPwFc_J+n_T;XSPX6SmTU>WQQ77Tft?PLQTY=G?z zn6r8JB}oScp=-FO*WZgCHRsamCJp?^Smm5gkg;v?Nl%m9Lg6WtkHOCsCxG|z*D(R- z!dljKa+0!L)OhnFO4AYqUwf7cAluK@z z1Ng*Y7~n51xzvUC{zKaq!Sp-jMKwxv#IZ(JoSN!)ajxw`EvK_tWa!fgPc->}J`s8? zov7dK?!-vY5W^v=mUCV^{kIYHDTNzHD7mGBH!S}oG!uOx78 z=@KgyEh6qqOu$t%LWu>d}cGL4LsEYP+BuKIgabQHp=f>Q&EC#EsjlQhg zNrV8U%@Bqrz_HUn*a=3xU*^Ukhsfp*k``pk+7pktqVr4!Z2z(4X&qY-D%|HYM4;bf zcv(uRV#L3foupstRn#S5c)vY!hqV|GUahCxQH%p~|I7CGee3+reA=-uR4lxqmZHIQ z0>JL6Bt5Yh_W>NjQXHCzV>GeEC6*b!PvVMZbnJfU2@G!4oG*??a}zZ1l$pD{h+H|q zFsy|*w}A}$yfWQH1ckx{TT3&n_ENAFJ+;c}SyL(-otLPQHMi(C)gJR&^Ou_Pzs08H zxB4yWmF5npE|`m45y%!k&f?AGNay%}S-1q6t9VOn7{^Y_!jzO_IU6p_tB}t;P{4iA zKwsIrWk_5ECQT!wTkfK`o20lbt`QgR44M(Ii|#CS5aKQH0QEo>=6 zNdEa_L|?n|(qet{$f1c5OXo|FAR(4hKs#!8!sDs7pL?E5v4#fw)mZ356A)TfQfG$``Yq}H}72^c|MVF(?_?RN88K2qyF@wdl`c! zKLeBN7HwS|qO!a0=>H6LQt3d9a`tBf53lRiKSnAN@%I1J?m;))Lgm+=A;sL?eYSWL ztj4ojZD*qF&!`>>So`J8h2*p)i7lLYXrHGImuo~8#9WsZ;rXmsd4jBv6lDHQ`R@J< z4Yvf&5Q+a)2+Jk}QHfV)fm`ZHIF~v+XXl1+GLm8cYI*?$%h{rG6M=zG4!7~99=~b` zy4fAmCyF`wk|*OgVBSIXvtr9~N2>3TrAcPE$XqU_m~#e6{7NlT;aFg_gMIrh9H`zW zZT&+xEiX=>uNg4*21Sw~>;mP~R19QFtsY7JHRbbk>Ld^AGb7RpCqE-=vAdJMWB04` zEJ*OfRZHjQw@ICmGrc8d+`2ODpXtP#;dU?m6+hH&6Y-D<+l7pocto%i=7&H3G5Ptw z3*BaKryGT<7+xL7f=#xV=%On#8{;A-pb1$|QL$+~B!sOE-vy`T9&8BM)R(n;xG0&U@kHHs^Es z3@*fk(!^G+*WRb(^5{3_Rm2_+uRE_Izp+KnWjC~*#k9*GWuA1>Sl)#skftuAP`Na> z6x^VKIbpd8wey0BhnPK6;+cL-IaUjO?Cy=8ZJ0M&Y~BgvR&N^TUNxHw+5q9kxk)NV zTNX!o`@`YHC{OS?0?5Tqy~q_gz*oDWttVkJJQ-GKaS$>vPg#A)iCsrr(*EOg&+7Pp zgCA2Y5&&&B!FYu$q2)i9#f{42+(%(I1{a6Sg;C67E&k$4lmB@7gl{?OFFt)6vxdv?CxTrFYB`k z<0ZtHxbiUcxZam#ZX0AjessCF&tNOPtdt1JALsUud-B7fNVyG}}h z$Qe&P@L)O9;8c8EGmnEO|A#-XxOtXHB2Lqt6K;ey{sg|?cMYJ9#F(S1fC|-+JyLp0 z;eL?r>Pm0S<9RsOK$NlMDDqMOJ3z$0X{8jcn2^$MH~H{3bW+mFjbRe@$(U9v<$l>Zvf%)}A~j(~#JC_MePLw#w?0bPjx`#UtCpp-{zR+V#X&588rp1ONt zOOH)1^2NZ$J~_aH1fD@%(L1on>~wSl8^TQ~lTvmh|L(zu;H_ zmOuemywZmDqN?KyPf3?U&+p;J(~RZDdTbl~Zz7!o`~zgtJcE4+d&DNP#r*Q)aQzx& zR}n~)NJwlht#u9*r;rD*sF_~S$i`tSP%o3&u?4WZ|LCQm1#6*a&iCD@ANu;>GYTCN z;0Io6`l1)%wyAGZ}5)P-KN+QqjF|2trrgx1*@? zIfTb((yid2A0d=fqa7{=V!?g!PUl;`u$gS_d16=h?8VXSu=n#QL31a6I1;Z8Zr+<^o*w~(@X;TSruOB{g=eBTh%G$hDM>!^oD^W$o+)&`Lye|q zY%rUOtPegubbMcwvwNl;uhrA>c)8x$Z^m4oxM$^PPOTa6a#?Il^s=^1I?yz6VVDtZ z-gSXUB@&LC`h7*W1yH)=(v$hP6muZEn{GrfE=9*tcu0*ICeOEiD8E4MtSMl?2~CZP zC7oT2fDp>%i91-sq0T3#Ef~^l&?8F&qGsw9Eu8%sV#rK^PGz}Vh=!_e#h4uZaFsr< z)PwJE2dZ2-d=z}*c1(m{@378I9;EujJ!AYdlg@j2c;>_z7f=!yBb|FAz}aK%mLA*T z)=?sOl%Pxt-*XHqsU44M5-pnV2{t-)#ViO|pm2#tD17X4=N7{JzIt32 zd@sPJm@nHFm(>WTd$8Hrp7|AjrGI ziAH0FO!FWF!W~x^@pI&CYYx?(&z7c~OKOn~K%rOgC0tOCb5k`A915KYkw6z3otw4v zZ{TF3%B8Q93D2X1R$$*2cxt3!6Z6l*9LjKfRRT#D;g4UrGbUHv7FAypFTFbE!#=OM z!m;Htsk)Dha5x|lR$R7E?Awew5ofyNOvg#D!kU{K_TJZBN=fi_NEA=`8&i3KUEtX?zK>54W`2wm0Y5usv^2})AfV|i4RMgp~;$}h2AzNl0{=^Z3 zBHA7`Z(zZmkF|p(&n#a@3RMQ@B7Md3E;f`!`PAl>y?{1~Z61RmMI#xSXth3?DF z5)pdTxxRjNpfqwaTlUizPO9GycAIk6$+m-J8^TJG!QyB>+*tZJ+reM z?u5y)t&KIsSAW#ytnab@hlg`z;r>BS%bj>A^QyFrYz^W8V@vRI_fv?R5Va&to{`n> zPOjOyuRyn5RPkL$!xAzVRdLaV-lK$A)K0SL4T#RTtcA*=B9Zy74c@9gGZ*;gNI6|k zjFp#q{ovrgmQJU1L>lMtRN~*Q*blhWo%P+vZ^O%*4V(G)tNs18G`!tSwie* z7uF4Sx3e!rxylULIee>05Zqv|``L^?%%%_|R-9Y;ywNX{FLap|x;k5#-GH@GIH#*~U5mcY|n;yvll(y}R ztLV=@jx0iU6uHprpxUO5P9-fef|9i@5wy|viU+pDbIDC2XjXW3n zZU*29(|pGVgdjin-xdmbzzMQ!r{qEhyX%!kVnXV<*fOe(`kQApt$JMHCkOnYuC_ah z()@nTTInxYMMNlzxvE4+n4c?<^y45-5bg6_Jh2(;`OC{>c#WUI)|N{szxZMSLC(0U zghlVl1tLz4Z$@@@)-%A_E3jP>^dUm?MZI_nXJZWx>0ZJ3@6a)N8!Lq+e(!l{d(Y^p z9HO<>$vq56nzdzgu`MYQ@5OnuK;9q%WtTvO&W>V=Z5M3Hgsj+EtQyPKb`7B5%|r4; z%fKGpj*sDX!9rh#=DYwvk8^T8fJ2WyS&MFATDSaIvkO{^cHk=O>x{X8^Gv$pmT%SJ zT2@mHgvKe{4tX__(a~H?z8-JQoz!WouVrDCS7vg#xjNS|&ezD7h5VKHoi>}c)d)M7 zD2wzK47iDf{+Slpy#i~Q^B@Z|)n#YLic?{lvImKPa;?u;U`8^RVX&`;EKMDqN_U6y z6vMhE-NjSzID(M#myi4yty!^@JngUp^N{I(qrNV7!X$QJO%bv@$>YCYw-Y-*so7*#&i zPn`jg0_bcAF@vp)5f2t)AVU&rB?sg@sG%L&jm;a|(KM5D-BNNr%NC#ukbg1H)-%(2g@m^-dWVfV{I~d%{UnER*-MR(XdVP zeR_wCi+0`yIB^JPRMiVrLaM1|ClNPtrwU@f`zkoY$*yc`FS*9%I)}LmQb9mf#CGi6 zdtG)PA*&J7_E{DZLH6n6y(dA%LhI0Z;($@@s?AG{_hTmD)vm`G4uUr6&dfHfza({6^;Z6sbO8cs5$k?5V zbU5UeGJ?`Vtm8Nb_@n({0W$i5HPaw|Jrsv-KebS7xBN*7&071eLP>Mv9>VkD^*L7| zF3xx9FiYs1W^|1s@C8`)K_ZH`oX&od8dKfYKvM3=!1D;}CTz9G69qKkYT-IG&jZc*9x8kfJr zYt~6mtVirDe2#yu@?u0}wj+P~?mJNTG#&#IGW8*DnG^N#uQ_Y8(){m(Su*KkYXIj$ z+64!)4;h+i-UA_j$n`!SGIVFgY}J}7U{$~eb=}^FKv>c}M^w8v61K244@i|~{#?quFZ z^!Naqw#d5SX2hKg_8#sUK2yNA zAnho#;Hx|1ZUUDAEesDEc-52E@6fe)R&`@?(zQ*hi zORT-LXK`JNQRr4)ZZ*675i@+f%pB$@WYZM>3yLtBi7{KQ#h=un+`_fTw0G;)bBwiC z%FT7T8-9gmI2bs~aRr)`59e7+73eDT67PBYTnM<5usgNM?3ONeB!_Ux_41t{iv(s@ zHrY;1APPdo_nPhXuKG*w3|BNk14QVw>w%-!g+oP)%U?sGpx&1eICs%NPYWGM^F{gc z(50hfayAc_iubrvNRN(Q$CgG|ls4_rjEy4N$v~O{WQi3;;wl$&Y`#gVk0wHc>rm6j zf}>b%jf56}6kLI7*Zsa^gglaQ9NK*Ve~>|?53xEzBDKGaKaJl$JhbcI6uw3D-VqM0 z)ksFhyjZIHnn7nG{XZCUesO34mtIgC$h&r67I`vX##+-CU&LK{MclI404Nc4zj>P- zISidKacr+gS~O8ai*Mn?t6lqe9ib~3?UUZcY!Hz~4D>R!=c>j(c1w!eS+hTD_&BV> z$|>h2rluV=Vt6~&>qGJz{UD}vTNx4pr;Y~D({5v!%@q!ev^%XCwENmmE-UyDiVu}c z9-SAbzubxx_QL|6<0C7Vblxhsg^D_Q-1)0FKS0K%*9~t|HAlBzpGUizxLJu%0k2$5 zkw=%Wa=O@;$#T@}R#{5t9*KeAQnc5j@V?5inLu)>= zg4Lw*jzKetkPX#7NB1vvR~i*Do3R)(?jvMpI)#ZOPC#|4n5Ly64L()07aouy;m1@d zU9c-y6jt`0ZD2%~TQxN`!@cyv%SC-P;0HV_>45HQfM>0n*YX5x%N0Th7=37E#Xht zHY4v#Fy-qSj2Q%eCk+EoN)`iK%Ym#e^@q#1?z&F!;jlI@e3`!<<$|z9ZMtT85Cxn- zUz&?b(_R?P89=d!fAt##;p0z3h8XP@8n{Hn$k7i{;gD)e`%AU9Gxq(+^>j*+%H59O zDqd^YR2wF~raj?QlTPe4@~g6}`P|<^sLuCDuSr^>5P^-7tffGQSG@;YFOEP;|(FXGP%B-2t*V;Hi{Lsq!yKs`e@D@&d&tR?x!|PPR=`M>| z&w6?5KX_Z6IafNfC_ulW@iUr0Epht?oZJ?RCOzp{{HqF5FQ>hqofKnqtpe_R!Oq%fs!h(8`>o&#JgUEq5UI#F7%4Ji zx7^k|HnDL}QaU98mym-KLIX@l$M#)K6Y99$3a#p{q|h9Q!i&p9nJwE1%28FKllt1l zmyR?3-^Mf zN=72Ad{2KaV3uq2t%@?#JFzwI#1AjfOx~{?@V(-5D>%%{;iY`1rQ|AA?zE84`t7ow zo{E5|+sZpydL9#PuLIRYGXr3otn?YvaOFY*@g3Hf{*QdVbH<#jBK#{SH-pGTlD(S_ z>$R^+qQYfaSdq{I*YoSnV)G0SChfdn3V}$(xo@sR!-C9HJ7P{-EGx@dKmFw0n>{T1 z|AUF-<##Tumm_RBeoCs2-Of17*JI~c&P9zH37*b#H4NF?7v2l}q&c+xDw#D`s1lE{ zzS2saT@`o81xqSkZ}5!8E>nV(_@(*Gv?4x30rKFGY6gDFD1nqW1nWoP7H^E!Zr_6b z%zLqBm_o2nz^yPG*UHb0Co(mSLs#Ql>0u9b2J#B1&*gVbYj)xYh1JYV7taBksH44n zNGMN%=O|F!Nipk#hvFI20GE3Jf?5i^GOu5DFJW;pVB&41{TM*4uXEK+c{mcMXoe@k zthR0W{zyo}6Y#)f(j?w80(?`T1)?7$BdEUZJoZIh{#p~9pSU)!Sd?Wy;GTELD?Y`- zdxc-yjGyl~u{(g?3Ek8QMtOXQ>a3yv=$CGeYXMnCSF9Kv z_g}e2Yezlq3s+pINaZ#0LC+k-$J80Mp412Q`El)$k$HP)p>>;gLV2snDUDM;XyM%S zCe5tY{g|sfVPHEsm}~39s`te%n~!q`rZf}~mJ)xn<4ZiflhcL7Q$-Qd58T#k##NFB za)bk!l(VO)F79|SI8^m46xOx$bv|E{12?j5XPR0%>#T8y#h7{*@Az?H7H0gw`-sVI zIyvpP^W|R7(6gKd!`#w4UK+ZQ7ACSCwgiuvRyRFmq}`Zd-vE=yvg%=8u<7#ZP^85N z6No#xY*R@$KKK@A)B2+VROTi|TlDL!gCCA^1 zq{Y^g=bg%vLiss9?<>*|vZ)|m*BjGPSXmSo4P%GJheOtmk@=o6&Bgo40XAmK;j&xE zG{*nU+BBVs53GPk|76+XL#$pTk_?2q_{Z?)UxQIxu04d@kBhBVJBu71p^FZ)%1

r=CVfJT8fq`!MkqeV#-+91P(3J)E9 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 A+u>< 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
}=?wwg#p;Y@6rGY8f+WRy@Py!pwx~C;&iP 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 literal 0 HcmV?d00001 diff --git a/src/backend/InvenTree/build/test_api.py b/src/backend/InvenTree/build/test_api.py index 435db8367e..acb75c25f3 100644 --- a/src/backend/InvenTree/build/test_api.py +++ b/src/backend/InvenTree/build/test_api.py @@ -1015,7 +1015,7 @@ class BuildOverallocationTest(BuildAPITest): 'accept_overallocated': 'trim', }, expected_code=201, - max_query_count=550, # TODO: Come back and refactor this + max_query_count=555, # TODO: Come back and refactor this ) self.build.refresh_from_db() diff --git a/src/backend/InvenTree/common/api.py b/src/backend/InvenTree/common/api.py index 268e2680d2..bb2bd8f53d 100644 --- a/src/backend/InvenTree/common/api.py +++ b/src/backend/InvenTree/common/api.py @@ -9,6 +9,7 @@ from django.http.response import HttpResponse from django.urls import include, path, re_path from django.utils.decorators import method_decorator from django.utils.translation import gettext_lazy as _ +from django.views.decorators.cache import cache_control from django.views.decorators.csrf import csrf_exempt import django_q.models @@ -25,6 +26,7 @@ from rest_framework.views import APIView import common.models import common.serializers +from common.icons import get_icon_packs from common.settings import get_global_setting from generic.states.api import AllStatusViews, StatusView from importer.mixins import DataExportViewMixin @@ -743,6 +745,18 @@ class AttachmentDetail(RetrieveUpdateDestroyAPI): return super().destroy(request, *args, **kwargs) +@method_decorator(cache_control(public=True, max_age=86400), name='dispatch') +class IconList(ListAPI): + """List view for available icon packages.""" + + serializer_class = common.serializers.IconPackageSerializer + permission_classes = [permissions.AllowAny] + + def get_queryset(self): + """Return a list of all available icon packages.""" + return get_icon_packs().values() + + settings_api_urls = [ # User settings path( @@ -957,6 +971,8 @@ common_api_urls = [ path('', ContentTypeList.as_view(), name='api-contenttype-list'), ]), ), + # Icons + path('icons/', IconList.as_view(), name='api-icon-list'), ] admin_api_urls = [ diff --git a/src/backend/InvenTree/common/icons.py b/src/backend/InvenTree/common/icons.py new file mode 100644 index 0000000000..1ba6efe241 --- /dev/null +++ b/src/backend/InvenTree/common/icons.py @@ -0,0 +1,114 @@ +"""Icon utilities for InvenTree.""" + +import json +import logging +from dataclasses import dataclass +from pathlib import Path +from typing import TypedDict + +from django.core.exceptions import ValidationError +from django.templatetags.static import static + +logger = logging.getLogger('inventree') + +_icon_packs = None + + +class Icon(TypedDict): + """Dict type for an icon. + + Attributes: + name: The name of the icon. + category: The category of the icon. + tags: A list of tags for the icon (used for search). + variants: A dictionary of variants for the icon, where the key is the variant name and the value is the variant's unicode hex character. + """ + + name: str + category: str + tags: list[str] + variants: dict[str, str] + + +@dataclass +class IconPack: + """Dataclass for an icon pack. + + Attributes: + name: The name of the icon pack. + prefix: The prefix used for the icon pack. + fonts: A dictionary of different font file formats for the icon pack, where the key is the css format and the value a path to the font file. + icons: A dictionary of icons in the icon pack, where the key is the icon name and the value is a dictionary of the icon's variants. + """ + + name: str + prefix: str + fonts: dict[str, str] + icons: dict[str, Icon] + + +def get_icon_packs(): + """Return a dictionary of available icon packs including their icons.""" + global _icon_packs + + if _icon_packs is None: + tabler_icons_path = Path(__file__).parent.parent.joinpath( + 'InvenTree/static/tabler-icons/icons.json' + ) + with open(tabler_icons_path, 'r') as tabler_icons_file: + tabler_icons = json.load(tabler_icons_file) + + icon_packs = [ + IconPack( + name='Tabler Icons', + prefix='ti', + fonts={ + 'woff2': static('tabler-icons/tabler-icons.woff2'), + 'woff': static('tabler-icons/tabler-icons.woff'), + 'truetype': static('tabler-icons/tabler-icons.ttf'), + }, + icons=tabler_icons, + ) + ] + + from plugin import registry + + for plugin in registry.with_mixin('icon_pack', active=True): + try: + icon_packs.extend(plugin.icon_packs()) + except Exception as e: + logger.warning('Error loading icon pack from plugin %s: %s', plugin, e) + + _icon_packs = {pack.prefix: pack for pack in icon_packs} + + return _icon_packs + + +def reload_icon_packs(): + """Reload the icon packs.""" + global _icon_packs + _icon_packs = None + get_icon_packs() + + +def validate_icon(icon: str): + """Validate an icon string in the format pack:name:variant.""" + try: + pack, name, variant = icon.split(':') + except ValueError: + raise ValidationError( + f'Invalid icon format: {icon}, expected: pack:name:variant' + ) + + packs = get_icon_packs() + + if pack not in packs: + raise ValidationError(f'Invalid icon pack: {pack}') + + if name not in packs[pack].icons: + raise ValidationError(f'Invalid icon name: {name}') + + if variant not in packs[pack].icons[name]['variants']: + raise ValidationError(f'Invalid icon variant: {variant}') + + return packs[pack], packs[pack].icons[name], variant diff --git a/src/backend/InvenTree/common/models.py b/src/backend/InvenTree/common/models.py index 93da434ad5..46e38b03d8 100644 --- a/src/backend/InvenTree/common/models.py +++ b/src/backend/InvenTree/common/models.py @@ -1558,6 +1558,7 @@ class InvenTreeSetting(BaseInvenTreeSetting): 'name': _('Part Category Default Icon'), 'description': _('Part category default icon (empty means no icon)'), 'default': '', + 'validator': common.validators.validate_icon, }, 'PART_PARAMETER_ENFORCE_UNITS': { 'name': _('Enforce Parameter Units'), @@ -1779,6 +1780,7 @@ class InvenTreeSetting(BaseInvenTreeSetting): 'name': _('Stock Location Default Icon'), 'description': _('Stock location default icon (empty means no icon)'), 'default': '', + 'validator': common.validators.validate_icon, }, 'STOCK_SHOW_INSTALLED_ITEMS': { 'name': _('Show Installed Stock Items'), diff --git a/src/backend/InvenTree/common/serializers.py b/src/backend/InvenTree/common/serializers.py index 45b681cb19..8b2e55c014 100644 --- a/src/backend/InvenTree/common/serializers.py +++ b/src/backend/InvenTree/common/serializers.py @@ -565,3 +565,21 @@ class AttachmentSerializer(InvenTreeModelSerializer): ) return super().save() + + +class IconSerializer(serializers.Serializer): + """Serializer for an icon.""" + + name = serializers.CharField() + category = serializers.CharField() + tags = serializers.ListField(child=serializers.CharField()) + variants = serializers.DictField(child=serializers.CharField()) + + +class IconPackageSerializer(serializers.Serializer): + """Serializer for a list of icons.""" + + name = serializers.CharField() + prefix = serializers.CharField() + fonts = serializers.DictField(child=serializers.CharField()) + icons = serializers.DictField(child=IconSerializer()) diff --git a/src/backend/InvenTree/common/tests.py b/src/backend/InvenTree/common/tests.py index b08ab0b5f2..0c4d236bf9 100644 --- a/src/backend/InvenTree/common/tests.py +++ b/src/backend/InvenTree/common/tests.py @@ -20,6 +20,7 @@ from django.urls import reverse import PIL +import common.validators from common.settings import get_global_setting, set_global_setting from InvenTree.helpers import str2bool from InvenTree.unit_test import InvenTreeAPITestCase, InvenTreeTestCase, PluginMixin @@ -1524,3 +1525,44 @@ class ContentTypeAPITest(InvenTreeAPITestCase): reverse('api-contenttype-detail-modelname', kwargs={'model': None}), expected_code=404, ) + + +class IconAPITest(InvenTreeAPITestCase): + """Unit tests for the Icons API.""" + + def test_list(self): + """Test API list functionality.""" + response = self.get(reverse('api-icon-list'), expected_code=200) + self.assertEqual(len(response.data), 1) + + self.assertEqual(response.data[0]['prefix'], 'ti') + self.assertEqual(response.data[0]['name'], 'Tabler Icons') + for font_format in ['woff2', 'woff', 'truetype']: + self.assertIn(font_format, response.data[0]['fonts']) + + self.assertGreater(len(response.data[0]['icons']), 1000) + + +class ValidatorsTest(TestCase): + """Unit tests for the custom validators.""" + + def test_validate_icon(self): + """Test the validate_icon function.""" + common.validators.validate_icon('') + common.validators.validate_icon(None) + + with self.assertRaises(ValidationError): + common.validators.validate_icon('invalid') + + with self.assertRaises(ValidationError): + common.validators.validate_icon('my:package:non-existing') + + with self.assertRaises(ValidationError): + common.validators.validate_icon( + 'ti:my-non-existing-icon:non-existing-variant' + ) + + with self.assertRaises(ValidationError): + common.validators.validate_icon('ti:package:non-existing-variant') + + common.validators.validate_icon('ti:package:outline') diff --git a/src/backend/InvenTree/common/validators.py b/src/backend/InvenTree/common/validators.py index a806e6cc0d..c8b2b18762 100644 --- a/src/backend/InvenTree/common/validators.py +++ b/src/backend/InvenTree/common/validators.py @@ -1,10 +1,12 @@ """Validation helpers for common models.""" import re +from typing import Union from django.core.exceptions import ValidationError from django.utils.translation import gettext_lazy as _ +import common.icons from common.settings import get_global_setting @@ -103,3 +105,11 @@ def validate_email_domains(setting): raise ValidationError(_('An empty domain is not allowed.')) if not re.match(r'^@[a-zA-Z0-9\.\-_]+$', domain): raise ValidationError(_(f'Invalid domain name: {domain}')) + + +def validate_icon(name: Union[str, None]): + """Validate the provided icon name, and ignore if empty.""" + if name == '' or name is None: + return + + common.icons.validate_icon(name) diff --git a/src/backend/InvenTree/part/migrations/0127_remove_partcategory_icon_partcategory__icon.py b/src/backend/InvenTree/part/migrations/0127_remove_partcategory_icon_partcategory__icon.py new file mode 100644 index 0000000000..0e9e148fb2 --- /dev/null +++ b/src/backend/InvenTree/part/migrations/0127_remove_partcategory_icon_partcategory__icon.py @@ -0,0 +1,29 @@ +# Generated by Django 4.2.11 on 2024-07-20 22:30 + +import common.icons +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('part', '0126_part_revision_of'), + ] + + operations = [ + migrations.SeparateDatabaseAndState( + database_operations=[], + state_operations=[ + migrations.RenameField( + model_name='partcategory', + old_name='icon', + new_name='_icon', + ), + migrations.AlterField( + model_name='partcategory', + name='_icon', + field=models.CharField(blank=True, db_column='icon', help_text='Icon (optional)', max_length=100, validators=[common.icons.validate_icon], verbose_name='Icon'), + ), + ], + ), + ] diff --git a/src/backend/InvenTree/part/models.py b/src/backend/InvenTree/part/models.py index f759241aa7..20d28b9f47 100644 --- a/src/backend/InvenTree/part/models.py +++ b/src/backend/InvenTree/part/models.py @@ -50,6 +50,7 @@ import users.models from build import models as BuildModels from build.status_codes import BuildStatusGroups from common.currency import currency_code_default +from common.icons import validate_icon from common.models import InvenTreeSetting from common.settings import get_global_setting, set_global_setting from company.models import SupplierPart @@ -80,6 +81,8 @@ class PartCategory(InvenTree.models.InvenTreeTree): ITEM_PARENT_KEY = 'category' + EXTRA_PATH_FIELDS = ['icon'] + class Meta: """Metaclass defines extra model properties.""" @@ -123,13 +126,37 @@ class PartCategory(InvenTree.models.InvenTreeTree): help_text=_('Default keywords for parts in this category'), ) - icon = models.CharField( + _icon = models.CharField( blank=True, max_length=100, verbose_name=_('Icon'), help_text=_('Icon (optional)'), + validators=[validate_icon], + db_column='icon', ) + @property + def icon(self): + """Return the icon associated with this PartCategory or the default icon.""" + if self._icon: + return self._icon + + if default_icon := get_global_setting('PART_CATEGORY_DEFAULT_ICON', cache=True): + return default_icon + + return '' + + @icon.setter + def icon(self, value): + """Setter for icon field.""" + default_icon = get_global_setting('PART_CATEGORY_DEFAULT_ICON', cache=True) + + # if icon is not defined previously and new value is default icon, do not save it + if not self._icon and value == default_icon: + return + + self._icon = value + @staticmethod def get_api_url(): """Return the API url associated with the PartCategory model.""" diff --git a/src/backend/InvenTree/part/serializers.py b/src/backend/InvenTree/part/serializers.py index a87453348f..f1518e0780 100644 --- a/src/backend/InvenTree/part/serializers.py +++ b/src/backend/InvenTree/part/serializers.py @@ -139,6 +139,10 @@ class CategorySerializer( child=serializers.DictField(), source='get_path', read_only=True ) + icon = serializers.CharField( + required=False, allow_blank=True, help_text=_('Icon (optional)'), max_length=100 + ) + parent_default_location = serializers.IntegerField(read_only=True) @@ -153,6 +157,10 @@ class CategoryTree(InvenTree.serializers.InvenTreeModelSerializer): subcategories = serializers.IntegerField(label=_('Subcategories'), read_only=True) + icon = serializers.CharField( + required=False, allow_blank=True, help_text=_('Icon (optional)'), max_length=100 + ) + @staticmethod def annotate_queryset(queryset): """Annotate the queryset with the number of subcategories.""" diff --git a/src/backend/InvenTree/part/templates/part/category.html b/src/backend/InvenTree/part/templates/part/category.html index 5671ca44c5..4bcf6b82ad 100644 --- a/src/backend/InvenTree/part/templates/part/category.html +++ b/src/backend/InvenTree/part/templates/part/category.html @@ -14,10 +14,7 @@ {% block heading %} {% if category %} {% trans "Part Category" %}: -{% settings_value "PART_CATEGORY_DEFAULT_ICON" as default_icon %} -{% if category.icon or default_icon %} - -{% endif %} + {{ category.name }} {% else %} {% trans "Parts" %} @@ -234,6 +231,10 @@ {% block js_ready %} {{ block.super }} + loadApiIconPacks().then(() => { + $('#category-icon').addClass(getApiIconClass('{{ category.icon }}')); + }); + {% settings_value "STOCKTAKE_ENABLE" as stocktake_enable %} {% if stocktake_enable and roles.stocktake.add %} $('#category-stocktake').click(function() { @@ -242,13 +243,11 @@ {% if category %}value: {{ category.pk }},{% endif %} tree_picker: { url: '{% url "api-part-category-tree" %}', - default_icon: global_settings.PART_CATEGORY_DEFAULT_ICON, }, }, location: { tree_picker: { url: '{% url "api-location-tree" %}', - default_icon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }, }, generate_report: {}, @@ -308,7 +307,6 @@ return node; }, - defaultIcon: global_settings.PART_CATEGORY_DEFAULT_ICON, }); onPanelLoad('subcategories', function() { diff --git a/src/backend/InvenTree/part/templates/part/detail.html b/src/backend/InvenTree/part/templates/part/detail.html index 71a0efd366..7aa0458c1b 100644 --- a/src/backend/InvenTree/part/templates/part/detail.html +++ b/src/backend/InvenTree/part/templates/part/detail.html @@ -441,7 +441,6 @@ location: { tree_picker: { url: '{% url "api-location-tree" %}', - default_icon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }, }, generate_report: { diff --git a/src/backend/InvenTree/part/test_category.py b/src/backend/InvenTree/part/test_category.py index 34308bf285..94465d075d 100644 --- a/src/backend/InvenTree/part/test_category.py +++ b/src/backend/InvenTree/part/test_category.py @@ -4,6 +4,8 @@ from django.conf import settings from django.core.exceptions import ValidationError from django.test import TestCase +from common.models import InvenTreeSetting + from .models import Part, PartCategory, PartParameter, PartParameterTemplate @@ -412,3 +414,29 @@ class CategoryTest(TestCase): # should log an exception with self.assertRaises(ValidationError): B3.delete() + + def test_icon(self): + """Test the category icon.""" + # No default icon set + cat = PartCategory.objects.create(name='Test Category') + self.assertEqual(cat.icon, '') + + # Set a default icon + InvenTreeSetting.set_setting('PART_CATEGORY_DEFAULT_ICON', 'ti:package:outline') + self.assertEqual(cat.icon, 'ti:package:outline') + + # Set custom icon to default icon and assert that it does not get written to the database + cat.icon = 'ti:package:outline' + cat.save() + self.assertEqual(cat._icon, '') + + # Set a different custom icon and assert that it takes precedence + cat.icon = 'ti:tag:outline' + cat.save() + self.assertEqual(cat.icon, 'ti:tag:outline') + InvenTreeSetting.set_setting('PART_CATEGORY_DEFAULT_ICON', '') + + # Test that the icon can be set to None again + cat.icon = '' + cat.save() + self.assertEqual(cat.icon, '') diff --git a/src/backend/InvenTree/plugin/base/icons/mixins.py b/src/backend/InvenTree/plugin/base/icons/mixins.py new file mode 100644 index 0000000000..a103e93c04 --- /dev/null +++ b/src/backend/InvenTree/plugin/base/icons/mixins.py @@ -0,0 +1,34 @@ +"""Plugin mixin classes for icon pack plugin.""" + +import logging + +from common.icons import IconPack, reload_icon_packs +from plugin.helpers import MixinNotImplementedError + +logger = logging.getLogger('inventree') + + +class IconPackMixin: + """Mixin that add custom icon packs.""" + + class MixinMeta: + """Meta options for this mixin.""" + + MIXIN_NAME = 'icon_pack' + + def __init__(self): + """Register mixin.""" + super().__init__() + self.add_mixin('icon_pack', True, __class__) + + @classmethod + def _activate_mixin(cls, registry, plugins, *args, **kwargs): + """Activate icon pack plugins.""" + logger.debug('Reloading icon packs') + reload_icon_packs() + + def icon_packs(self) -> list[IconPack]: + """Return a list of custom icon packs.""" + raise MixinNotImplementedError( + f"{__class__} is missing the 'icon_packs' method" + ) diff --git a/src/backend/InvenTree/plugin/mixins/__init__.py b/src/backend/InvenTree/plugin/mixins/__init__.py index 369711d8a5..dff24a216d 100644 --- a/src/backend/InvenTree/plugin/mixins/__init__.py +++ b/src/backend/InvenTree/plugin/mixins/__init__.py @@ -4,6 +4,7 @@ from common.notifications import BulkNotificationMethod, SingleNotificationMetho from plugin.base.action.mixins import ActionMixin from plugin.base.barcodes.mixins import BarcodeMixin, SupplierBarcodeMixin from plugin.base.event.mixins import EventMixin +from plugin.base.icons.mixins import IconPackMixin from plugin.base.integration.APICallMixin import APICallMixin from plugin.base.integration.AppMixin import AppMixin from plugin.base.integration.CurrencyExchangeMixin import CurrencyExchangeMixin @@ -22,6 +23,7 @@ __all__ = [ 'AppMixin', 'CurrencyExchangeMixin', 'EventMixin', + 'IconPackMixin', 'LabelPrintingMixin', 'NavigationMixin', 'ReportMixin', diff --git a/src/backend/InvenTree/plugin/samples/icons/__init__.py b/src/backend/InvenTree/plugin/samples/icons/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/backend/InvenTree/plugin/samples/icons/icon_sample.py b/src/backend/InvenTree/plugin/samples/icons/icon_sample.py new file mode 100644 index 0000000000..795f147ebf --- /dev/null +++ b/src/backend/InvenTree/plugin/samples/icons/icon_sample.py @@ -0,0 +1,39 @@ +"""Sample icon pack plugin to add custom icons.""" + +from django.templatetags.static import static + +from common.icons import IconPack +from plugin.base.icons.mixins import IconPackMixin +from plugin.plugin import InvenTreePlugin + + +class SampleIconPlugin(IconPackMixin, InvenTreePlugin): + """Example plugin to add custom icons.""" + + NAME = 'SampleIconPackPlugin' + SLUG = 'sampleicons' + TITLE = 'My sample icon pack plugin' + + VERSION = '0.0.1' + + def icon_packs(self): + """Return a list of custom icon packs.""" + return [ + IconPack( + name='My Custom Icons', + prefix='my', + fonts={ + 'woff2': static('fontawesome/webfonts/fa-regular-400.woff2'), + 'woff': static('fontawesome/webfonts/fa-regular-400.woff'), + 'truetype': static('fontawesome/webfonts/fa-regular-400.ttf'), + }, + icons={ + 'my-icon': { + 'name': 'My Icon', + 'category': '', + 'tags': ['my', 'icon'], + 'variants': {'filled': 'f0a5', 'cool': 'f073'}, + } + }, + ) + ] diff --git a/src/backend/InvenTree/plugin/samples/icons/test_icon_sample.py b/src/backend/InvenTree/plugin/samples/icons/test_icon_sample.py new file mode 100644 index 0000000000..fa1eef5af8 --- /dev/null +++ b/src/backend/InvenTree/plugin/samples/icons/test_icon_sample.py @@ -0,0 +1,52 @@ +"""Unit tests for icon pack sample plugins.""" + +from django.urls import reverse + +from InvenTree.unit_test import InvenTreeAPITestCase +from plugin import InvenTreePlugin, registry +from plugin.helpers import MixinNotImplementedError +from plugin.mixins import IconPackMixin + + +class SampleIconPackPluginTests(InvenTreeAPITestCase): + """Tests for SampleIconPackPlugin.""" + + def test_get_icons_api(self): + """Check get icons api.""" + # Activate plugin + config = registry.get_plugin('sampleicons').plugin_config() + config.active = True + config.save() + + response = self.get(reverse('api-icon-list'), expected_code=200) + self.assertEqual(len(response.data), 2) + + for icon_pack in response.data: + if icon_pack['prefix'] == 'my': + break + else: + self.fail('My icon pack not found') + + self.assertEqual(icon_pack['prefix'], 'my') + self.assertEqual(icon_pack['name'], 'My Custom Icons') + for font_format in ['woff2', 'woff', 'truetype']: + self.assertIn(font_format, icon_pack['fonts']) + + self.assertEqual(len(icon_pack['icons']), 1) + self.assertEqual(icon_pack['icons']['my-icon']['name'], 'My Icon') + self.assertEqual(icon_pack['icons']['my-icon']['category'], '') + self.assertEqual(icon_pack['icons']['my-icon']['tags'], ['my', 'icon']) + self.assertEqual( + icon_pack['icons']['my-icon']['variants'], + {'filled': 'f0a5', 'cool': 'f073'}, + ) + + def test_mixin(self): + """Test that MixinNotImplementedError is raised.""" + + class Wrong(IconPackMixin, InvenTreePlugin): + pass + + with self.assertRaises(MixinNotImplementedError): + plugin = Wrong() + plugin.icon_packs() diff --git a/src/backend/InvenTree/report/templatetags/report.py b/src/backend/InvenTree/report/templatetags/report.py index 2f04e5464c..39f664b870 100644 --- a/src/backend/InvenTree/report/templatetags/report.py +++ b/src/backend/InvenTree/report/templatetags/report.py @@ -7,11 +7,13 @@ from decimal import Decimal from django import template from django.conf import settings +from django.core.exceptions import ValidationError from django.utils.safestring import SafeString, mark_safe from django.utils.translation import gettext_lazy as _ from PIL import Image +import common.icons import InvenTree.helpers import InvenTree.helpers_model import report.helpers @@ -473,3 +475,61 @@ def format_date(date, timezone=None, format=None): return date.strftime(format) else: return date.isoformat() + + +@register.simple_tag() +def icon(name, **kwargs): + """Render an icon from the icon packs. + + Arguments: + name: The name of the icon to render + + Keyword Arguments: + class: Optional class name(s) to apply to the icon element + """ + if not name: + return '' + + try: + pack, icon, variant = common.icons.validate_icon(name) + except ValidationError: + return '' + + unicode = chr(int(icon['variants'][variant], 16)) + return mark_safe( + f'{unicode}' + ) + + +@register.simple_tag() +def include_icon_fonts(): + """Return the CSS font-face rule for the icon fonts used on the current page (or all).""" + fonts = [] + + for font in common.icons.get_icon_packs().values(): + # generate the font src string (prefer ttf over woff, woff2 is not supported by weasyprint) + if 'truetype' in font.fonts: + font_format, url = 'truetype', font.fonts['truetype'] + elif 'woff' in font.fonts: + font_format, url = 'woff', font.fonts['woff'] + + fonts.append(f""" +@font-face {'{'} + font-family: 'inventree-icon-font-{font.prefix}'; + src: url('{InvenTree.helpers_model.construct_absolute_url(url)}') format('{font_format}'); +{'}'}\n""") + + icon_class = f""" +.icon {'{'} + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better font rendering */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +{'}'} + """ + + return mark_safe(icon_class + '\n'.join(fonts)) diff --git a/src/backend/InvenTree/report/tests.py b/src/backend/InvenTree/report/tests.py index b5ac753fd9..68120a01a2 100644 --- a/src/backend/InvenTree/report/tests.py +++ b/src/backend/InvenTree/report/tests.py @@ -186,6 +186,31 @@ class ReportTagTest(TestCase): result = report_tags.format_datetime(time, tz, fmt) self.assertEqual(result, expected) + def test_icon(self): + """Test the icon template tag.""" + for icon in [None, '', 'not:the-correct-format', 'any-non-existent-icon']: + self.assertEqual(report_tags.icon(icon), '') + + self.assertEqual( + report_tags.icon('ti:package:outline'), + f'{chr(int("eaff", 16))}', + ) + self.assertEqual( + report_tags.icon( + 'ti:package:outline', **{'class': 'my-custom-class my-seconds-class'} + ), + f'{chr(int("eaff", 16))}', + ) + + def test_include_icon_fonts(self): + """Test the include_icon_fonts template tag.""" + style = report_tags.include_icon_fonts() + + self.assertIn('@font-face {', style) + self.assertIn("font-family: 'inventree-icon-font-ti';", style) + self.assertIn('tabler-icons/tabler-icons.ttf', style) + self.assertIn('.icon {', style) + class BarcodeTagTest(TestCase): """Unit tests for the barcode template tags.""" diff --git a/src/backend/InvenTree/script/update_icons.py b/src/backend/InvenTree/script/update_icons.py new file mode 100644 index 0000000000..1d0dfb2a57 --- /dev/null +++ b/src/backend/InvenTree/script/update_icons.py @@ -0,0 +1,67 @@ +"""This script updates the vendored tabler icons package.""" + +import json +import os +import shutil +import tempfile + +if __name__ == '__main__': + MY_DIR = os.path.dirname(os.path.realpath(__file__)) + STATIC_FOLDER = os.path.abspath( + os.path.join(MY_DIR, '..', 'InvenTree', 'static', 'tabler-icons') + ) + TMP_FOLDER = os.path.join(tempfile.gettempdir(), 'tabler-icons') + + if not os.path.exists(TMP_FOLDER): + os.mkdir(TMP_FOLDER) + + if not os.path.exists(STATIC_FOLDER): + os.mkdir(STATIC_FOLDER) + + print('Downloading tabler icons...') + os.system(f'npm install --prefix {TMP_FOLDER} @tabler/icons @tabler/icons-webfont') + + print(f'Copying tabler icons to {STATIC_FOLDER}...') + + for font in ['tabler-icons.woff', 'tabler-icons.woff2', 'tabler-icons.ttf']: + shutil.copyfile( + os.path.join( + TMP_FOLDER, + 'node_modules', + '@tabler', + 'icons-webfont', + 'dist', + 'fonts', + font, + ), + os.path.join(STATIC_FOLDER, font), + ) + + # Copy license + shutil.copyfile( + os.path.join(TMP_FOLDER, 'node_modules', '@tabler', 'icons-webfont', 'LICENSE'), + os.path.join(STATIC_FOLDER, 'LICENSE'), + ) + + print('Generating icon list...') + with open( + os.path.join(TMP_FOLDER, 'node_modules', '@tabler', 'icons', 'icons.json'), 'r' + ) as f: + icons = json.load(f) + + res = {} + for icon in icons.values(): + res[icon['name']] = { + 'name': icon['name'], + 'category': icon['category'], + 'tags': icon['tags'], + 'variants': { + name: style['unicode'] for name, style in icon['styles'].items() + }, + } + + with open(os.path.join(STATIC_FOLDER, 'icons.json'), 'w') as f: + json.dump(res, f, separators=(',', ':')) + + print('Cleaning up...') + shutil.rmtree(TMP_FOLDER) diff --git a/src/backend/InvenTree/stock/migrations/0112_alter_stocklocation_custom_icon_and_more.py b/src/backend/InvenTree/stock/migrations/0112_alter_stocklocation_custom_icon_and_more.py new file mode 100644 index 0000000000..21b48b91da --- /dev/null +++ b/src/backend/InvenTree/stock/migrations/0112_alter_stocklocation_custom_icon_and_more.py @@ -0,0 +1,24 @@ +# Generated by Django 4.2.11 on 2024-07-20 22:30 + +import common.icons +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('stock', '0111_delete_stockitemattachment'), + ] + + operations = [ + migrations.AlterField( + model_name='stocklocation', + name='custom_icon', + field=models.CharField(blank=True, db_column='icon', help_text='Icon (optional)', max_length=100, validators=[common.icons.validate_icon], verbose_name='Icon'), + ), + migrations.AlterField( + model_name='stocklocationtype', + name='icon', + field=models.CharField(blank=True, help_text='Default icon for all locations that have no icon set (optional)', max_length=100, validators=[common.icons.validate_icon], verbose_name='Icon'), + ), + ] diff --git a/src/backend/InvenTree/stock/models.py b/src/backend/InvenTree/stock/models.py index e0fa3d3c6f..936c7097ce 100644 --- a/src/backend/InvenTree/stock/models.py +++ b/src/backend/InvenTree/stock/models.py @@ -33,6 +33,7 @@ import InvenTree.ready import InvenTree.tasks import report.mixins import report.models +from common.icons import validate_icon from common.settings import get_global_setting from company import models as CompanyModels from InvenTree.fields import InvenTreeModelMoneyField, InvenTreeURLField @@ -86,6 +87,7 @@ class StockLocationType(InvenTree.models.MetadataMixin, models.Model): max_length=100, verbose_name=_('Icon'), help_text=_('Default icon for all locations that have no icon set (optional)'), + validators=[validate_icon], ) @@ -117,6 +119,8 @@ class StockLocation( ITEM_PARENT_KEY = 'location' + EXTRA_PATH_FIELDS = ['icon'] + objects = StockLocationManager() class Meta: @@ -163,6 +167,7 @@ class StockLocation( verbose_name=_('Icon'), help_text=_('Icon (optional)'), db_column='icon', + validators=[validate_icon], ) owner = models.ForeignKey( @@ -212,6 +217,11 @@ class StockLocation( if self.location_type: return self.location_type.icon + if default_icon := get_global_setting( + 'STOCK_LOCATION_DEFAULT_ICON', cache=True + ): + return default_icon + return '' @icon.setter diff --git a/src/backend/InvenTree/stock/templates/stock/item_base.html b/src/backend/InvenTree/stock/templates/stock/item_base.html index 1a7f0fe5cf..fac0adf14d 100644 --- a/src/backend/InvenTree/stock/templates/stock/item_base.html +++ b/src/backend/InvenTree/stock/templates/stock/item_base.html @@ -646,7 +646,6 @@ $("#stock-return-from-customer").click(function() { {% endif %} tree_picker: { url: '{% url "api-location-tree" %}', - default_icon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }, }, notes: { diff --git a/src/backend/InvenTree/stock/templates/stock/location.html b/src/backend/InvenTree/stock/templates/stock/location.html index 37039dd017..a2e34576ee 100644 --- a/src/backend/InvenTree/stock/templates/stock/location.html +++ b/src/backend/InvenTree/stock/templates/stock/location.html @@ -15,10 +15,7 @@ {% block heading %} {% if location %} {% trans "Stock Location" %}: -{% settings_value "STOCK_LOCATION_DEFAULT_ICON" as default_icon %} -{% if location.icon or default_icon %} - -{% endif %} + {{ location.name }} {% else %} {% trans "Stock" %} @@ -244,6 +241,10 @@ {% block js_ready %} {{ block.super }} + loadApiIconPacks().then(() => { + $('#location-icon').addClass(getApiIconClass('{{ location.icon }}')); + }); + {% settings_value "STOCKTAKE_ENABLE" as stocktake_enable %} {% if stocktake_enable and roles.stocktake.add %} $('#location-stocktake').click(function() { @@ -251,14 +252,12 @@ category: { tree_picker: { url: '{% url "api-part-category-tree" %}', - default_icon: global_settings.PART_CATEGORY_DEFAULT_ICON, }, }, location: { {% if location %}value: {{ location.pk }},{% endif %} tree_picker: { url: '{% url "api-location-tree" %}', - default_icon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }, }, generate_report: {}, @@ -455,7 +454,6 @@ return node; }, - defaultIcon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }); {% endblock js_ready %} diff --git a/src/backend/InvenTree/stock/test_api.py b/src/backend/InvenTree/stock/test_api.py index 4b8471cf8b..61a8a43ba7 100644 --- a/src/backend/InvenTree/stock/test_api.py +++ b/src/backend/InvenTree/stock/test_api.py @@ -472,13 +472,13 @@ class StockLocationTypeTest(StockAPITestCase): """Test that the list endpoint works as expected.""" location_types = [ StockLocationType.objects.create( - name='Type 1', description='Type 1 desc', icon='fas fa-box' + name='Type 1', description='Type 1 desc', icon='ti:package:outline' ), StockLocationType.objects.create( - name='Type 2', description='Type 2 desc', icon='fas fa-box' + name='Type 2', description='Type 2 desc', icon='ti:package:outline' ), StockLocationType.objects.create( - name='Type 3', description='Type 3 desc', icon='fas fa-box' + name='Type 3', description='Type 3 desc', icon='ti:package:outline' ), ] @@ -493,7 +493,7 @@ class StockLocationTypeTest(StockAPITestCase): def test_delete(self): """Test that we can delete a location type via API.""" location_type = StockLocationType.objects.create( - name='Type 1', description='Type 1 desc', icon='fas fa-box' + name='Type 1', description='Type 1 desc', icon='ti:package:outline' ) self.delete( reverse('api-location-type-detail', kwargs={'pk': location_type.pk}), @@ -506,8 +506,19 @@ class StockLocationTypeTest(StockAPITestCase): self.post( self.list_url, {'name': 'Test Type 1', 'description': 'Test desc 1', 'icon': 'fas fa-box'}, + expected_code=400, + ) + + self.post( + self.list_url, + { + 'name': 'Test Type 1', + 'description': 'Test desc 1', + 'icon': 'ti:package:outline', + }, expected_code=201, ) + self.assertIsNotNone( StockLocationType.objects.filter(name='Test Type 1').first() ) @@ -515,14 +526,20 @@ class StockLocationTypeTest(StockAPITestCase): def test_update(self): """Test that we can update a location type via API.""" location_type = StockLocationType.objects.create( - name='Type 1', description='Type 1 desc', icon='fas fa-box' + name='Type 1', description='Type 1 desc', icon='ti:package:outline' ) - res = self.patch( + self.patch( reverse('api-location-type-detail', kwargs={'pk': location_type.pk}), {'icon': 'fas fa-shapes'}, + expected_code=400, + ) + + res = self.patch( + reverse('api-location-type-detail', kwargs={'pk': location_type.pk}), + {'icon': 'ti:tag:outline'}, expected_code=200, ).json() - self.assertEqual(res['icon'], 'fas fa-shapes') + self.assertEqual(res['icon'], 'ti:tag:outline') class StockItemListTest(StockAPITestCase): diff --git a/src/backend/InvenTree/stock/tests.py b/src/backend/InvenTree/stock/tests.py index 7eb0302876..dcbf2cf3d3 100644 --- a/src/backend/InvenTree/stock/tests.py +++ b/src/backend/InvenTree/stock/tests.py @@ -15,7 +15,13 @@ from order.models import SalesOrder from part.models import Part, PartTestTemplate from stock.status_codes import StockHistoryCode -from .models import StockItem, StockItemTestResult, StockItemTracking, StockLocation +from .models import ( + StockItem, + StockItemTestResult, + StockItemTracking, + StockLocation, + StockLocationType, +) class StockTestBase(InvenTreeTestCase): @@ -1305,3 +1311,39 @@ class TestResultTest(StockTestBase): tests = item.testResultMap(include_installed=False) self.assertEqual(len(tests), 3) self.assertNotIn('somenewtest', tests) + + +class StockLocationTest(InvenTreeTestCase): + """Tests for the StockLocation model.""" + + def test_icon(self): + """Test stock location icon.""" + # No default icon set + loc = StockLocation.objects.create(name='Test Location') + loc_type = StockLocationType.objects.create( + name='Test Type', icon='ti:cube-send:outline' + ) + self.assertEqual(loc.icon, '') + + # Set a default icon + InvenTreeSetting.set_setting( + 'STOCK_LOCATION_DEFAULT_ICON', 'ti:package:outline' + ) + self.assertEqual(loc.icon, 'ti:package:outline') + + # Assign location type and check that it takes precedence over default icon + loc.location_type = loc_type + loc.save() + self.assertEqual(loc.icon, 'ti:cube-send:outline') + + # Set a custom icon and assert that it takes precedence over all other icons + loc.icon = 'ti:tag:outline' + loc.save() + self.assertEqual(loc.icon, 'ti:tag:outline') + InvenTreeSetting.set_setting('STOCK_LOCATION_DEFAULT_ICON', '') + + # Test that the icon can be set to None again + loc.icon = '' + loc.location_type = None + loc.save() + self.assertEqual(loc.icon, '') diff --git a/src/backend/InvenTree/templates/InvenTree/settings/settings_staff_js.html b/src/backend/InvenTree/templates/InvenTree/settings/settings_staff_js.html index 85d90193db..5b2a0ce898 100644 --- a/src/backend/InvenTree/templates/InvenTree/settings/settings_staff_js.html +++ b/src/backend/InvenTree/templates/InvenTree/settings/settings_staff_js.html @@ -330,7 +330,6 @@ onPanelLoad('category', function() { icon: 'fa-sitemap', tree_picker: { url: '{% url "api-part-category-tree" %}', - default_icon: global_settings.PART_CATEGORY_DEFAULT_ICON, }, }, default_value: {}, @@ -394,7 +393,6 @@ onPanelLoad('category', function() { value: pk, tree_picker: { url: '{% url "api-part-category-tree" %}', - default_icon: global_settings.PART_CATEGORY_DEFAULT_ICON, }, }, default_value: {}, @@ -429,7 +427,8 @@ onPanelLoad('parts', function() { }); // Javascript for the Stock settings panel -onPanelLoad("stock", function() { +onPanelLoad("stock", async function() { + await loadApiIconPacks(); // Construct the stock location type table $('#location-type-table').bootstrapTable({ @@ -440,6 +439,15 @@ onPanelLoad("stock", function() { return '{% trans "No stock location types found" escape %}'; }, columns: [ + { + field: 'icon', + sortable: true, + title: '{% trans "Icon" escape %}', + width: "50px", + formatter: function(value, row) { + return `` + } + }, { field: 'name', sortable: true, @@ -450,11 +458,6 @@ onPanelLoad("stock", function() { sortable: false, title: '{% trans "Description" escape %}', }, - { - field: 'icon', - sortable: true, - title: '{% trans "Icon" escape %}', - }, { field: 'location_count', sortable: true, @@ -560,13 +563,11 @@ onPanelLoad('stocktake', function() { category: { tree_picker: { url: '{% url "api-part-category-tree" %}', - default_icon: global_settings.PART_CATEGORY_DEFAULT_ICON, }, }, location: { tree_picker: { url: '{% url "api-location-tree" %}', - default_icon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }, }, generate_report: {}, diff --git a/src/backend/InvenTree/templates/js/dynamic/nav.js b/src/backend/InvenTree/templates/js/dynamic/nav.js index bec8d208cf..2fc0edd78e 100644 --- a/src/backend/InvenTree/templates/js/dynamic/nav.js +++ b/src/backend/InvenTree/templates/js/dynamic/nav.js @@ -1,5 +1,7 @@ /* globals + getApiIconClass, inventreeGet, + loadApiIconPacks, */ /* exported @@ -180,6 +182,11 @@ function generateTreeStructure(data, options) { if (options.processNode) { node = options.processNode(node); + + if (node.icon) { + node.icon = getApiIconClass(node.icon); + } + data[ii] = node; } } @@ -213,7 +220,7 @@ function generateTreeStructure(data, options) { /** * Enable support for breadcrumb tree navigation on this page */ -function enableBreadcrumbTree(options) { +async function enableBreadcrumbTree(options) { const label = options.label; @@ -224,6 +231,8 @@ function enableBreadcrumbTree(options) { const filters = options.filters || {}; + await loadApiIconPacks(); + inventreeGet( options.url, filters, diff --git a/src/backend/InvenTree/templates/js/translated/build.js b/src/backend/InvenTree/templates/js/translated/build.js index d6e5daf95a..5901ce820c 100644 --- a/src/backend/InvenTree/templates/js/translated/build.js +++ b/src/backend/InvenTree/templates/js/translated/build.js @@ -619,7 +619,6 @@ function completeBuildOutputs(build_id, outputs, options={}) { }, tree_picker: { url: '{% url "api-location-tree" %}', - default_icon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }, }, notes: { @@ -753,7 +752,6 @@ function scrapBuildOutputs(build_id, outputs, options={}) { }, tree_picker: { url: '{% url "api-location-tree" %}', - default_icon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }, }, notes: {}, @@ -2131,7 +2129,6 @@ function autoAllocateStockToBuild(build_id, bom_items=[], options={}) { }, tree_picker: { url: '{% url "api-location-tree" %}', - default_icon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }, }, exclude_location: {}, diff --git a/src/backend/InvenTree/templates/js/translated/forms.js b/src/backend/InvenTree/templates/js/translated/forms.js index 3d888072eb..222cc55223 100644 --- a/src/backend/InvenTree/templates/js/translated/forms.js +++ b/src/backend/InvenTree/templates/js/translated/forms.js @@ -2251,7 +2251,6 @@ function initializeRelatedField(field, fields, options={}) { data: rootNodes, expandIcon: 'fas fa-plus-square large-treeview-icon', collapseIcon: 'fa fa-minus-square large-treeview-icon', - nodeIcon: field.tree_picker.defaultIcon, color: "black", }); } diff --git a/src/backend/InvenTree/templates/js/translated/helpers.js b/src/backend/InvenTree/templates/js/translated/helpers.js index df2f92c008..156a697f5d 100644 --- a/src/backend/InvenTree/templates/js/translated/helpers.js +++ b/src/backend/InvenTree/templates/js/translated/helpers.js @@ -14,7 +14,10 @@ deleteButton, editButton, formatDecimal, + getApiIcon, + getApiIconClass, imageHoverIcon, + loadApiIconPacks, makeCopyButton, makeDeleteButton, makeEditButton, @@ -594,3 +597,66 @@ function renderClipboard(s, prepend=false) { return `
${s+clipString}
`; } } + +async function loadApiIconPacks() { + if(!window._ICON_PACKS) { + const packs = await inventreeGet('{% url "api-icon-list" %}'); + + window._ICON_PACKS = Object.fromEntries(packs.map(pack => [pack.prefix, pack])); + + await Promise.all( + packs.map(async (pack) => { + const fontName = `inventree-icon-font-${pack.prefix}`; + const src = Object.entries(pack.fonts).map(([format, url]) => `url(${url}) format("${format}")`).join(',\n'); + const font = new FontFace(fontName, src + ";"); + await font.load(); + document.fonts.add(font); + + return font; + }) + ) + } + + return window._ICON_PACKS; +} + +function getApiIcon(name) { + if(!window._ICON_PACKS) return; + + const [_iconPackage, _name, _variant] = name.split(':'); + + const iconPackage = window._ICON_PACKS[_iconPackage]; + if(!iconPackage) return; + + const icon = iconPackage.icons[_name]; + if(!icon) return; + + const variant = icon.variants[_variant]; + if(!variant) return; + + return [`inventree-icon-font-${_iconPackage}`, variant]; +} + +function getApiIconClass(name) { + const icon = getApiIcon(name); + if(!icon) return ""; + + const [font, hexContent] = icon; + + let styleTag = document.getElementById('api-icon-styles'); + if(!styleTag) { + styleTag = document.createElement('style'); + styleTag.id = 'api-icon-styles'; + styleTag.type = 'text/css'; + + document.head.appendChild(styleTag); + } + + const className = `icon-${name.replace(/:/g, '-')}`; + + if (!styleTag.textContent.includes(`.${className}`)) { + styleTag.textContent += `.${className} { font-family: ${font}; } .${className}:before { content: "\\${hexContent}"; }\n`; + } + + return `api-icon ${className}`; +} diff --git a/src/backend/InvenTree/templates/js/translated/model_renderers.js b/src/backend/InvenTree/templates/js/translated/model_renderers.js index d2d0573ab8..67eb4186e7 100644 --- a/src/backend/InvenTree/templates/js/translated/model_renderers.js +++ b/src/backend/InvenTree/templates/js/translated/model_renderers.js @@ -2,6 +2,7 @@ /* globals blankImage, + getApiIconClass, partStockLabel, renderLink, select2Thumbnail @@ -274,7 +275,7 @@ function renderStockLocation(data, parameters={}) { function renderStockLocationType(data, parameters={}) { return renderModel( { - text: `${data.name}`, + text: `${data.name}`, }, parameters ); diff --git a/src/backend/InvenTree/templates/js/translated/part.js b/src/backend/InvenTree/templates/js/translated/part.js index 8606c3b84b..3875926c38 100644 --- a/src/backend/InvenTree/templates/js/translated/part.js +++ b/src/backend/InvenTree/templates/js/translated/part.js @@ -11,6 +11,7 @@ formatCurrency, formatDecimal, formatPriceRange, + getApiIconClass, getCurrencyConversionRates, getFormFieldValue, getTableData, @@ -130,7 +131,6 @@ function partFields(options={}) { }, tree_picker: { url: '{% url "api-part-category-tree" %}', - default_icon: global_settings.PART_CATEGORY_DEFAULT_ICON, }, }, name: {}, @@ -155,7 +155,6 @@ function partFields(options={}) { }, tree_picker: { url: '{% url "api-location-tree" %}', - default_icon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }, }, default_supplier: { @@ -311,7 +310,6 @@ function categoryFields(options={}) { required: false, tree_picker: { url: '{% url "api-part-category-tree" %}', - default_icon: global_settings.PART_CATEGORY_DEFAULT_ICON, }, }, name: {}, @@ -323,7 +321,6 @@ function categoryFields(options={}) { }, tree_picker: { url: '{% url "api-location-tree" %}', - default_icon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }, }, default_keywords: { @@ -331,8 +328,9 @@ function categoryFields(options={}) { }, structural: {}, icon: { - help_text: `{% trans "Icon (optional) - Explore all available icons on" %}
Font Awesome.`, - placeholder: 'fas fa-tag', + help_text: `{% trans "Icon (optional) - Explore all available icons on" %} Tabler Icons.`, + placeholder: 'ti:: (e.g. ti:alert-circle:filled)', + icon: "fa-icons", }, }; @@ -2215,7 +2213,6 @@ function setPartCategory(data, options={}) { category: { tree_picker: { url: '{% url "api-part-category-tree" %}', - default_icon: global_settings.PART_CATEGORY_DEFAULT_ICON, }, }, }, @@ -2782,9 +2779,8 @@ function loadPartCategoryTable(table, options) { } } - const icon = row.icon || global_settings.PART_CATEGORY_DEFAULT_ICON; - if (icon) { - html += ``; + if (row.icon) { + html += ``; } html += renderLink( diff --git a/src/backend/InvenTree/templates/js/translated/purchase_order.js b/src/backend/InvenTree/templates/js/translated/purchase_order.js index 35bdd6c845..33f3f24f2b 100644 --- a/src/backend/InvenTree/templates/js/translated/purchase_order.js +++ b/src/backend/InvenTree/templates/js/translated/purchase_order.js @@ -1387,7 +1387,6 @@ function receivePurchaseOrderItems(order_id, line_items, options={}) { }, tree_picker: { url: '{% url "api-location-tree" %}', - default_icon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }, }, }, diff --git a/src/backend/InvenTree/templates/js/translated/return_order.js b/src/backend/InvenTree/templates/js/translated/return_order.js index 23c921dfc2..c22330c87d 100644 --- a/src/backend/InvenTree/templates/js/translated/return_order.js +++ b/src/backend/InvenTree/templates/js/translated/return_order.js @@ -552,7 +552,6 @@ function receiveReturnOrderItems(order_id, line_items, options={}) { }, tree_picker: { url: '{% url "api-location-tree" %}', - default_icon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }, } }, diff --git a/src/backend/InvenTree/templates/js/translated/stock.js b/src/backend/InvenTree/templates/js/translated/stock.js index 5df28f95c1..fae4919ffb 100644 --- a/src/backend/InvenTree/templates/js/translated/stock.js +++ b/src/backend/InvenTree/templates/js/translated/stock.js @@ -16,6 +16,7 @@ formatCurrency, formatDecimal, formatPriceRange, + getApiIconClass, getCurrencyConversionRates, getFormFieldElement, getFormFieldValue, @@ -137,8 +138,8 @@ function stockLocationTypeFields() { name: {}, description: {}, icon: { - help_text: `{% trans "Default icon for all locations that have no icon set (optional) - Explore all available icons on" %} Font Awesome.`, - placeholder: 'fas fa-box', + help_text: `{% trans "Icon (optional) - Explore all available icons on" %} Tabler Icons.`, + placeholder: 'ti:: (e.g. ti:alert-circle:filled)', icon: "fa-icons", }, } @@ -154,7 +155,6 @@ function stockLocationFields(options={}) { required: false, tree_picker: { url: '{% url "api-location-tree" %}', - default_icon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }, }, name: {}, @@ -173,8 +173,8 @@ function stockLocationFields(options={}) { }, }, custom_icon: { - help_text: `{% trans "Icon (optional) - Explore all available icons on" %} Font Awesome.`, - placeholder: 'fas fa-box', + help_text: `{% trans "Icon (optional) - Explore all available icons on" %} Tabler Icons.`, + placeholder: 'ti:: (e.g. ti:alert-circle:filled)', icon: "fa-icons", }, }; @@ -356,7 +356,6 @@ function stockItemFields(options={}) { }, tree_picker: { url: '{% url "api-location-tree" %}', - default_icon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }, }, quantity: { @@ -916,7 +915,6 @@ function mergeStockItems(items, options={}) { }, tree_picker: { url: '{% url "api-location-tree" %}', - default_icon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }, }, notes: { @@ -2811,9 +2809,8 @@ function loadStockLocationTable(table, options) { } } - const icon = row.icon || global_settings.STOCK_LOCATION_DEFAULT_ICON; - if (icon) { - html += ``; + if (row.icon) { + html += ``; } html += renderLink( @@ -3262,7 +3259,6 @@ function uninstallStockItem(installed_item_id, options={}) { }, tree_picker: { url: '{% url "api-location-tree" %}', - default_icon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }, }, note: { diff --git a/src/frontend/package.json b/src/frontend/package.json index 48592cc1fe..8e38182ac4 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -50,9 +50,10 @@ "codemirror": ">=6.0.0", "dayjs": "^1.11.10", "embla-carousel-react": "^8.1.6", + "fuse.js": "^7.0.0", "html5-qrcode": "^2.3.8", - "qrcode": "^1.5.3", "mantine-datatable": "^7.11.2", + "qrcode": "^1.5.3", "react": "^18.3.1", "react-dom": "^18.3.1", "react-grid-layout": "^1.4.4", @@ -60,6 +61,7 @@ "react-is": "^18.3.1", "react-router-dom": "^6.24.0", "react-select": "^5.8.0", + "react-window": "^1.8.10", "recharts": "^2.12.4", "styled-components": "^6.1.11", "zustand": "^4.5.4" @@ -77,6 +79,7 @@ "@types/react-dom": "^18.3.0", "@types/react-grid-layout": "^1.3.5", "@types/react-router-dom": "^5.3.3", + "@types/react-window": "^1.8.8", "@vanilla-extract/vite-plugin": "^4.0.12", "@vitejs/plugin-react": "^4.3.1", "babel-plugin-macros": "^3.1.0", diff --git a/src/frontend/src/components/details/Details.tsx b/src/frontend/src/components/details/Details.tsx index 7c2346eb38..2d66ad7069 100644 --- a/src/frontend/src/components/details/Details.tsx +++ b/src/frontend/src/components/details/Details.tsx @@ -46,7 +46,7 @@ export type DetailsField = ); type BadgeType = 'owner' | 'user' | 'group'; -type ValueFormatterReturn = string | number | null; +type ValueFormatterReturn = string | number | null | React.ReactNode; type StringDetailField = { type: 'string' | 'text'; diff --git a/src/frontend/src/components/editors/TemplateEditor/TemplateEditor.tsx b/src/frontend/src/components/editors/TemplateEditor/TemplateEditor.tsx index f1eac290a4..1f03f3ce71 100644 --- a/src/frontend/src/components/editors/TemplateEditor/TemplateEditor.tsx +++ b/src/frontend/src/components/editors/TemplateEditor/TemplateEditor.tsx @@ -210,7 +210,11 @@ export function TemplateEditor(props: Readonly) { ); const templateFilters: Record = useMemo(() => { - // TODO: Extract custom filters from template + // TODO: Extract custom filters from template (make this more generic) + if (template.model_type === ModelType.stockitem) { + return { part_detail: 'true' } as Record; + } + return {}; }, [template]); diff --git a/src/frontend/src/components/forms/fields/ApiFormField.tsx b/src/frontend/src/components/forms/fields/ApiFormField.tsx index 39890bacd5..3e0147bd45 100644 --- a/src/frontend/src/components/forms/fields/ApiFormField.tsx +++ b/src/frontend/src/components/forms/fields/ApiFormField.tsx @@ -10,6 +10,7 @@ import { isTrue } from '../../../functions/conversion'; import { ChoiceField } from './ChoiceField'; import DateField from './DateField'; import { DependentField } from './DependentField'; +import IconField from './IconField'; import { NestedObjectField } from './NestedObjectField'; import { RelatedModelField } from './RelatedModelField'; import { TableField } from './TableField'; @@ -58,6 +59,7 @@ export type ApiFormFieldType = { | 'email' | 'url' | 'string' + | 'icon' | 'boolean' | 'date' | 'datetime' @@ -223,6 +225,10 @@ export function ApiFormField({ onChange={onChange} /> ); + case 'icon': + return ( + + ); case 'boolean': return ( ; + definition: ApiFormFieldType; +}>) { + const { + field, + fieldState: { error } + } = controller; + + const { value } = field; + + const [open, setOpen] = useState(false); + const combobox = useCombobox({ + onOpenedChange: (opened) => setOpen(opened) + }); + + return ( + + + e.preventDefault()} + onClick={() => field.onChange(null)} + /> + ) : ( + + ) + } + onClick={() => combobox.toggleDropdown()} + rightSectionPointerEvents={value === null ? 'none' : 'all'} + > + {field.value ? ( + + + + {field.value} + + + ) : ( + + No icon selected + + )} + + + + + + + + ); +} + +type RenderIconType = { + package: string; + name: string; + tags: string[]; + category: string; + variant: string; +}; + +function ComboboxDropdown({ + definition, + value, + combobox, + onChange, + open +}: Readonly<{ + definition: ApiFormFieldType; + value: null | string; + combobox: ComboboxStore; + onChange: (newVal: string | null) => void; + open: boolean; +}>) { + const iconPacks = useIconState((s) => s.packages); + const icons = useMemo(() => { + return iconPacks.flatMap((pack) => + Object.entries(pack.icons).flatMap(([name, icon]) => + Object.entries(icon.variants).map(([variant]) => ({ + package: pack.prefix, + name: `${pack.prefix}:${name}:${variant}`, + tags: icon.tags, + category: icon.category, + variant: variant + })) + ) + ); + }, [iconPacks]); + const filter = useMemo( + () => + new Fuse(icons, { + threshold: 0.2, + keys: ['name', 'tags', 'category', 'variant'] + }), + [icons] + ); + + const [searchValue, setSearchValue] = useState(''); + const [debouncedSearchValue] = useDebouncedValue(searchValue, 200); + const [category, setCategory] = useState(null); + const [pack, setPack] = useState(null); + + const categories = useMemo( + () => + Array.from( + new Set( + icons + .filter((i) => (pack !== null ? i.package === pack : true)) + .map((i) => i.category) + ) + ).map((x) => + x === '' + ? { value: '', label: t`Uncategorized` } + : { value: x, label: x } + ), + [icons, pack] + ); + const packs = useMemo( + () => iconPacks.map((pack) => ({ value: pack.prefix, label: pack.name })), + [iconPacks] + ); + + const applyFilters = ( + iconList: RenderIconType[], + category: string | null, + pack: string | null + ) => { + if (category === null && pack === null) return iconList; + return iconList.filter( + (i) => + (category !== null ? i.category === category : true) && + (pack !== null ? i.package === pack : true) + ); + }; + + const filteredIcons = useMemo(() => { + if (!debouncedSearchValue) { + return applyFilters(icons, category, pack); + } + + const res = filter.search(debouncedSearchValue.trim()).map((r) => r.item); + + return applyFilters(res, category, pack); + }, [debouncedSearchValue, filter, category, pack]); + + // Reset category when pack changes and the current category is not available in the new pack + useEffect(() => { + if (value === null) return; + + if (!categories.find((c) => c.value === category)) { + setCategory(null); + } + }, [pack]); + + const { width, ref } = useElementSize(); + + return ( + + + setSearchValue(e.currentTarget.value)} + placeholder={t`Search...`} + rightSection={ + searchValue && !definition.required ? ( + setSearchValue('')} /> + ) : null + } + flex={1} + /> + startTransition(() => setPack(c))} + data={packs} + comboboxProps={{ withinPortal: false }} + clearable + placeholder={t`Select pack`} + /> + + + + {filteredIcons.length} icons + + + + + ); +} + +function DropdownList({ + icons, + onChange, + combobox, + value, + width, + open +}: Readonly<{ + icons: RenderIconType[]; + onChange: (newVal: string | null) => void; + combobox: ComboboxStore; + value: string | null; + width: number; + open: boolean; +}>) { + // Get the inner width of the dropdown (excluding the scrollbar) by using the outerRef provided by the react-window Grid element + const { width: innerWidth, ref: innerRef } = useElementSize(); + + const columnCount = Math.floor(innerWidth / 35); + const rowCount = columnCount > 0 ? Math.ceil(icons.length / columnCount) : 0; + + const gridRef = useRef(null); + const hasScrolledToPositionRef = useRef(true); + + // Reset the has already scrolled to position state when the dropdown open state is changed + useEffect(() => { + const timeoutId = setTimeout(() => { + hasScrolledToPositionRef.current = false; + }, 100); + + return () => clearTimeout(timeoutId); + }, [open]); + + // Scroll to the selected icon if not already has scrolled to position + useEffect(() => { + // Do not scroll if the value is not set, columnCount is not set, the dropdown is not open, or the position has already been scrolled to + if ( + !value || + columnCount === 0 || + hasScrolledToPositionRef.current || + !open + ) + return; + + const iconIdx = icons.findIndex((i) => i.name === value); + if (iconIdx === -1) return; + + gridRef.current?.scrollToItem({ + align: 'start', + rowIndex: Math.floor(iconIdx / columnCount) + }); + hasScrolledToPositionRef.current = true; + }, [value, columnCount, open]); + + return ( + + {({ columnIndex, rowIndex, data, style }) => { + const icon = data[rowIndex * columnCount + columnIndex]; + + // Grid has empty cells in the last row if the number of icons is not a multiple of columnCount + if (icon === undefined) return null; + + const isSelected = value === icon.name; + + return ( + { + onChange(isSelected ? null : icon.name); + combobox.closeDropdown(); + }} + style={{ + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + cursor: 'pointer', + background: isSelected + ? 'var(--mantine-color-blue-filled)' + : 'unset', + borderRadius: 'var(--mantine-radius-default)', + ...style + }} + > + + + ); + }} + + ); +} diff --git a/src/frontend/src/components/items/ApiIcon.css.ts b/src/frontend/src/components/items/ApiIcon.css.ts new file mode 100644 index 0000000000..58e65fc4eb --- /dev/null +++ b/src/frontend/src/components/items/ApiIcon.css.ts @@ -0,0 +1,13 @@ +import { style } from '@vanilla-extract/css'; + +export const icon = style({ + fontStyle: 'normal', + fontWeight: 'normal', + fontVariant: 'normal', + textTransform: 'none', + lineHeight: 1, + width: 'fit-content', + // Better font rendering + WebkitFontSmoothing: 'antialiased', + MozOsxFontSmoothing: 'grayscale' +}); diff --git a/src/frontend/src/components/items/ApiIcon.tsx b/src/frontend/src/components/items/ApiIcon.tsx new file mode 100644 index 0000000000..a41dd0eae0 --- /dev/null +++ b/src/frontend/src/components/items/ApiIcon.tsx @@ -0,0 +1,27 @@ +import { useIconState } from '../../states/IconState'; +import * as classes from './ApiIcon.css'; + +type ApiIconProps = { + name: string; + size?: number; +}; + +export const ApiIcon = ({ name: _name, size = 22 }: ApiIconProps) => { + const [iconPackage, name, variant] = _name.split(':'); + const icon = useIconState( + (s) => s.packagesMap[iconPackage]?.['icons'][name]?.['variants'][variant] + ); + const unicode = icon ? String.fromCodePoint(parseInt(icon, 16)) : ''; + + return ( + + {unicode} + + ); +}; diff --git a/src/frontend/src/components/nav/BreadcrumbList.tsx b/src/frontend/src/components/nav/BreadcrumbList.tsx index b6cac77bff..5302ed194e 100644 --- a/src/frontend/src/components/nav/BreadcrumbList.tsx +++ b/src/frontend/src/components/nav/BreadcrumbList.tsx @@ -14,6 +14,7 @@ import { identifierString } from '../../functions/conversion'; import { navigateToLink } from '../../functions/navigation'; export type Breadcrumb = { + icon?: React.ReactNode; name: string; url: string; }; @@ -69,7 +70,10 @@ export function BreadcrumbList({ navigateToLink(breadcrumb.url, navigate, event) } > - {breadcrumb.name} + + {breadcrumb.icon} + {breadcrumb.name} + ); })} diff --git a/src/frontend/src/components/nav/NavigationTree.tsx b/src/frontend/src/components/nav/NavigationTree.tsx index d3a102706b..ceb166cf0c 100644 --- a/src/frontend/src/components/nav/NavigationTree.tsx +++ b/src/frontend/src/components/nav/NavigationTree.tsx @@ -15,7 +15,6 @@ import { import { IconChevronDown, IconChevronRight, - IconPoint, IconSitemap } from '@tabler/icons-react'; import { useQuery } from '@tanstack/react-query'; @@ -28,6 +27,7 @@ import { ModelType } from '../../enums/ModelType'; import { navigateToLink } from '../../functions/navigation'; import { getDetailUrl } from '../../functions/urls'; import { apiUrl } from '../../states/ApiState'; +import { ApiIcon } from '../items/ApiIcon'; import { StylishText } from '../items/StylishText'; /* @@ -100,7 +100,12 @@ export default function NavigationTree({ let node = { ...query.data[ii], children: [], - label: query.data[ii].name, + label: ( + + + {query.data[ii].name} + + ), value: query.data[ii].pk.toString(), selected: query.data[ii].pk === selectedId }; @@ -157,9 +162,7 @@ export default function NavigationTree({ ) : ( ) - ) : ( - - )} + ) : null} follow(payload.node, event)} diff --git a/src/frontend/src/components/nav/PageDetail.tsx b/src/frontend/src/components/nav/PageDetail.tsx index a6584cb0dd..d3f3d50478 100644 --- a/src/frontend/src/components/nav/PageDetail.tsx +++ b/src/frontend/src/components/nav/PageDetail.tsx @@ -7,6 +7,7 @@ import { Breadcrumb, BreadcrumbList } from './BreadcrumbList'; interface PageDetailInterface { title?: string; + icon?: ReactNode; subtitle?: string; imageUrl?: string; detail?: ReactNode; @@ -24,6 +25,7 @@ interface PageDetailInterface { */ export function PageDetail({ title, + icon, subtitle, detail, badges, @@ -50,9 +52,12 @@ export function PageDetail({ {title && {title}} {subtitle && ( - - {subtitle} - + + {icon} + + {subtitle} + + )} diff --git a/src/frontend/src/components/render/Instance.tsx b/src/frontend/src/components/render/Instance.tsx index 96a91d3a0e..6e3203c977 100644 --- a/src/frontend/src/components/render/Instance.tsx +++ b/src/frontend/src/components/render/Instance.tsx @@ -151,6 +151,7 @@ export function RenderRemoteInstance({ export function RenderInlineModel({ primary, secondary, + prefix, suffix, image, labels, @@ -161,6 +162,7 @@ export function RenderInlineModel({ primary: string; secondary?: string; showSecondary?: boolean; + prefix?: ReactNode; suffix?: ReactNode; image?: string; labels?: string[]; @@ -181,6 +183,7 @@ export function RenderInlineModel({ return ( + {prefix} {image && } {url ? ( onClick(event)}> diff --git a/src/frontend/src/components/render/Part.tsx b/src/frontend/src/components/render/Part.tsx index 877f2f385a..87ad95759d 100644 --- a/src/frontend/src/components/render/Part.tsx +++ b/src/frontend/src/components/render/Part.tsx @@ -4,6 +4,7 @@ import { ReactNode } from 'react'; import { ModelType } from '../../enums/ModelType'; import { getDetailUrl } from '../../functions/urls'; +import { ApiIcon } from '../items/ApiIcon'; import { InstanceRenderInterface, RenderInlineModel } from './Instance'; /** @@ -60,6 +61,7 @@ export function RenderPartCategory( return ( } primary={`${lvl} ${instance.name}`} secondary={instance.description} url={ diff --git a/src/frontend/src/components/render/Stock.tsx b/src/frontend/src/components/render/Stock.tsx index 1af29e0f23..f656c10492 100644 --- a/src/frontend/src/components/render/Stock.tsx +++ b/src/frontend/src/components/render/Stock.tsx @@ -3,6 +3,7 @@ import { ReactNode } from 'react'; import { ModelType } from '../../enums/ModelType'; import { getDetailUrl } from '../../functions/urls'; +import { ApiIcon } from '../items/ApiIcon'; import { InstanceRenderInterface, RenderInlineModel } from './Instance'; /** @@ -16,6 +17,7 @@ export function RenderStockLocation( return ( } primary={instance.name} secondary={instance.description} url={ @@ -36,7 +38,7 @@ export function RenderStockLocationType({ return ( } secondary={instance.description + ` (${instance.location_count})`} /> ); diff --git a/src/frontend/src/enums/ApiEndpoints.tsx b/src/frontend/src/enums/ApiEndpoints.tsx index 7a238d476a..e6a211eeff 100644 --- a/src/frontend/src/enums/ApiEndpoints.tsx +++ b/src/frontend/src/enums/ApiEndpoints.tsx @@ -47,6 +47,7 @@ export enum ApiEndpoints { sso_providers = 'auth/providers/', group_list = 'user/group/', owner_list = 'user/owner/', + icons = 'icons/', // Data import endpoints import_session_list = 'importer/session/', diff --git a/src/frontend/src/forms/PartForms.tsx b/src/frontend/src/forms/PartForms.tsx index f536f7cee0..b6145ab553 100644 --- a/src/frontend/src/forms/PartForms.tsx +++ b/src/frontend/src/forms/PartForms.tsx @@ -132,7 +132,9 @@ export function partCategoryFields(): ApiFormFieldSet { }, default_keywords: {}, structural: {}, - icon: {} + icon: { + field_type: 'icon' + } }; return fields; diff --git a/src/frontend/src/forms/StockForms.tsx b/src/frontend/src/forms/StockForms.tsx index 4a937b98a6..fb44f68917 100644 --- a/src/frontend/src/forms/StockForms.tsx +++ b/src/frontend/src/forms/StockForms.tsx @@ -909,7 +909,9 @@ export function stockLocationFields(): ApiFormFieldSet { description: {}, structural: {}, external: {}, - custom_icon: {}, + custom_icon: { + field_type: 'icon' + }, location_type: {} }; diff --git a/src/frontend/src/pages/part/CategoryDetail.tsx b/src/frontend/src/pages/part/CategoryDetail.tsx index 7326a27638..d135805942 100644 --- a/src/frontend/src/pages/part/CategoryDetail.tsx +++ b/src/frontend/src/pages/part/CategoryDetail.tsx @@ -1,5 +1,5 @@ import { t } from '@lingui/macro'; -import { LoadingOverlay, Skeleton, Stack, Text } from '@mantine/core'; +import { Group, LoadingOverlay, Skeleton, Stack, Text } from '@mantine/core'; import { IconCategory, IconDots, @@ -18,6 +18,7 @@ import { DeleteItemAction, EditItemAction } from '../../components/items/ActionDropdown'; +import { ApiIcon } from '../../components/items/ApiIcon'; import InstanceDetail from '../../components/nav/InstanceDetail'; import NavigationTree from '../../components/nav/NavigationTree'; import { PageDetail } from '../../components/nav/PageDetail'; @@ -78,7 +79,13 @@ export default function CategoryDetail() { type: 'text', name: 'name', label: t`Name`, - copy: true + copy: true, + value_formatter: () => ( + + {category.icon && } + {category.name} + + ) }, { type: 'text', @@ -267,7 +274,8 @@ export default function CategoryDetail() { { name: t`Parts`, url: '/part' }, ...(category.path ?? []).map((c: any) => ({ name: c.name, - url: getDetailUrl(ModelType.partcategory, c.pk) + url: getDetailUrl(ModelType.partcategory, c.pk), + icon: c.icon ? : undefined })) ], [category] @@ -296,6 +304,7 @@ export default function CategoryDetail() { } breadcrumbs={breadcrumbs} breadcrumbAction={() => { setTreeOpen(true); diff --git a/src/frontend/src/pages/stock/LocationDetail.tsx b/src/frontend/src/pages/stock/LocationDetail.tsx index 924f3f92f1..3d2b405114 100644 --- a/src/frontend/src/pages/stock/LocationDetail.tsx +++ b/src/frontend/src/pages/stock/LocationDetail.tsx @@ -1,5 +1,5 @@ import { t } from '@lingui/macro'; -import { Skeleton, Stack, Text } from '@mantine/core'; +import { Group, Skeleton, Stack, Text } from '@mantine/core'; import { IconDots, IconInfoCircle, @@ -23,6 +23,7 @@ import { UnlinkBarcodeAction, ViewBarcodeAction } from '../../components/items/ActionDropdown'; +import { ApiIcon } from '../../components/items/ApiIcon'; import InstanceDetail from '../../components/nav/InstanceDetail'; import NavigationTree from '../../components/nav/NavigationTree'; import { PageDetail } from '../../components/nav/PageDetail'; @@ -85,7 +86,13 @@ export default function Stock() { type: 'text', name: 'name', label: t`Name`, - copy: true + copy: true, + value_formatter: () => ( + + {location.icon && } + {location.name} + + ) }, { type: 'text', @@ -352,7 +359,8 @@ export default function Stock() { { name: t`Stock`, url: '/stock' }, ...(location.path ?? []).map((l: any) => ({ name: l.name, - url: getDetailUrl(ModelType.stocklocation, l.pk) + url: getDetailUrl(ModelType.stocklocation, l.pk), + icon: l.icon ? : undefined })) ], [location] @@ -378,6 +386,7 @@ export default function Stock() { } actions={locationActions} breadcrumbs={breadcrumbs} breadcrumbAction={() => { diff --git a/src/frontend/src/states/IconState.tsx b/src/frontend/src/states/IconState.tsx new file mode 100644 index 0000000000..2990c44482 --- /dev/null +++ b/src/frontend/src/states/IconState.tsx @@ -0,0 +1,68 @@ +import { create } from 'zustand'; + +import { api } from '../App'; +import { ApiEndpoints } from '../enums/ApiEndpoints'; +import { apiUrl } from './ApiState'; +import { useLocalState } from './LocalState'; + +type IconPackage = { + name: string; + prefix: string; + fonts: Record; + icons: Record< + string, + { + name: string; + category: string; + tags: string[]; + variants: Record; + } + >; +}; + +type IconState = { + hasLoaded: boolean; + packages: IconPackage[]; + packagesMap: Record; + fetchIcons: () => Promise; +}; + +export const useIconState = create()((set, get) => ({ + hasLoaded: false, + packages: [], + packagesMap: {}, + fetchIcons: async () => { + if (get().hasLoaded) return; + + const host = useLocalState.getState().host; + + const packs = await api.get(apiUrl(ApiEndpoints.icons)); + + await Promise.all( + packs.data.map(async (pack: any) => { + const fontName = `inventree-icon-font-${pack.prefix}`; + const src = Object.entries(pack.fonts as Record) + .map( + ([format, url]) => + `url(${ + url.startsWith('/') ? host + url : url + }) format("${format}")` + ) + .join(',\n'); + const font = new FontFace(fontName, src + ';'); + await font.load(); + document.fonts.add(font); + + return font; + }) + ); + + set({ + hasLoaded: true, + packages: packs.data, + packagesMap: Object.fromEntries( + packs.data.map((pack: any) => [pack.prefix, pack]) + ) + }); + } +})); diff --git a/src/frontend/src/states/states.tsx b/src/frontend/src/states/states.tsx index dfe4ed93c9..d3bf6e14f3 100644 --- a/src/frontend/src/states/states.tsx +++ b/src/frontend/src/states/states.tsx @@ -1,5 +1,6 @@ import { setApiDefaults } from '../App'; import { useServerApiState } from './ApiState'; +import { useIconState } from './IconState'; import { useGlobalSettingsState, useUserSettingsState } from './SettingsState'; import { useGlobalStatusState } from './StatusState'; import { useUserState } from './UserState'; @@ -138,4 +139,5 @@ export function fetchGlobalStates() { useUserSettingsState.getState().fetchSettings(); useGlobalSettingsState.getState().fetchSettings(); useGlobalStatusState.getState().fetchStatus(); + useIconState.getState().fetchIcons(); } diff --git a/src/frontend/src/tables/part/PartCategoryTable.tsx b/src/frontend/src/tables/part/PartCategoryTable.tsx index f41a09b5ab..b829ff892a 100644 --- a/src/frontend/src/tables/part/PartCategoryTable.tsx +++ b/src/frontend/src/tables/part/PartCategoryTable.tsx @@ -1,8 +1,10 @@ import { t } from '@lingui/macro'; +import { Group } from '@mantine/core'; import { useCallback, useMemo, useState } from 'react'; import { AddItemButton } from '../../components/buttons/AddItemButton'; import { YesNoButton } from '../../components/buttons/YesNoButton'; +import { ApiIcon } from '../../components/items/ApiIcon'; import { ApiEndpoints } from '../../enums/ApiEndpoints'; import { ModelType } from '../../enums/ModelType'; import { UserRoles } from '../../enums/Roles'; @@ -32,7 +34,13 @@ export function PartCategoryTable({ parentId }: { parentId?: any }) { { accessor: 'name', sortable: true, - switchable: false + switchable: false, + render: (record: any) => ( + + {record.icon && } + {record.name} + + ) }, DescriptionColumn({}), { diff --git a/src/frontend/src/tables/stock/LocationTypesTable.tsx b/src/frontend/src/tables/stock/LocationTypesTable.tsx index c2b5afcae5..aa4983f9d4 100644 --- a/src/frontend/src/tables/stock/LocationTypesTable.tsx +++ b/src/frontend/src/tables/stock/LocationTypesTable.tsx @@ -3,6 +3,7 @@ import { useCallback, useMemo, useState } from 'react'; import { AddItemButton } from '../../components/buttons/AddItemButton'; import { ApiFormFieldSet } from '../../components/forms/fields/ApiFormField'; +import { ApiIcon } from '../../components/items/ApiIcon'; import { ApiEndpoints } from '../../enums/ApiEndpoints'; import { UserRoles } from '../../enums/Roles'; import { @@ -25,7 +26,9 @@ export default function LocationTypesTable() { return { name: {}, description: {}, - icon: {} + icon: { + field_type: 'icon' + } }; }, []); @@ -55,6 +58,12 @@ export default function LocationTypesTable() { const tableColumns: TableColumn[] = useMemo(() => { return [ + { + accessor: 'icon', + title: t`Icon`, + sortable: true, + render: (value: any) => + }, { accessor: 'name', title: t`Name`, @@ -64,11 +73,6 @@ export default function LocationTypesTable() { accessor: 'description', title: t`Description` }, - { - accessor: 'icon', - title: t`Icon`, - sortable: true - }, { accessor: 'location_count', sortable: true diff --git a/src/frontend/src/tables/stock/StockLocationTable.tsx b/src/frontend/src/tables/stock/StockLocationTable.tsx index 3b6c61ec4e..5e60330b44 100644 --- a/src/frontend/src/tables/stock/StockLocationTable.tsx +++ b/src/frontend/src/tables/stock/StockLocationTable.tsx @@ -1,7 +1,9 @@ import { t } from '@lingui/macro'; +import { Group } from '@mantine/core'; import { useCallback, useMemo, useState } from 'react'; import { AddItemButton } from '../../components/buttons/AddItemButton'; +import { ApiIcon } from '../../components/items/ApiIcon'; import { ApiEndpoints } from '../../enums/ApiEndpoints'; import { ModelType } from '../../enums/ModelType'; import { UserRoles } from '../../enums/Roles'; @@ -69,7 +71,13 @@ export function StockLocationTable({ parentId }: { parentId?: any }) { return [ { accessor: 'name', - switchable: false + switchable: false, + render: (record: any) => ( + + {record.icon && } + {record.name} + + ) }, DescriptionColumn({}), { diff --git a/src/frontend/yarn.lock b/src/frontend/yarn.lock index 3a2772ee63..71490a4f84 100644 --- a/src/frontend/yarn.lock +++ b/src/frontend/yarn.lock @@ -335,6 +335,13 @@ "@babel/plugin-transform-modules-commonjs" "^7.24.7" "@babel/plugin-transform-typescript" "^7.24.7" +"@babel/runtime@^7.0.0": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.8.tgz#5d958c3827b13cc6d05e038c07fb2e5e3420d82e" + integrity sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA== + dependencies: + regenerator-runtime "^0.14.0" + "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.14.8", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.6", "@babel/runtime@^7.20.13", "@babel/runtime@^7.21.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.7": version "7.24.6" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.6.tgz#5b76eb89ad45e2e4a0a8db54c456251469a3358e" @@ -2634,6 +2641,13 @@ dependencies: "@types/react" "*" +"@types/react-window@^1.8.8": + version "1.8.8" + resolved "https://registry.yarnpkg.com/@types/react-window/-/react-window-1.8.8.tgz#c20645414d142364fbe735818e1c1e0a145696e3" + integrity sha512-8Ls660bHR1AUA2kuRvVG9D/4XpRC6wjAaPT9dil7Ckc76eP9TKWZwwmgfq8Q1LANX3QNDnoU4Zp48A3w+zK69Q== + dependencies: + "@types/react" "*" + "@types/react@*", "@types/react@^18.3.3": version "18.3.3" resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.3.tgz#9679020895318b0915d7a3ab004d92d33375c45f" @@ -3845,6 +3859,11 @@ function-bind@^1.1.2: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== +fuse.js@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-7.0.0.tgz#6573c9fcd4c8268e403b4fc7d7131ffcf99a9eb2" + integrity sha512-14F4hBIxqKvD4Zz/XjDc3y94mNZN6pRv3U13Udo0lNLCWRBUsrMv2xwcF/y/Z5sV6+FQW+/ow68cHpm4sunt8Q== + gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" @@ -4538,6 +4557,11 @@ media-query-parser@^2.0.2: dependencies: "@babel/runtime" "^7.12.5" +"memoize-one@>=3.1.1 <6": + version "5.2.1" + resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.2.1.tgz#8337aa3c4335581839ec01c3d594090cebe8f00e" + integrity sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q== + memoize-one@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-6.0.0.tgz#b2591b871ed82948aee4727dc6abceeeac8c1045" @@ -5511,6 +5535,14 @@ react-transition-group@4.4.5, react-transition-group@^4.3.0, react-transition-gr loose-envify "^1.4.0" prop-types "^15.6.2" +react-window@^1.8.10: + version "1.8.10" + resolved "https://registry.yarnpkg.com/react-window/-/react-window-1.8.10.tgz#9e6b08548316814b443f7002b1cf8fd3a1bdde03" + integrity sha512-Y0Cx+dnU6NLa5/EvoHukUD0BklJ8qITCtVEPY1C/nL8wwoZ0b5aEw8Ff1dOVHw7fCzMt55XfJDd8S8W8LCaUCg== + dependencies: + "@babel/runtime" "^7.0.0" + memoize-one ">=3.1.1 <6" + react@^18.2.0, react@^18.3.1: version "18.3.1" resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891" From 3599a04cbf6212e62d70200ebeb1797c7755e958 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Jul 2024 14:09:14 +1000 Subject: [PATCH 04/55] Bump eslint from 9.5.0 to 9.7.0 in /src/backend (#7710) Bumps [eslint](https://github.com/eslint/eslint) from 9.5.0 to 9.7.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v9.5.0...v9.7.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/backend/package-lock.json | 58 +++++++++++++++++------------------ src/backend/package.json | 2 +- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/backend/package-lock.json b/src/backend/package-lock.json index f0a3461ade..0023f7f4bd 100644 --- a/src/backend/package-lock.json +++ b/src/backend/package-lock.json @@ -5,7 +5,7 @@ "packages": { "": { "dependencies": { - "eslint": "^9.5.0", + "eslint": "^9.7.0", "eslint-config-google": "^0.14.0" } }, @@ -43,21 +43,21 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/config-array": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.16.0.tgz", - "integrity": "sha512-/jmuSd74i4Czf1XXn7wGRWZCuyaUZ330NH1Bek0Pplatt4Sy1S5haN21SCLLdbeKslQ+S0wEJ+++v5YibSi+Lg==", + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.17.1.tgz", + "integrity": "sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==", "dependencies": { "@eslint/object-schema": "^2.1.4", "debug": "^4.3.1", - "minimatch": "^3.0.5" + "minimatch": "^3.1.2" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -86,9 +86,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.5.0.tgz", - "integrity": "sha512-A7+AOT2ICkodvtsWnxZP4Xxk3NbZ3VMHd8oihydLRGrJgqqdEz1qSeEgXYyT/Cu8h1TWWsQRejIx48mtjZ5y1w==", + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.7.0.tgz", + "integrity": "sha512-ChuWDQenef8OSFnvuxv0TCVxEwmu3+hPNKvM9B34qpM0rDRbjL8t5QkQeHHeAfsKQjuH9wS82WeCi1J/owatng==", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } @@ -158,9 +158,9 @@ } }, "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "bin": { "acorn": "bin/acorn" }, @@ -322,15 +322,15 @@ } }, "node_modules/eslint": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.5.0.tgz", - "integrity": "sha512-+NAOZFrW/jFTS3dASCGBxX1pkFD0/fsO+hfAkJ4TyYKwgsXZbqzrw+seCYFCcPCYXvnD67tAnglU7GQTz6kcVw==", + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.7.0.tgz", + "integrity": "sha512-FzJ9D/0nGiCGBf8UXO/IGLTgLVzIxze1zpfA8Ton2mjLovXdAPlYDv+MQDcqj3TmrhAGYfOpz9RfR+ent0AgAw==", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/config-array": "^0.16.0", + "@eslint-community/regexpp": "^4.11.0", + "@eslint/config-array": "^0.17.0", "@eslint/eslintrc": "^3.1.0", - "@eslint/js": "9.5.0", + "@eslint/js": "9.7.0", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.3.0", "@nodelib/fs.walk": "^1.2.8", @@ -339,9 +339,9 @@ "cross-spawn": "^7.0.2", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.0.1", + "eslint-scope": "^8.0.2", "eslint-visitor-keys": "^4.0.0", - "espree": "^10.0.1", + "espree": "^10.1.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -383,9 +383,9 @@ } }, "node_modules/eslint-scope": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.1.tgz", - "integrity": "sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.2.tgz", + "integrity": "sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -409,11 +409,11 @@ } }, "node_modules/espree": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.0.1.tgz", - "integrity": "sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.1.0.tgz", + "integrity": "sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==", "dependencies": { - "acorn": "^8.11.3", + "acorn": "^8.12.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^4.0.0" }, diff --git a/src/backend/package.json b/src/backend/package.json index 6a36da710d..af77f35b2e 100644 --- a/src/backend/package.json +++ b/src/backend/package.json @@ -1,6 +1,6 @@ { "dependencies": { - "eslint": "^9.5.0", + "eslint": "^9.7.0", "eslint-config-google": "^0.14.0" }, "type": "module" From b10a20d1ef6140f84cb0853a36e98cee50d2090b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Jul 2024 14:09:36 +1000 Subject: [PATCH 05/55] Bump the dependencies group with 5 updates (#7712) Bumps the dependencies group with 5 updates: | Package | From | To | | --- | --- | --- | | [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) | `3.1.0` | `3.2.0` | | [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) | `3.4.0` | `3.5.0` | | [docker/login-action](https://github.com/docker/login-action) | `3.2.0` | `3.3.0` | | [docker/build-push-action](https://github.com/docker/build-push-action) | `6.4.0` | `6.5.0` | | [github/codeql-action](https://github.com/github/codeql-action) | `3.25.12` | `3.25.13` | Updates `docker/setup-qemu-action` from 3.1.0 to 3.2.0 - [Release notes](https://github.com/docker/setup-qemu-action/releases) - [Commits](https://github.com/docker/setup-qemu-action/compare/5927c834f5b4fdf503fca6f4c7eccda82949e1ee...49b3bc8e6bdd4a60e6116a5414239cba5943d3cf) Updates `docker/setup-buildx-action` from 3.4.0 to 3.5.0 - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](https://github.com/docker/setup-buildx-action/compare/4fd812986e6c8c2a69e18311145f9371337f27d4...aa33708b10e362ff993539393ff100fa93ed6a27) Updates `docker/login-action` from 3.2.0 to 3.3.0 - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/0d4c9c5ea7693da7b068278f7b52bda2a190a446...9780b0c442fbb1117ed29e0efdff1e18412f7567) Updates `docker/build-push-action` from 6.4.0 to 6.5.0 - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/a254f8ca60a858f3136a2f1f23a60969f2c402dd...5176d81f87c23d6fc96624dfdbcd9f3830bbe445) Updates `github/codeql-action` from 3.25.12 to 3.25.13 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/4fa2a7953630fd2f3fb380f21be14ede0169dd4f...2d790406f505036ef40ecba973cc774a50395aac) --- updated-dependencies: - dependency-name: docker/setup-qemu-action dependency-type: direct:production update-type: version-update:semver-minor dependency-group: dependencies - dependency-name: docker/setup-buildx-action dependency-type: direct:production update-type: version-update:semver-minor dependency-group: dependencies - dependency-name: docker/login-action dependency-type: direct:production update-type: version-update:semver-minor dependency-group: dependencies - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor dependency-group: dependencies - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docker.yaml | 10 +++++----- .github/workflows/scorecard.yaml | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml index 858c3da60d..860e494073 100644 --- a/.github/workflows/docker.yaml +++ b/.github/workflows/docker.yaml @@ -124,10 +124,10 @@ jobs: rm -rf InvenTree/_testfolder - name: Set up QEMU if: github.event_name != 'pull_request' - uses: docker/setup-qemu-action@5927c834f5b4fdf503fca6f4c7eccda82949e1ee # pin@v3.1.0 + uses: docker/setup-qemu-action@49b3bc8e6bdd4a60e6116a5414239cba5943d3cf # pin@v3.2.0 - name: Set up Docker Buildx if: github.event_name != 'pull_request' - uses: docker/setup-buildx-action@4fd812986e6c8c2a69e18311145f9371337f27d4 # pin@v3.4.0 + uses: docker/setup-buildx-action@aa33708b10e362ff993539393ff100fa93ed6a27 # pin@v3.5.0 - name: Set up cosign if: github.event_name != 'pull_request' uses: sigstore/cosign-installer@59acb6260d9c0ba8f4a2f9d9b48431a222b68e20 # pin@v3.5.0 @@ -141,14 +141,14 @@ jobs: fi - name: Login to Dockerhub if: github.event_name != 'pull_request' && steps.docker_login.outputs.skip_dockerhub_login != 'true' - uses: docker/login-action@0d4c9c5ea7693da7b068278f7b52bda2a190a446 # pin@v3.2.0 + uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # pin@v3.3.0 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Log into registry ghcr.io if: github.event_name != 'pull_request' - uses: docker/login-action@0d4c9c5ea7693da7b068278f7b52bda2a190a446 # pin@v3.2.0 + uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # pin@v3.3.0 with: registry: ghcr.io username: ${{ github.actor }} @@ -166,7 +166,7 @@ jobs: - name: Push Docker Images id: push-docker if: github.event_name != 'pull_request' - uses: docker/build-push-action@a254f8ca60a858f3136a2f1f23a60969f2c402dd # pin@v6.4.0 + uses: docker/build-push-action@5176d81f87c23d6fc96624dfdbcd9f3830bbe445 # pin@v6.5.0 with: context: . file: ./contrib/container/Dockerfile diff --git a/.github/workflows/scorecard.yaml b/.github/workflows/scorecard.yaml index d423f608c5..86d474fe44 100644 --- a/.github/workflows/scorecard.yaml +++ b/.github/workflows/scorecard.yaml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@4fa2a7953630fd2f3fb380f21be14ede0169dd4f # v3.25.12 + uses: github/codeql-action/upload-sarif@2d790406f505036ef40ecba973cc774a50395aac # v3.25.13 with: sarif_file: results.sarif From 4edea65e003b67539246eeecfe1629ba3cfe301c Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Thu, 25 Jul 2024 13:55:49 +0200 Subject: [PATCH 06/55] Make libffi version more flexible (#7734) * Make libffi version more flexible Can not install on debian 12 Fixes #6036 * target v11 packaging on v12 install we are only targeting one version per debian / ubuntu channel. This should not present a problem --- .pkgr.yml | 2 +- contrib/install.sh | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.pkgr.yml b/.pkgr.yml index 970723ef9d..405911adb4 100644 --- a/.pkgr.yml +++ b/.pkgr.yml @@ -35,7 +35,7 @@ dependencies: - gettext - nginx - jq - - libffi7 + - "libffi7 | libffi8" targets: ubuntu-20.04: true debian-11: true diff --git a/contrib/install.sh b/contrib/install.sh index 3b432ae366..fc6b005960 100755 --- a/contrib/install.sh +++ b/contrib/install.sh @@ -75,6 +75,7 @@ root_command() { ;; "Debian GNU/Linux" | "debian gnu/linux" | Raspbian) if [[ $VER == "12" ]]; then + DIST_VER="11" SUPPORTED=true elif [[ $VER == "11" ]]; then SUPPORTED=true From 43656d66d949790f3865e79a54e4dd1f4b60ef12 Mon Sep 17 00:00:00 2001 From: Lukas <76838159+wolflu05@users.noreply.github.com> Date: Fri, 26 Jul 2024 02:21:09 +0200 Subject: [PATCH 07/55] try to fix tests (#7730) * debug migration * update django-test-migration * update django-test-migration * Revert debug changes to test_migrations.py * trigger: ci --- src/backend/requirements-dev.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/requirements-dev.txt b/src/backend/requirements-dev.txt index c22dad58b4..9d35cb9594 100644 --- a/src/backend/requirements-dev.txt +++ b/src/backend/requirements-dev.txt @@ -279,9 +279,9 @@ django-querycount==0.8.3 \ django-slowtests==1.1.1 \ --hash=sha256:3c6936d420c9df444ac03625b41d97de043c662bbde61fbcd33e4cd407d0c247 # via -r src/backend/requirements-dev.in -django-test-migrations==1.3.0 \ - --hash=sha256:b42edb1af481e08c9d91c95aa9b373e76e905a931bc19c086ec00a6cb936876e \ - --hash=sha256:b52b29475f9a1bcaa4512f2ec8fad08b5f470cf1cf522e86b7d950252fb6fbf1 +django-test-migrations==1.4.0 \ + --hash=sha256:294dff98f6d43d020d4046b971bac5339e7c71458a35e9ad6450c388fe16ed6b \ + --hash=sha256:f0c9c92864ed27d0c9a582e92056637e91227f54bd868a50cb9a1726668c563e # via -r src/backend/requirements-dev.in filelock==3.15.4 \ --hash=sha256:2207938cbc1844345cb01a5a95524dae30f0ce089eba5b00378295a17e3e90cb \ From 49a0f871d6c9173024afc7ffbe13a8fb23214150 Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Fri, 26 Jul 2024 02:26:51 +0200 Subject: [PATCH 08/55] Disable blank issues (#7732) --- .github/ISSUE_TEMPLATE/config.yml | 1 + 1 file changed, 1 insertion(+) create mode 100644 .github/ISSUE_TEMPLATE/config.yml diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000000..3ba13e0cec --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1 @@ +blank_issues_enabled: false From 86fb9f0a8c759928ae3349bb34ca572ad70918e4 Mon Sep 17 00:00:00 2001 From: mredpath2 <37279276+mredpath2@users.noreply.github.com> Date: Fri, 26 Jul 2024 10:27:53 +1000 Subject: [PATCH 09/55] Add substitute details to BOM export (#7563) * Included substitute IPN to BOM export * Added Part Revision to BOM export * removed trailing whitespace * Update test_bom_export.py Added Part Revision to test --------- Co-authored-by: Matthias Mair --- src/backend/InvenTree/part/admin.py | 3 +++ src/backend/InvenTree/part/bom.py | 8 ++++++++ src/backend/InvenTree/part/test_bom_export.py | 1 + 3 files changed, 12 insertions(+) diff --git a/src/backend/InvenTree/part/admin.py b/src/backend/InvenTree/part/admin.py index 7ca74d75bc..89a23cefcc 100644 --- a/src/backend/InvenTree/part/admin.py +++ b/src/backend/InvenTree/part/admin.py @@ -401,6 +401,9 @@ class BomItemResource(InvenTreeResource): part_ipn = Field( attribute='sub_part__IPN', column_name=_('Part IPN'), readonly=True ) + part_revision = Field( + attribute='sub_part__revision', column_name=_('Part Revision'), readonly=True + ) part_name = Field( attribute='sub_part__name', column_name=_('Part Name'), readonly=True ) diff --git a/src/backend/InvenTree/part/bom.py b/src/backend/InvenTree/part/bom.py index 88b67d17e0..d692b66ad9 100644 --- a/src/backend/InvenTree/part/bom.py +++ b/src/backend/InvenTree/part/bom.py @@ -117,6 +117,14 @@ def ExportBom( for bom_item in bom_items: substitutes = BomItemSubstitute.objects.filter(bom_item=bom_item) for s_idx, substitute in enumerate(substitutes): + """Create substitute part IPN column""" + name = f'{_("Substitute IPN")}{s_idx + 1}' + value = substitute.part.IPN + try: + substitute_cols[name].update({col_index: value}) + except KeyError: + substitute_cols[name] = {col_index: value} + """Create substitute part name column""" name = f'{_("Substitute Part")}{s_idx + 1}' value = substitute.part.name diff --git a/src/backend/InvenTree/part/test_bom_export.py b/src/backend/InvenTree/part/test_bom_export.py index 6913c43944..7702e94210 100644 --- a/src/backend/InvenTree/part/test_bom_export.py +++ b/src/backend/InvenTree/part/test_bom_export.py @@ -111,6 +111,7 @@ class BomExportTest(InvenTreeTestCase): 'Parent Name', 'Part ID', 'Part IPN', + 'Part Revision', 'Part Name', 'Description', 'Assembly', From f92d734d80610bafe37da23c8c34e6c6ac9051f6 Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 26 Jul 2024 15:28:44 +1000 Subject: [PATCH 10/55] [PUI] Add more barcode actions (#7741) - Add to ReturnOrder - Add to SalesOrder - Refactor for BuildOrder --- src/frontend/src/pages/build/BuildDetail.tsx | 5 ++--- .../src/pages/sales/ReturnOrderDetail.tsx | 20 ++++++++++++++++++- .../src/pages/sales/SalesOrderDetail.tsx | 20 ++++++++++++++++++- 3 files changed, 40 insertions(+), 5 deletions(-) diff --git a/src/frontend/src/pages/build/BuildDetail.tsx b/src/frontend/src/pages/build/BuildDetail.tsx index 87888c5655..b4caadabd6 100644 --- a/src/frontend/src/pages/build/BuildDetail.tsx +++ b/src/frontend/src/pages/build/BuildDetail.tsx @@ -24,6 +24,7 @@ import { ItemDetailsGrid } from '../../components/details/ItemDetails'; import NotesEditor from '../../components/editors/NotesEditor'; import { ActionDropdown, + BarcodeActionDropdown, CancelItemAction, DuplicateItemAction, EditItemAction, @@ -366,9 +367,7 @@ export default function BuildDetail() { const buildActions = useMemo(() => { return [ , - } + { return [ , + , { return [ , + , Date: Sat, 27 Jul 2024 20:39:52 +1000 Subject: [PATCH 11/55] New Crowdin updates (#7708) * updated translation base * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../InvenTree/locale/ar/LC_MESSAGES/django.po | 3698 +++++++++-------- .../InvenTree/locale/bg/LC_MESSAGES/django.po | 3698 +++++++++-------- .../InvenTree/locale/cs/LC_MESSAGES/django.po | 3668 ++++++++-------- .../InvenTree/locale/da/LC_MESSAGES/django.po | 3698 +++++++++-------- .../InvenTree/locale/de/LC_MESSAGES/django.po | 3666 ++++++++-------- .../InvenTree/locale/el/LC_MESSAGES/django.po | 3698 +++++++++-------- .../InvenTree/locale/en/LC_MESSAGES/django.po | 2390 +++++------ .../InvenTree/locale/es/LC_MESSAGES/django.po | 3698 +++++++++-------- .../locale/es_MX/LC_MESSAGES/django.po | 2390 +++++------ .../InvenTree/locale/et/LC_MESSAGES/django.po | 3698 +++++++++-------- .../InvenTree/locale/fa/LC_MESSAGES/django.po | 3698 +++++++++-------- .../InvenTree/locale/fi/LC_MESSAGES/django.po | 3698 +++++++++-------- .../InvenTree/locale/fr/LC_MESSAGES/django.po | 3688 ++++++++-------- .../InvenTree/locale/he/LC_MESSAGES/django.po | 3698 +++++++++-------- .../InvenTree/locale/hi/LC_MESSAGES/django.po | 3698 +++++++++-------- .../InvenTree/locale/hu/LC_MESSAGES/django.po | 3670 ++++++++-------- .../InvenTree/locale/id/LC_MESSAGES/django.po | 3698 +++++++++-------- .../InvenTree/locale/it/LC_MESSAGES/django.po | 3698 +++++++++-------- .../InvenTree/locale/ja/LC_MESSAGES/django.po | 3698 +++++++++-------- .../InvenTree/locale/ko/LC_MESSAGES/django.po | 3698 +++++++++-------- .../InvenTree/locale/lv/LC_MESSAGES/django.po | 3698 +++++++++-------- .../InvenTree/locale/nl/LC_MESSAGES/django.po | 3698 +++++++++-------- .../InvenTree/locale/no/LC_MESSAGES/django.po | 3666 ++++++++-------- .../InvenTree/locale/pl/LC_MESSAGES/django.po | 3666 ++++++++-------- .../InvenTree/locale/pt/LC_MESSAGES/django.po | 3698 +++++++++-------- .../InvenTree/locale/ro/LC_MESSAGES/django.po | 3698 +++++++++-------- .../InvenTree/locale/ru/LC_MESSAGES/django.po | 3676 ++++++++-------- .../InvenTree/locale/sk/LC_MESSAGES/django.po | 3698 +++++++++-------- .../InvenTree/locale/sl/LC_MESSAGES/django.po | 3698 +++++++++-------- .../InvenTree/locale/sr/LC_MESSAGES/django.po | 3698 +++++++++-------- .../InvenTree/locale/sv/LC_MESSAGES/django.po | 3698 +++++++++-------- .../InvenTree/locale/th/LC_MESSAGES/django.po | 3698 +++++++++-------- .../InvenTree/locale/tr/LC_MESSAGES/django.po | 3668 ++++++++-------- .../InvenTree/locale/uk/LC_MESSAGES/django.po | 3698 +++++++++-------- .../InvenTree/locale/vi/LC_MESSAGES/django.po | 3666 ++++++++-------- .../InvenTree/locale/zh/LC_MESSAGES/django.po | 3698 +++++++++-------- .../locale/zh_Hans/LC_MESSAGES/django.po | 2372 ++++++----- src/frontend/src/locales/ar/messages.po | 1300 +++--- src/frontend/src/locales/bg/messages.po | 1300 +++--- src/frontend/src/locales/cs/messages.po | 1296 +++--- src/frontend/src/locales/da/messages.po | 1300 +++--- src/frontend/src/locales/de/messages.po | 1300 +++--- src/frontend/src/locales/el/messages.po | 1302 +++--- src/frontend/src/locales/en/messages.po | 1144 ++--- src/frontend/src/locales/es-mx/messages.po | 1144 ++--- src/frontend/src/locales/es/messages.po | 1302 +++--- src/frontend/src/locales/et/messages.po | 1302 +++--- src/frontend/src/locales/fa/messages.po | 1300 +++--- src/frontend/src/locales/fi/messages.po | 1300 +++--- src/frontend/src/locales/fr/messages.po | 1410 ++++--- src/frontend/src/locales/he/messages.po | 1300 +++--- src/frontend/src/locales/hi/messages.po | 1300 +++--- src/frontend/src/locales/hu/messages.po | 1465 ++++--- src/frontend/src/locales/id/messages.po | 1300 +++--- src/frontend/src/locales/it/messages.po | 1302 +++--- src/frontend/src/locales/ja/messages.po | 1300 +++--- src/frontend/src/locales/ko/messages.po | 1300 +++--- src/frontend/src/locales/lv/messages.po | 1300 +++--- src/frontend/src/locales/nl/messages.po | 1302 +++--- src/frontend/src/locales/no/messages.po | 1298 +++--- src/frontend/src/locales/pl/messages.po | 1298 +++--- .../src/locales/pseudo-LOCALE/messages.po | 1144 ++--- src/frontend/src/locales/pt-br/messages.po | 1144 ++--- src/frontend/src/locales/pt/messages.po | 1300 +++--- src/frontend/src/locales/ro/messages.po | 1300 +++--- src/frontend/src/locales/ru/messages.po | 1302 +++--- src/frontend/src/locales/sk/messages.po | 1300 +++--- src/frontend/src/locales/sl/messages.po | 1300 +++--- src/frontend/src/locales/sr/messages.po | 1302 +++--- src/frontend/src/locales/sv/messages.po | 1296 +++--- src/frontend/src/locales/th/messages.po | 1300 +++--- src/frontend/src/locales/tr/messages.po | 1300 +++--- src/frontend/src/locales/uk/messages.po | 1300 +++--- src/frontend/src/locales/vi/messages.po | 1296 +++--- src/frontend/src/locales/zh-hans/messages.po | 1144 ++--- src/frontend/src/locales/zh-hant/messages.po | 1144 ++--- src/frontend/src/locales/zh/messages.po | 1300 +++--- 77 files changed, 94826 insertions(+), 89147 deletions(-) diff --git a/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po index 8604815d6a..e51d16019e 100644 --- a/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:39\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:37\n" "Last-Translator: \n" "Language-Team: Arabic\n" "Language: ar_SA\n" @@ -56,29 +56,29 @@ msgstr "يمكن العثور على تفاصيل الخطأ في لوحة ال msgid "Enter date" msgstr "أدخل التاريخ" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "ملاحظات" @@ -135,74 +135,74 @@ msgstr "لم تتم الموافقة على نطاق البريد الإلكتر msgid "Registration is disabled." msgstr "التسجيل معطل." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "الكمية المقدمة غير صحيحة" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "سلسلة الرقم التسلسلي فارغة" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "تكرار التسلسل" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "" @@ -366,158 +366,158 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,17 +726,17 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "" @@ -789,72 +789,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" @@ -1260,7 +1260,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "" @@ -1270,21 +1270,21 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "" @@ -1508,7 +1508,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1584,13 +1584,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "" @@ -1600,22 +1600,22 @@ msgstr "" msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,7 +1633,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" @@ -1684,7 +1684,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "" @@ -1696,7 +1696,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1707,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1786,16 +1786,16 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" @@ -1875,8 +1875,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,11 +1890,11 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -2037,15 +2037,15 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,362 +2103,370 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "" msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3957,27 +3965,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4228,26 +4236,26 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,16 +4534,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "" @@ -4734,7 +4742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "" @@ -5203,7 +5211,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" @@ -5224,9 +5232,9 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" @@ -5239,26 +5247,26 @@ msgstr "" msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "" @@ -5286,7 +5294,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "" @@ -5310,365 +5318,365 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6056,12 +6064,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6175,8 +6183,8 @@ msgstr "" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "" @@ -6272,21 +6280,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6306,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6319,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6331,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6355,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,13 +6384,17 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" @@ -6489,13 +6501,13 @@ msgstr "" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6516,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7302,338 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7679,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7785,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7870,15 +7883,15 @@ msgstr "" msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "" @@ -7937,7 +7950,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +7960,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +7972,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8171,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8345,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8454,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8526,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9160,7 +9213,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,7 +9226,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9299,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9332,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9357,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9372,316 +9425,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "" @@ -9971,7 +10024,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "" @@ -10027,7 +10080,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "" @@ -10047,7 +10100,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10161,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10169,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "" @@ -10321,7 +10374,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10386,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11007,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11811,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "" @@ -11948,7 +12001,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12021,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12076,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,12 +12124,12 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "" @@ -12129,13 +12182,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12196,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12749,39 +12802,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +12919,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12931,358 +12984,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13719,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13887,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "" @@ -13891,18 +13945,14 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "" @@ -13951,432 +14001,432 @@ msgstr "" msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "" diff --git a/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po index 54e3d79bb6..2b62c27d10 100644 --- a/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:37\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Bulgarian\n" "Language: bg_BG\n" @@ -56,29 +56,29 @@ msgstr "Подробности за грешката могат да се нам msgid "Enter date" msgstr "Въведи дата" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "Бележки" @@ -135,74 +135,74 @@ msgstr "Въведеният домейн на електронната поща msgid "Registration is disabled." msgstr "Регистрацията е деактивирана." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "Въведена е недопустима стойност" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Липсва сериен номер" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Повтарящ се сериен номер" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Невалиден диапазон от групи: {group}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Не са открити серийни номера" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Премахнете HTML маркерите от тази стойност" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Грешка при съединението" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Сървърът отговари с невалиден статусен код" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Възникна изключение" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Сървърът отговори с невалидна стойност за дължината на съдържанието (Content-Length)" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Размерът на изображението е твърде голям" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Сваляното на изображение превиши максималния размер" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Отдалеченият сървър върна празен отговор" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "" @@ -366,158 +366,158 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,17 +726,17 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "" @@ -789,72 +789,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "Част" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" @@ -1260,7 +1260,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "" @@ -1270,21 +1270,21 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "" @@ -1508,7 +1508,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1584,13 +1584,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "" @@ -1600,22 +1600,22 @@ msgstr "" msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,7 +1633,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" @@ -1684,7 +1684,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "" @@ -1696,7 +1696,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1707,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1786,16 +1786,16 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" @@ -1875,8 +1875,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,11 +1890,11 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -2037,15 +2037,15 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,362 +2103,370 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "" msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "Потребител" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3957,27 +3965,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4228,26 +4236,26 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,16 +4534,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "" @@ -4734,7 +4742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "" @@ -5203,7 +5211,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" @@ -5224,9 +5232,9 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" @@ -5239,26 +5247,26 @@ msgstr "" msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "" @@ -5286,7 +5294,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "" @@ -5310,365 +5318,365 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Изпратено" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6056,12 +6064,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6175,8 +6183,8 @@ msgstr "" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "" @@ -6272,21 +6280,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6306,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6319,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6331,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6355,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,13 +6384,17 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" @@ -6489,13 +6501,13 @@ msgstr "" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Цялостна наличност" @@ -6504,784 +6516,785 @@ msgstr "Цялостна наличност" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7302,338 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7679,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7785,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7870,15 +7883,15 @@ msgstr "" msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "" @@ -7937,7 +7950,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +7960,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +7972,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "Наличност" @@ -8158,7 +8171,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "Няма наличност" @@ -8332,100 +8345,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8454,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8526,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9160,7 +9213,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,7 +9226,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9299,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9332,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9357,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9372,316 +9425,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Място в склада" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Места в склада" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "" @@ -9971,7 +10024,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "" @@ -10027,7 +10080,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "" @@ -10047,7 +10100,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10161,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10169,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "" @@ -10321,7 +10374,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10386,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11007,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11811,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "" @@ -11948,7 +12001,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12021,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12076,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,12 +12124,12 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "" @@ -12129,13 +12182,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12196,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12749,39 +12802,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +12919,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12931,358 +12984,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13719,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13887,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "" @@ -13891,18 +13945,14 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "" @@ -13951,432 +14001,432 @@ msgstr "" msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "" diff --git a/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po index fb9f9c3e04..dff9fe4bb0 100644 --- a/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:37\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Czech\n" "Language: cs_CZ\n" @@ -56,29 +56,29 @@ msgstr "Podrobnosti o chybě lze nalézt v panelu administrace" msgid "Enter date" msgstr "Zadejte datum" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "Poznámky" @@ -135,74 +135,74 @@ msgstr "Zadaná e-mailová doména není povolena." msgid "Registration is disabled." msgstr "Registrace vypnuta." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "Vyplněno neplatné množství" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Nevyplněné výrobní číslo" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Duplicitní výrobní číslo" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Neplatný rozsah skupiny: {group}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Rozsah skupiny {group} překračuje povolené množství ({expected_quantity})" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Neplatná sekvence skupiny: {group}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Nenalezena žádná výrobní čísla" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Počet jedinečných sériových čísel ({len(serials)}) musí odpovídat množství ({expected_quantity})" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Odstranit HTML tagy z této hodnoty" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Chyba spojení" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Server odpověděl s neplatným stavovým kódem" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Došlo k výjimce" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Server odpověděl s neplatnou hodnotou Content-Length" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Velikost obrázku je příliš velká" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Stahování obrázku překročilo maximální velikost" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Vzdálený server vrátil prázdnou odpověď" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "Zadaná URL adresa není platný soubor obrázku" @@ -366,158 +366,158 @@ msgstr "[{site_name}] Přihlásit se do aplikace" msgid "Email" msgstr "E-mail" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "Chyba při ověření pluginu" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "Metadata musí být objekt python dict" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "Metadata pluginu" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "Pole metadat JSON pro použití externími pluginy" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Nesprávně naformátovaný vzor" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "Neznámý formát klíče" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "Chybí požadovaný klíč" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Referenční pole nemůže být prázdné" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "Referenční číslo musí odpovídat požadovanému vzoru" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Referenční číslo je příliš velké" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "Duplicitní názvy nemohou existovat pod stejným nadřazeným názvem" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Neplatný výběr" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "Název" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "Popis" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "Popis (volitelně)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "Cesta" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "Poznámky (volitelné)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Data čárového kódu" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Data čárového kódu třetí strany" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "Hash čárového kódu" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Jedinečný hash dat čárového kódu" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Nalezen existující čárový kód" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Chyba serveru" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "Server zaznamenal chybu." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "Musí být platné číslo" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "Super-uživatel" msgid "Is this user a superuser" msgstr "Je tento uživatel superuživatel" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "URL souboru vzdáleného obrázku" msgid "Downloading images from remote URL is not enabled" msgstr "Stahování obrázků ze vzdálené URL není povoleno" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "Kontrola procesů na pozadí se nezdařila" @@ -726,17 +726,17 @@ msgstr "O InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Sestavení musí být zrušeno před odstraněním" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "Spotřební materiál" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "Volitelné" msgid "Tracked" msgstr "Sledováno" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "Přiděleno" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "Dostupné" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "Vytvořit objednávku" @@ -789,72 +789,72 @@ msgstr "Vytvořit objednávku" msgid "Build Orders" msgstr "Vytvořené objednávky" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "Neplatná volba nadřazeného sestavení" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "Musí být specifikován odpovědný uživatel nebo skupina" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "Díly obědnávky sestavení nemohou být změněny" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "Referenční číslo objednávky" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Reference" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "Stručný popis sestavení (nepovinné)" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Nadřazená sestava" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "Příkaz sestavení pro který je toto sestavení přiděleno" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "Příkaz sestavení pro který je toto sestavení přiděleno" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "Díl" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "Vyber téma, které chceš stavět" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Referenční číslo prodejní objednávky" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "Prodejní příkaz, kterému je tato verze přidělena" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Umístění lokace" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Vyberte lokaci, ze které chcete provést inventuru pro sestavu. (nechte prázdné, chcete-li provést inventuru z libovolné lokace)" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "Cílová lokace" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Vyberte lokaci, kde budou dokončené položky uloženy" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "Množství sestav" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Počet skladových položek k sestavení" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "Dokončené položky" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Počet skladových položek, které byly dokončeny" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "Stav sestavení" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "Stavový kód sestavení" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "Kód dávky" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "Dávkový kód pro tento výstup sestavení" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Datum vytvoření" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "Cílové datum dokončení" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Cílové datum dokončení sestavení. Sestavení bude po tomto datu v prodlení." -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "Datum dokončení" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "dokončil" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "Vystavil" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "Uživatel, který vydal tento příkaz k sestavení" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "Odpovědný" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "Uživatel nebo skupina odpovědná za tento příkaz k sestavení" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Externí odkaz" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "Odkaz na externí URL" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "Priorita sestavení" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "Priorita tohoto příkazu k sestavení" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "Priorita tohoto příkazu k sestavení" msgid "Project Code" msgstr "Kód projektu" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "Kód projektu pro objednávku sestavení" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "Nepodařilo se uvolnit úlohu pro dokončení přidělení sestavy" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "Příkaz k sestavení {build} byl dokončen" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "Příkaz k sestavení byl dokončen" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "Nebyl specifikováno žádný výstup sestavení" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "Výstup sestavení je již dokončen" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "Výstup sestavení neodpovídá příkazu sestavení" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "Množství musí být vyšší než nula" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "Množství nemůže být větší než výstupní množství" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "Výstup sestavy {serial} neprošel všemi požadavky" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "Vytvořit položku řádku objednávky" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "Vytvořit objekt" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "Vytvořit objekt" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "Množství" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "Vyžadované množství pro objednávku" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Položka sestavení musí specifikovat výstup sestavení, protože hlavní díl je označen jako sledovatelný" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Zabrané množství ({q}) nesmí překročit dostupné skladové množství ({a})" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "Skladová položka je nadměrně zabrána" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "Zabrané množství musí být větší než nula" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "Množství musí být 1 pro zřetězený sklad" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "Vybraná položka zásob neodpovídá řádku BOM" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "Skladové položky" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "Zdrojová skladová položka" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "Skladové množství pro sestavení" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "Instalovat do" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "Cílová skladová položka" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "Název dílu" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "Vytvořit výstup" @@ -1260,7 +1260,7 @@ msgstr "Je vyžadována celočíselná hodnota množství, protože kusovník ob #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Sériová čísla" @@ -1270,21 +1270,21 @@ msgstr "Zadejte sériová čísla pro sestavení výstupů" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "Lokace" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "Umístění dokončených výstupů sestavy" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "Stav" @@ -1508,7 +1508,7 @@ msgstr "Nepodařilo se spustit úlohu automatického přidělování" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "Číslo dílu výrobce" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "ID dílu" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "IPN dílu" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1584,13 +1584,13 @@ msgstr "Sledovatelné" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "BOM Položka" @@ -1600,22 +1600,22 @@ msgstr "BOM Položka" msgid "Allocated Stock" msgstr "Přidělené zásoby" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "Na objednávku" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "Ve výrobě" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,7 +1633,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" @@ -1684,7 +1684,7 @@ msgstr "Miniatura dílu" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "Akce čárového kódu" @@ -1696,7 +1696,7 @@ msgstr "Akce čárového kódu" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Zobrazit QR kód" @@ -1707,7 +1707,7 @@ msgstr "Zobrazit QR kód" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "Odstranit čárový kód" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "Přiřadit čárový kód" @@ -1786,16 +1786,16 @@ msgstr "Zásoby nebyly plně přiřazeny k této objednávce na sestavu" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "Dokončené výstupy" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "Dokončené výstupy" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "Prodejní objednávka" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "Vystavil" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "Priorita" @@ -1875,8 +1875,8 @@ msgstr "Zdroj zásob" msgid "Stock can be taken from any available location." msgstr "Zásoby lze odebírat z jakéhokoli dostupného umístění." -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "Místo určení" @@ -1890,11 +1890,11 @@ msgstr "Přidělené díly" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "Šarže" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "Vytvořeno" @@ -2037,15 +2037,15 @@ msgstr "Řádkové položky" msgid "Incomplete Outputs" msgstr "Neúplné výstupy" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "Je odkaz" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "Je soubor" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "Uživatel nemá oprávnění k odstranění této přílohy" @@ -2103,362 +2103,370 @@ msgstr "{name.title()} Soubor" msgid "Select {name} file to upload" msgstr "Vyberte {name} soubor k nahrání" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "Aktualizováno" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "Časové razítko poslední aktualizace" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "Adresa URL webu je uzamčena konfigurací" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "Jedinečný kód projektu" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "Popis projektu" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "Uživatel nebo skupina odpovědná za tento projekt" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "Klíč nastavení (musí být unikátní - rozlišuje malá a velká písmena)" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "Hodnota nastavení" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "Zvolená hodnota není platnou možností" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "Hodnota musí být logická hodnota" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "Hodnota musí být celé číslo" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "Klíčový text musí být jedinečný" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "Žádná skupina" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "Je vyžadován restart" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "Bylo změněno nastavení, které vyžaduje restart serveru" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "Nevyřízené migrace" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "Počet nevyřízených migrací databáze" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "Název instance serveru" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "Textový popisovač pro instanci serveru" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "Použít název instance" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "Použít název instance v liště" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "Omezit zobrazování `o aplikaci`" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "Zobrazovat okno `o aplikaci` pouze superuživatelům" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "Jméno společnosti" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "Interní název společnosti" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "Základní URL" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "Základní URL pro instanci serveru" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "Výchozí měna" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "Vyberte základní měnu pro cenové kalkulace" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "Podporované měny" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "Seznam podporovaných kódů měn" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "Interval aktualizace měny" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "Jak často aktualizovat směnné kurzy (pro vypnutí nastavte na nulu)" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "dny" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "Plugin aktualizace měny" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "Plugin pro aktualizaci měn k použití" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "Stáhnout z URL" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "Povolit stahování vzdálených obrázků a souborů z externích URL" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "Limit velikosti stahování" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "Maximální povolená velikost stahování vzdáleného obrázku" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "User-agent použitý ke stažení z adresy URL" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Povolit přepsání user-agenta používaného ke stahování obrázků a souborů z externí adresy URL (ponechte prázdné pro výchozí)" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "Přísná validace URL" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "Vyžadovat specifikaci schématu při ověřování adres URL" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "Vyžadovat potvrzení" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "Vyžadovat výslovné potvrzení uživatele pro určitou akci." -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "Hloubka stromu" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Výchozí hloubka stromu pro zobrazení stromu. Hlubší úrovně lze načítat líně podle potřeby." -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "Interval kontroly aktualizací" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "Jak často kontrolovat aktualizace (nastavte na nulu pro vypnutí)" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "Automatické Zálohování" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "Povolit automatické zálohování databáze a mediálních souborů" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "Interval automatického zálohování" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "Zadejte počet dní mezi automatickými zálohovými událostmi" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "Interval mazání úloh" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "Výsledky úloh na pozadí budou odstraněny po zadaném počtu dní" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "Interval odstranění protokolu chyb" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "Záznamy chyb budou odstraněny po zadaném počtu dní" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "Interval pro odstranění oznámení" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "Uživatelská oznámení budou smazána po zadaném počtu dní" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Podpora čárových kódů" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "Povolit podporu pro skenování čárových kódů ve webovém rozhraní" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "Zpoždění vstupu čárového kódu" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "Doba zpoždění zpracování vstupu čárového kódu" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "Podpora webové kamery pro čárové kódy" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "Povolit skenování čárových kódů přes webovou kameru v prohlížeči" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 +#: common/models.py:1419 +msgid "Barcode Generation Plugin" +msgstr "" + +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" +msgstr "" + +#: common/models.py:1425 msgid "Part Revisions" msgstr "Revize dílu" -#: common/models.py:1407 +#: common/models.py:1426 msgid "Enable revision field for Part" msgstr "Povolit pole revize pro díl" -#: common/models.py:1412 +#: common/models.py:1431 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1413 +#: common/models.py:1432 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1418 +#: common/models.py:1437 msgid "Allow Deletion from Assembly" msgstr "Povolit odstranění ze sestavy" -#: common/models.py:1419 +#: common/models.py:1438 msgid "Allow deletion of parts which are used in an assembly" msgstr "Povolit odstranění dílů, které jsou použity v sestavě" -#: common/models.py:1424 +#: common/models.py:1443 msgid "IPN Regex" msgstr "IPN Regex" -#: common/models.py:1425 +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "Regulární vzorec výrazu pro odpovídající IPN dílu" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "Povolit duplicitní IPN" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "Povolit více dílům sdílet stejný IPN" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "Povolit editaci IPN" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "Povolit změnu IPN při úpravách dílu" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "Kopírovat data BOM dílu" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "Kopírovat data BOM ve výchozím nastavení při duplikování dílu" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "Kopírovat data parametrů dílu" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "Kopírovat data parametrů ve výchozím nastavení při duplikování dílu" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "Kopírovat zkušební data dílu" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "Kopírovat testovací data ve výchozím nastavení při duplikování dílu" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "Kopírovat šablony parametrů kategorie" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "Kopírování šablon parametrů kategorie při vytváření dílu" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "Kopírování šablon parametrů kategorie při vytváření dílu" msgid "Template" msgstr "Šablona" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "Díly jsou ve výchozím nastavení šablony" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "Sestava" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "Díly lze ve výchozím nastavení sestavit z jiných komponentů" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "Komponent" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "Díly lze ve výchozím nastavení použít jako dílčí komponenty" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "Možné zakoupit" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "Díly jsou zakoupitelné ve výchozím nastavení" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "Prodejné" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "Díly jsou prodejné ve výchozím nastavení" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "Díly jsou sledovatelné ve výchozím nastavení" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "Nehmotné (virtuální)" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "Díly jsou nehmotné (virtuální) ve výchozím nastavení" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "Zobrazit Import v zobrazeních" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "Zobrazit průvodce importem v některých zobrazeních dílu" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "Zobrazit související díly" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "Zobrazit související díly pro díl" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "Počáteční údaje zásob" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "Povolit vytvoření počátečního skladu při přidání nové části" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "Počáteční údaje dodavatele" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Povolit vytvoření počátečních dat dodavatele při přidávání nového dílu" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "Formát zobrazení jména dílu" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "Formát pro zobrazení názvu dílu" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "Výchozí ikona kategorie dílu" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "Výchozí ikona kategorie dílu (prázdné znamená bez ikony)" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "Vynutit jednotky parametru" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "Pokud jsou uvedeny jednotky, musí hodnoty parametrů odpovídat zadaným jednotkám" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "Minimální počet desetinných míst u cen" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Minimální počet desetinných míst k zobrazení u cenových údajů" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "Maximální počet desetinných míst u cen" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "Maximální počet desetinných míst k zobrazení u cenových údajů" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "Použít ceny dodavatele" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Zahrnout cenová zvýhodnění dodavatelů do celkových cenových kalkulací" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "Přepsání historie nákupu" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Historické ceny nákupních objednávek mají přednost před cenovými zvýhodněními dodavatele" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "Použít ceny skladových položek" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Použít ceny z ručně zadaných skladových údajů pro cenové kalkulace" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "Stáří cen skladových položek" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Vyloučit skladové položky starší než tento počet dní z cenových kalkulací" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "Použít cenu varianty" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "Zahrnutí cen variant do celkových cenových kalkulací" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "Pouze aktivní varianty" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "Pro výpočet ceny varianty použijte pouze aktivní díly varianty" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "Interval přestavby cen" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "Počet dní před automatickou aktualizací cen dílů" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "Interní ceny" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "Povolit interní ceny pro díly" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "Přepis interní ceny" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "Pokud jsou k dispozici, interní ceny mají přednost před výpočty cenového rozpětí" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "Povolit tisk štítků" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "Povolit tisk štítků z webového rozhraní" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "DPI rozlišení štítků" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "Rozlišení DPI při generování obrazových souborů, které se dodávají do zásuvných modulů pro tisk štítků" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "Povolit reporty" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "Povolit generování reportů" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "Režim ladění chyb" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "Generovat reporty v režimu ladění (HTML výstup)" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "Zaznamenávat chyby reportů" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "Zaznamenávat chyby, které se vyskytnou při vytváření reportů" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "Velikost stránky" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "Výchozí velikost stránky pro PDF reporty" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "Povolit testovací reporty" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "Povolit generování zkušebních reportů" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "Připojit testovací reporty" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "Při tisku testovacího reportu, připojte kopii reportu k přidružené skladové položce" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "Globálně unikátní sériová čísla" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "Sériová čísla pro skladové položky musí být globálně unikátní" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "Automaticky vyplnit sériová čísla" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "Automaticky vyplnit sériová čísla ve formulářích" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "Odstranit vyčerpané zásoby" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "Určuje výchozí chování při vyčerpání zásoby položky" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "Šablona kódu dávky" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "Šablona pro generování výchozích kódů dávky pro skladové položky" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "Expirace zásob" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "Povolit funkci expirace zásob" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "Prodat prošlé zásoby" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "Povolit prodej prošlých zásob" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "Čas stáří zásob" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "Počet dnů, po které jsou skladové položky považovány za nevyužité před uplynutím doby expirace" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "Sestavit prošlé zásoby" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "Povolit sestavování s prošlými zásobami" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "Kontrola vlastnictví zásob" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "Umožnit kontrolu vlastnictví nad skladovými místy a položkami" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "Výchozí ikona umístění zásob" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "Výchozí ikona umístění zásob (prázdné znamená bez ikony)" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "Zobrazit nainstalované skladové položky" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "Zobrazit nainstalované skladové položky ve skladových tabulkách" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "Zkontrolovat BOM při instalaci položek" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "Nainstalované skladové položky musí existovat v BOM pro nadřazený díl" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "Povolit převod mimo sklad" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "Umožnit přesun skladových položek, které nejsou na skladě, mezi skladovými místy" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "Referenční vzor objednávky sestavy" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "Požadovaný vzor pro generování referenčního pole Objednávka sestavy" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "Vyžadovat odpovědného vlastníka" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "Ke každé objednávce musí být přiřazen odpovědný vlastník" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "Blokovat, dokud testy neprojdou" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "Zabránit dokončení výstupů sestavy, dokud neprojdou všechny požadované testy" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "Povolit vracení objednávek" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "Povolit funkci vrácení objednávky v uživatelském rozhraní" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "Referenční vzor návratové objednávky" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "Požadovaný vzor pro vygenerování referenčního pole Návratová objednávka" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "Úprava dokončených návratových objednávek" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "Umožnit úpravu návratových objednávek po jejich dokončení" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "Referenční vzor prodejní objednávky" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "Požadovaný vzor pro generování referenčního pole prodejní objednávky" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "Výchozí přeprava prodejní objednávky" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "Povolit vytvoření výchozí přepravy s prodejními objednávkami" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "Úprava dokončených prodejních objednávek" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Umožnit úpravy prodejních objednávek po jejich odeslání nebo dokončení" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "Označit odeslané objednávky jako dokončené" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "Prodejní objednávky označené jako odeslané se automaticky dokončí a obejdou stav „odesláno“" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "Referenční vzor nákupní objednávky" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "Požadovaný vzor pro generování referenčního pole nákupní objednávky" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "Úprava dokončených nákupních objednávek" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Umožnit úpravy nákupních objednávek po jejich odeslání nebo dokončení" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "Automatické dokončování nákupních objednávek" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "Automaticky označit nákupní objednávky jako kompletní, jakmile jsou přijaty všechny řádkové položky" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "Povolit pole zapomenutého hesla" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "Povolení funkce zapomenutého hesla na přihlašovacích stránkách" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "Povolit registrace" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "Povolit samoregistraci uživatelů na přihlašovacích stránkách" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "Povolit SSO" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "Povolit SSO na přihlašovacích stránkách" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "Povolit SSO registraci" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Povolit samoregistraci uživatelů prostřednictvím SSO na přihlašovacích stránkách" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "Vyžadován e-mail" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "Požadovat, aby uživatel při registraci zadal e-mail" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "Automaticky vyplnit SSO uživatele" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "Automaticky vyplnit údaje o uživateli z údajů o účtu SSO" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "Mail dvakrát" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "Při registraci dvakrát požádat uživatele o zadání e-mailu" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "Heslo dvakrát" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "Při registraci dvakrát požádat uživatele o heslo" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "Povolené domény" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Omezit registraci na určité domény (oddělené čárkou a začínající @)" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "Skupina při registraci" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "Vynutit MFA" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "Uživatelé musí používat vícefaktorové zabezpečení." -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "Zkontrolovat pluginy při spuštění" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Zkontrolujte, zda jsou při spuštění nainstalovány všechny pluginy - povolit v kontejnerových prostředích" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "Zkontrolovat aktualizace pluginů" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "Povolit pravidelné kontroly aktualizací nainstalovaných pluginů" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "Povolit integraci URL" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "Povolit plug-inům přidávat trasy URL" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "Povolit integraci navigace" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "Povolit integrování pluginů do navigace" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "Povolit integraci aplikací" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "Povolit pluginům přidávát aplikace" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "Povolit integraci plánu" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "Povolit pluginům spouštění naplánovaných úloh" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "Povolit integraci událostí" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "Povolit pluginům reagovat na interní události" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "Povolit kódy projektů" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "Povolit kódy projektů pro sledování projektů" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "Funkce inventury" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Povolit funkci inventury pro evidenci stavu zásob a výpočet hodnoty zásob" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "Vyloučit externí umístění" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Vyloučit skladové položky na externích místech z výpočtů inventury" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "Perioda automatické inventury" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Počet dní mezi automatickým záznamem inventury (pro vypnutí nastavte nulu)" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "Interval mazání reportů" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Reporty o inventuře se po určitém počtu dní vymažou" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "Zobrazit celá jména uživatelů" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "Zobrazit plná jména uživatelů namísto uživatelských jmen" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "Povolit data zkušební stanice" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "Povolit sběr dat ze zkušební stanice pro výsledky testů" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "Klíč nastavení (musí být unikátní - rozlišuje malá a velká písmena" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "Skrýt neaktivní díly" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Skrýt neaktivní díly ve výsledcích zobrazených na domovské stránce" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "Zobrazit odebírané díly" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "Zobrazit odebírané díly na domovské stránce" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "Zobrazit odebírané kategorie" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "Zobrazit kategorie odebíraných dílů na hlavní stránce" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "Zobrazit nejnovější díly" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "Zobrazit nejnovější díly na domovské stránce" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "Zobrazit neplatné kusovníky (BOMy)" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "Zobrazit kusovníky (BOMy), které čekají na ověření, na domovské stránce" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "Zobrazit nedávné změny zásob" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "Zobrazit nedávno změněné skladové položky na domovské stránce" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "Zobrazit nízký stav zásob" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "Zobrazit na domovské stránce položky s nízkou skladovou zásobou" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "Zobrazit vyčerpané zásoby" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "Zobrazit vyčerpané položky na domovské stránce" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "Zobrazit potřebné zásoby" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "Zobrazit skladové položky potřebné pro sestavy na domovské stránce" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "Zobrazit expirované zásoby" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "Zobrazit expirované skladové položky na domovské stránce" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "Zobrazit neaktuální zásoby" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "Zobrazit neaktuální skladové položky na domovské stránce" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "Zobrazit nevyřízené sestavy" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "Zobrazit nevyřízené sestavy na domovské stránce" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "Zobrazit sestavy po splatnosti" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "Zobrazit sestavy po splatnosti na domovské stránce" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "Zobrazit nevyřízené PO" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "Zobrazit nevyřízené PO na domovské stránce" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "Zobrazit PO po splatnosti" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "Zobrazit PO po splatnosti na domovské stránce" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "Zobrazit nevyřízené SO" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "Zobrazit nevyřízené SO na domovské stránce" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "Zobrazit SO po splatnosti" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "Zobrazit SO po splatnosti na domovské stránce" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "Zobrazit čekající zásilky SO" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "Zobrazit čekající zásilky SO na domovské stránce" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "Zobrazit novinky" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "Zobrazit novinky na domovské stránce" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "Zobrazení štítků na řádku" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Zobrazit štítky PDF v prohlížeči namísto stahování jako soubor" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "Výchozí tiskárna štítků" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "Konfigurovat tiskárnu štítků, která má být vybrána jako výchozí" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "Zobrazení reportů na řádku" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Zobrazit reporty PDF v prohlížeči namísto stahování jako soubor" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "Hledat díly" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "Zobrazit díly v náhledu hledání" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "Hledat díly dodavatele" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "Zobrazit díly dodavatele v náhledu hledání" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "Vyhledávání dílů výrobce" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "Zobrazit díly výrobce v náhledu hledání" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "Skrýt neaktivní díly" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "Vyloučené neaktivní části z okna náhledu vyhledávání" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "Hledat kategorie" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "Zobrazit kategorie dílů v náhledu hledání" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "Hledat zásoby" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "Zobrazit skladové položky v náhledu hledání" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "Skrýt nedostupné skladové položky" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "Vyloučit skladové položky, které nejsou dostupné z okna náhledu hledání" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "Hledat umístění" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "Zobrazit skladová umístění v náhledu hledání" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "Hledat společnosti" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "Zobrazit společnosti v náhledu hledání" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "Hledat objednávky sestav" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "Zobrazit objednávky sestav v náhledu hledání" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "Hledat nákupní objednávky" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "Zobrazit nákupní objednávky v náhledu hledání" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "Vyloučit neaktivní nákupní objednávky" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "Vyloučit neaktivní nákupní objednávky z okna náhledu vyhledávání" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "Hledat prodejní objednávky" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "Zobrazit prodejní objednávky v náhledu hledání" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "Vyloučit neaktivní prodejní objednávky" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "Vyloučit neaktivní prodejní objednávky z okna náhledu vyhledávání" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "Vyhledávání vrácených objednávek" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "Zobrazit vrácené objednávky v okně náhledu vyhledávání" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "Vyloučit neaktivní vrácené objednávky" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "Vyloučit neaktivní vrácené objednávky z okna náhledu vyhledávání" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "Náhled výsledků vyhledávání" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "Počet výsledků, které se mají zobrazit v každé části okna náhledu vyhledávání" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "Regex hledání" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "Povolit regulární výrazy ve vyhledávacích dotazech" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "Vyhledávání celého slova" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "Vyhledávací dotazy vracejí výsledky pro shody celých slov" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "Zobrazit množství ve formulářích" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "Zobrazit dostupné množství dílů v některých formulářích" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "Klávesa Escape zavře formuláře" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "Zavřít modální formuláře pomocí klávesy escape" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "Pevná navigační lišta" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "Pozice navigační lišty je pevně nastavena na horní okraj obrazovky" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "Formát data" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "Preferovaný formát pro zobrazení datumů" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Plánování dílů" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "Zobrazit informace o plánování dílů" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Inventura dílu" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Zobrazit informace o skladových zásobách dílů (pokud je povolena funkce inventury)" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "Délka textu v tabulce" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "Maximální délka textu v zobrazeních tabulek" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "Přijímat zprávy o chybách" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "Dostávat oznámení o systémových chybách" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "Poslední použité tiskárny" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "Uložte poslední použité tiskárny pro uživatele" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "Uživatel" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "Množství cenové slevy" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Cena" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "Jednotková cena při stanoveném množství" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "Koncový bod" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "Koncový bod, ve kterém je tento webhook přijímán" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "Název tohoto webhooku" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "Je tento webhook aktivní" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "Token" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "Token pro přístup" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "Tajný klíč" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "Sdílený tajný klíč pro HMAC" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "ID zprávy" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "Unikátní identifikátor pro tuto zprávu" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "Hostitel" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "Hostitel, od kterého byla tato zpráva přijata" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "Záhlaví" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "Záhlaví této zprávy" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "Tělo" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "Tělo zprávy" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "Koncový bod, na kterém byla zpráva přijata" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "Pracoval na" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "Byla práce na této zprávě dokončena?" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "ID" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Název" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "Odkaz" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "Zveřejněno" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Autor" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "Souhrn" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "Přečteno" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "Byla tato novinka přečtena?" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "Byla tato novinka přečtena?" msgid "Image" msgstr "Obrazek" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "Soubor obrázku" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "Cílový typ modelu pro tento obrázek" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "Cílové ID modelu pro tento obrázek" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "Název jednotky musí být platný identifikátor" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "Název jednotky" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Symbol" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "Volitelný symbol jednotky" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definice" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "Definice jednotky" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Příloha" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "Chybějící soubor" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Chybějící externí odkaz" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Vyberte soubor k přiložení" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Komentář" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "Komentář přílohy" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "Datum nahrání" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "Datum, kdy byl soubor nahrán" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "Velikost souboru" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "Velikost souboru v bytech" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "Uveden neplatný typ modelu pro přílohu" @@ -3957,27 +3965,27 @@ msgstr "Typ modelu" msgid "User does not have permission to create or edit attachments for this model" msgstr "Uživatel nemá oprávnění k vytváření nebo úpravám příloh pro tento model" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "Minimální počet míst nesmí být větší než maximální počet míst" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "Maximální počet míst nesmí být menší než minimální počet míst" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "Prázdná doména není povolena." -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Neplatný název domény: {domain}" @@ -4228,26 +4236,26 @@ msgstr "Doručovací poznámky pro interní použití" msgid "Link to address information (external)" msgstr "Odkaz na informace o adrese (externí)" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Výrobce dílu" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Základní díl" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "Zvolte díl" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "Zvolte díl" msgid "Manufacturer" msgstr "Výrobce" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "Vyberte výrobce" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "MPN" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "URL pro odkaz na díl externího výrobce" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "Popis dílu výrobce" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "Název parametru" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "Hodnota" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "Hodnota parametru" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "Jednotky" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "Jednotky parametru" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "Díl dodavatele" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "Jednotky balení musí být kompatibilní s jednotkami základních dílů" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "Jednotky balení musí být větší než nula" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "Odkazovaný díl výrobce musí odkazovat na stejný základní díl" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "Dodavatel" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "Vyberte dodavatele" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "Skladová evidence dodavatele" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "Je tento díl dodavatele aktivní?" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "Vyberte díl výrobce" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "Adresa URL pro odkaz na externí díl dodavatele" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "Popis dílu dodavatele" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "Popis dílu dodavatele" msgid "Note" msgstr "Poznámka" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "základní cena" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimální poplatek (např. poplatek za skladování)" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "Balení" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "Balení dílu" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "Počet kusů v balení" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Celkové množství dodávané v jednom balení. Pro jednotlivé položky ponechte prázdné." -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "více" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "Objednat více" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "Množství dostupné od dodavatele" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "Dostupnost aktualizována" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "Datum poslední aktualizace údajů o dostupnosti" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "Výchozí měna používaná pro tohoto dodavatele" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "Skladem" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "Neaktivní" @@ -4526,16 +4534,16 @@ msgstr "Stáhnout obrázek z URL" msgid "Delete image" msgstr "Smazat obrázek" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "Zákazník" @@ -4734,7 +4742,7 @@ msgstr "Nejsou k dispozici žádné informace o výrobci" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "Přidat parametr" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "Nejsou k dispozici žádné informace o dodavateli" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "Číslo zboží (SKU)" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "Sklad dílu dodavatele" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "Vytvořit novou položku skladu" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "Nová skladová položka" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "Aktualizovat dostupnost dílu" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "Skladové položky" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "" @@ -5203,7 +5211,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" @@ -5224,9 +5232,9 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" @@ -5239,26 +5247,26 @@ msgstr "" msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "" @@ -5286,7 +5294,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "" @@ -5310,365 +5318,365 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "Společnost, od které se položky objednávají" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "Reference dodavatele" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "Referenční kód objednávky dodavatele" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "přijal" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "Datum vystavení" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "Datum vystavení objednávky" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "Datum dokončení objednávky" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "Dodavatel dílu se musí shodovat s dodavatelem PO" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "Množství musí být kladné" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "Společnost, jíž se položky prodávají" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "Reference zákazníka " -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "Referenční kód objednávky zákazníka" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "Datum odeslání" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "odesláno společností" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "Objednávka je již dokončena" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "Objednávka je již zrušena" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "Pouze otevřená objednávka může být označena jako kompletní" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Objednávku nelze dokončit, protože dodávky jsou nekompletní" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "Objednávka nemůže být dokončena, protože jsou neúplné řádkové položky" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "Množství položky" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "Odkaz na řádkovou položku" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "Poznámky k řádkovým položkám" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Cílové datum pro tuto řádkovou položku (pro použití cílového data z objednávky ponechte prázdné)" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "Popis řádkové položky (nepovinné)" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "Kontext" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "Dodatečný kontext pro tento řádek" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "Cena za jednotku" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "Dodavatelský díl musí odpovídat dodavateli" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "smazáno" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "Díl dodavatele" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "Doručeno" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "Počet přijatých položek" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "Nákupní cena" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "Jednotková nákupní cena" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "Kde si kupující přeje, aby byla tato položka uložena?" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "Virtuální díl nelze přiřadit k prodejní objednávce" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "K prodejní objednávce lze přiřadit pouze prodejné díly" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Prodejní cena" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "Jednotková prodejní cena" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Odesláno" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "Odeslané množství" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "Datum odeslání" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "Datum doručení" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "Datum doručení zásilky" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "Kontroloval(a)" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "Uživatel, který zkontroloval tuto zásilku" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "Doprava" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "Číslo zásilky" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "Sledovací číslo" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "Informace o sledování zásilky" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "Číslo faktury" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "Referenční číslo přiřazené faktury" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "Zásilka již byla odeslána" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "Zásilka nemá žádné přidělené skladové položky" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "Zásobní položka nebyla přiřazena" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "Nelze přidělit skladovou položku na řádek s jiným dílem" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "Nelze přidělit skladovou položku na řádek bez dílu" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Přidělené množství nesmí překročit množství zásob" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "Množství musí být 1 pro serializovanou skladovou položku" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "Prodejní objednávka neodpovídá zásilce" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "Zásilka neodpovídá prodejní objednávce" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "Řádek" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "Odkaz na zásilku z prodejní objednávky" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "Položka" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "Vyberte skladovou položku pro přidělení" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "Zadejte množství pro přidělení zásob" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "Reference návratové objednávky" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "Společnost, od které se vrací položky" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "Stav návratové objednávky" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "K návratové objednávce lze přiřadit pouze serializované položky" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "Vyberte položku pro vrácení od zákazníka" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "Datum přijetí" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "Datum přijetí této vrácené položky" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "Výsledek" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "Výsledky pro tuto položku" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "Náklady spojené s návratem nebo opravou této položky" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ 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:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "Interní číslo dílu" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "Vyberte cílové umístění pro přijaté položky" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "Zadat kód dávky pro příchozí položky skladu" @@ -6056,12 +6064,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6175,8 +6183,8 @@ msgstr "" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "" @@ -6272,21 +6280,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6306,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6319,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6331,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6355,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "Díly" @@ -6376,13 +6384,17 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" @@ -6489,13 +6501,13 @@ msgstr "" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6516,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Kategorie dílu" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Kategorie dílů" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "Výchozí umístění dílů v této kategorii" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "Díly nesmějí být přímo zařazeny do strukturované kategorie, ale mohou být zařazeny jako podkategorie." -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "Výchozí klíčová slova pro díly v této kategorii" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "Název dílu" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "Kategorie dílu" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "ID dílu nebo název dílu" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "Jedinečná hodnota ID dílu" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "Hodnota IPN dílu" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "Vyberte nadřazený díl" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7302,338 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "Aktualizovat díly" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "Aktualizovat cenu pro díl" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7679,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7785,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7870,15 +7883,15 @@ msgstr "" msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "" @@ -7937,7 +7950,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +7960,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +7972,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8171,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8345,108 @@ msgstr "Činnost nebyla specifikována" msgid "No matching action found" msgstr "Nebyla nalezena odpovídající činnost" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "Pro data čárového kódu nebyla nalezena shoda" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "Pro data čárového kódu byla nalezena shoda" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8454,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8526,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9160,7 +9213,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,7 +9226,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9299,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9332,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9357,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9372,316 +9425,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "" @@ -9971,7 +10024,7 @@ msgstr "V karanténě" msgid "Legacy stock tracking entry" msgstr "Původní položka sledování zásob" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "Položka zásob vytvořena" @@ -10027,7 +10080,7 @@ msgstr "Rozdělit od nadřazené položky" msgid "Split child item" msgstr "Rozdělit podřazený předmět" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "Sloučené položky zásob" @@ -10047,7 +10100,7 @@ msgstr "Výstup objednávky sestavení dokončen" msgid "Build order output rejected" msgstr "Výstup objednávky sestavení byl odmítnut" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "Spotřebováno podle objednávky" @@ -10108,7 +10161,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10169,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "Sestavení" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "" @@ -10321,7 +10374,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10386,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "Odstranit" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11007,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11811,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "" @@ -11948,7 +12001,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12021,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12076,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,12 +12124,12 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "" @@ -12129,13 +12182,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12196,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12749,39 +12802,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +12919,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12931,358 +12984,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13719,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13887,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "" @@ -13891,18 +13945,14 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "" @@ -13951,432 +14001,432 @@ msgstr "" msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "" diff --git a/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po index f09572f176..c01acabb72 100644 --- a/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:37\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Danish\n" "Language: da_DK\n" @@ -56,29 +56,29 @@ msgstr "Fejloplysninger kan findes i admin panelet" msgid "Enter date" msgstr "Angiv dato" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "Bemærkninger" @@ -135,74 +135,74 @@ msgstr "Det angivne e-mail domæne er ikke godkendt." msgid "Registration is disabled." msgstr "Registrering er deaktiveret." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "Ugyldigt antal angivet" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Serienummer streng er tom" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Duplikeret serienummer" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Ugyldig gruppesekvens: {group}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Ingen serienumre fundet" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Fjern HTML-tags fra denne værdi" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Forbindelsesfejl" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Serveren svarede med ugyldig statuskode" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Der opstod en fejl" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Serveren svarede med ugyldig Content-Length værdi" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Billedstørrelsen er for stor" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Billeddownload overskred maksimumstørrelsen" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Fjernserver returnerede tomt svar" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "Angivet URL er ikke en gyldig billedfil" @@ -366,158 +366,158 @@ msgstr "" msgid "Email" msgstr "E-mail" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "Metadata skal være et python dict objekt" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "JSON metadata felt, til brug af eksterne plugins" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Forkert formateret mønster" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "Ukendt formatnøgle angivet" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "Mangler nødvendig formatnøgle" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Referencefelt må ikke være tomt" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "Reference skal matche det påkrævede mønster" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Referencenummer er for stort" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Ugyldigt valg" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "Navn" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "Beskrivelse" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "Beskrivelse (valgfri)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "Sti" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "Markdown noter (valgfri)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Stregkode Data" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Tredjeparts stregkode data" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "Stregkode Hash" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Unik hash af stregkode data" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Eksisterende stregkode fundet" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Serverfejl" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "En fejl blev logget af serveren." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "Skal være et gyldigt tal" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "URL til ekstern billedfil" msgid "Downloading images from remote URL is not enabled" msgstr "Download af billeder fra ekstern URL er ikke aktiveret" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "Kontrol af baggrundstjeneste mislykkedes" @@ -726,17 +726,17 @@ msgstr "Om InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Produktion skal anulleres, før den kan slettes" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "Forbrugsvare" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "Valgfri" msgid "Tracked" msgstr "Sporet" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "Allokeret" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "Tilgængelig" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "Produktionsordre" @@ -789,72 +789,72 @@ msgstr "Produktionsordre" msgid "Build Orders" msgstr "Produktionsordrer" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "Ugyldigt valg for overordnet produktion" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "Byggeordre enhed kan ikke ændres" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "Produktionsordre reference" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Overordnet produktion" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "Produktionsordre som er tildelt denne produktion" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "Produktionsordre som er tildelt denne produktion" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "Del" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "Vælg dele til produktion" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Salgsordrereference" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "Salgsordre, som er tildelt denne produktion" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Kilde Lokation" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Vælg lokation for lager, som skal benyttes til denne produktion (lad feltet stå tomt for at benytte vilkårligt lager)" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "Destinations Placering" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Vælg placering, hvor de færdige elementer vil blive gemt" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "Produktions antal" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Antal lagervarer som skal produceres" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "Afsluttede elementer" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Antal lagervarer som er færdiggjort" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "Produktions Status" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "Produktions statuskode" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "Batch Kode" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "Batch kode til dette produktions output" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Oprettelsesdato" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "Projekteret afslutningsdato" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "Dato for afslutning" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "udført af" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "Udstedt af" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "Bruger som udstedte denne byggeordre" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "Ansvarlig" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "Bruger eller gruppe ansvarlig for denne byggeordre" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Ekstern link" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "Link til ekstern URL" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "Bygge Prioritet" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "Prioritet af denne byggeordre" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "Prioritet af denne byggeordre" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "Bygningsordre {build} er fuldført" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "En byggeordre er fuldført" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" @@ -1260,7 +1260,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "" @@ -1270,21 +1270,21 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "" @@ -1508,7 +1508,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1584,13 +1584,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "" @@ -1600,22 +1600,22 @@ msgstr "" msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,7 +1633,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" @@ -1684,7 +1684,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "" @@ -1696,7 +1696,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Vis QR-kode" @@ -1707,7 +1707,7 @@ msgstr "Vis QR-kode" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1786,16 +1786,16 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" @@ -1875,8 +1875,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,11 +1890,11 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -2037,15 +2037,15 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,362 +2103,370 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "" msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "Bruger" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Vedhæftning" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "Manglende fil" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Manglende eksternt link" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Vælg fil, der skal vedhæftes" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Kommentar" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3957,27 +3965,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4228,26 +4236,26 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,16 +4534,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "" @@ -4734,7 +4742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "" @@ -5203,7 +5211,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" @@ -5224,9 +5232,9 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" @@ -5239,26 +5247,26 @@ msgstr "" msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "" @@ -5286,7 +5294,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "" @@ -5310,365 +5318,365 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Afsendt" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6056,12 +6064,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6175,8 +6183,8 @@ msgstr "" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "" @@ -6272,21 +6280,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6306,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6319,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6331,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6355,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,13 +6384,17 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" @@ -6489,13 +6501,13 @@ msgstr "" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6516,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7302,338 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7679,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7785,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7870,15 +7883,15 @@ msgstr "" msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "" @@ -7937,7 +7950,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +7960,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +7972,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8171,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8345,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8454,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8526,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9160,7 +9213,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,7 +9226,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9299,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9332,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9357,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9372,316 +9425,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "" @@ -9971,7 +10024,7 @@ msgstr "I karantæne" msgid "Legacy stock tracking entry" msgstr "Forældet lager sporings post" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "Lager-element oprettet" @@ -10027,7 +10080,7 @@ msgstr "Opdel fra overordnet element" msgid "Split child item" msgstr "Opdel underordnet element" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "Flettede lagervarer" @@ -10047,7 +10100,7 @@ msgstr "Byggeorder output fuldført" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "Brugt efter byggeordre" @@ -10108,7 +10161,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10169,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "" @@ -10321,7 +10374,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10386,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11007,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11811,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "" @@ -11948,7 +12001,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12021,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12076,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,12 +12124,12 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "" @@ -12129,13 +12182,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12196,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12749,39 +12802,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +12919,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12931,358 +12984,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13719,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13887,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "" @@ -13891,18 +13945,14 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "" @@ -13951,432 +14001,432 @@ msgstr "" msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "" diff --git a/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po index 4ca44d3a74..94671c645a 100644 --- a/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:37\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -56,29 +56,29 @@ msgstr "Fehlerdetails finden Sie im Admin-Panel" msgid "Enter date" msgstr "Datum eingeben" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "Notizen" @@ -135,74 +135,74 @@ msgstr "Die angegebene E-Mail-Domain ist nicht freigegeben." msgid "Registration is disabled." msgstr "Registrierung ist deaktiviert." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "Keine gültige Menge" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Keine Seriennummer angegeben" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Duplizierter Seriennummer" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Ungültiger Gruppenbereich: {group}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Gruppenbereich {group} überschreitet die zulässige Menge ({expected_quantity})" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Ungültige Gruppensequenz: {group}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Keine Seriennummern gefunden" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Anzahl der eindeutigen Seriennummern ({len(serials)}) muss mit der Menge übereinstimmen ({expected_quantity})" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Entferne HTML-Tags von diesem Wert" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Verbindungsfehler" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Server antwortete mit ungültigem Statuscode" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Ausnahme aufgetreten" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Server antwortete mit ungültigem Wert für die Inhaltslänge" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Bild ist zu groß" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Bilddownload überschreitet maximale Größe" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Remote-Server gab leere Antwort zurück" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "Angegebene URL ist kein gültiges Bild" @@ -366,158 +366,158 @@ msgstr "[{site_name}] In App einloggen" msgid "Email" msgstr "Email" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "Fehler beim Ausführen der Plugin Validierung" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "Metadaten müssen ein Python-Dict Objekt sein" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "Plugin Metadaten" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "JSON-Metadatenfeld, für die Verwendung durch externe Plugins" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Falsch formatiertes Muster" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "Unbekannter Formatschlüssel angegeben" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "Erforderlicher Formatschlüssel fehlt" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Referenz-Feld darf nicht leer sein" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "Referenz muss erforderlichem Muster entsprechen" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Referenznummer ist zu groß" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "Doppelte Namen können nicht unter dem selben Elternteil existieren" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Ungültige Auswahl" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "Name" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "Beschreibung" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "Beschreibung (optional)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "Pfad" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "Markdown Notizen (optional)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Barcode-Daten" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Drittanbieter-Barcode-Daten" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "Barcode-Hash" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Eindeutiger Hash der Barcode-Daten" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Bestehender Barcode gefunden" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Serverfehler" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "Ein Fehler wurde vom Server protokolliert." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "Muss eine gültige Nummer sein" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "Administrator" msgid "Is this user a superuser" msgstr "Ist dieser Benutzer ein Adminstrator" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "URL der Remote-Bilddatei" msgid "Downloading images from remote URL is not enabled" msgstr "Das Herunterladen von Bildern von Remote-URLs ist nicht aktiviert" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "Hintergrund-Prozess-Kontrolle fehlgeschlagen" @@ -726,17 +726,17 @@ msgstr "Über InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Bauauftrag muss abgebrochen werden, bevor er gelöscht werden kann" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "Verbrauchsmaterial" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "Optional" msgid "Tracked" msgstr "Nachverfolgt" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "Zugeordnet" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "Verfügbar" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "Bauauftrag" @@ -789,72 +789,72 @@ msgstr "Bauauftrag" msgid "Build Orders" msgstr "Bauaufträge" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "Ungültige Wahl für übergeordneten Bauauftrag" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "Verantwortlicher Benutzer oder Gruppe muss angegeben werden" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "Teil in Bauauftrag kann nicht geändert werden" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "Bauauftragsreferenz" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Referenz" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "Kurze Beschreibung des Baus (optional)" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Eltern-Bauauftrag" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "Teil" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "Teil für den Bauauftrag wählen" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Auftrag Referenz" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "Bestellung, die diesem Bauauftrag zugewiesen ist" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Quell-Lagerort" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Entnahme-Lagerort für diesen Bauauftrag wählen (oder leer lassen für einen beliebigen Lagerort)" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "Ziel-Lagerort" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Lagerort an dem fertige Objekte gelagert werden auswählen" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "Bau-Anzahl" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Anzahl der zu bauenden Lagerartikel" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "Fertiggestellte Teile" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Anzahl der fertigen Lagerartikel" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "Bauauftrags-Status" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "Bau-Statuscode" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "Losnummer" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "Losnummer für dieses Endprodukt" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Erstelldatum" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "geplantes Fertigstellungsdatum" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Zieldatum für Bauauftrag-Fertigstellung." -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "Fertigstellungsdatum" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "Fertiggestellt von" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "Aufgegeben von" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "Nutzer der diesen Bauauftrag erstellt hat" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "Verantwortlicher Benutzer" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "Benutzer oder Gruppe verantwortlich für diesen Bauauftrag" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Externer Link" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "Link zu einer externen URL" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "Bauauftrags-Priorität" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "Priorität dieses Bauauftrags" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "Priorität dieses Bauauftrags" msgid "Project Code" msgstr "Projektcode" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "Projektcode für diesen Auftrag" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "Fehler beim Abladen der Aufgabe, um die Build-Allokation abzuschließen" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "Bauauftrag {build} wurde fertiggestellt" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "Ein Bauauftrag wurde fertiggestellt" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "kein Endprodukt angegeben" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "Endprodukt bereits hergstellt" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "Endprodukt stimmt nicht mit dem Bauauftrag überein" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "Anzahl muss größer Null sein" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "Menge kann nicht größer als die Ausgangsmenge sein" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "Build Ausgabe {serial} hat nicht alle erforderlichen Tests bestanden" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "Objekt bauen" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "Objekt bauen" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "Anzahl" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "Erforderliche Menge für Auftrag" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Bauauftragsposition muss ein Endprodukt festlegen, da der übergeordnete Teil verfolgbar ist" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Zugewiesene Menge ({q}) darf nicht verfügbare Menge ({a}) übersteigen" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "BestandObjekt ist zu oft zugewiesen" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "Reserviermenge muss größer null sein" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "Ausgewählter Lagerbestand stimmt nicht mit BOM-Linie überein" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "Lagerartikel" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "Quell-Lagerartikel" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "Anzahl an Lagerartikel dem Bauauftrag zuweisen" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "Installiere in" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "Ziel-Lagerartikel" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "Name des Teils" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "Endprodukt" @@ -1260,7 +1260,7 @@ msgstr "Ganzzahl erforderlich da die Stückliste nachverfolgbare Teile enthält" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Seriennummer" @@ -1270,21 +1270,21 @@ msgstr "Seriennummer für dieses Endprodukt eingeben" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "Lagerort" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "Lagerort für fertige Endprodukte" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "Status" @@ -1508,7 +1508,7 @@ msgstr "Fehler beim Starten der automatischen Zuweisung" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "Hersteller-Teilenummer" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "Teil-ID" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "Teil IPN" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "Seriennummer" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "Zugewiesene Menge" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1584,13 +1584,13 @@ msgstr "Nachverfolgbar" msgid "Inherited" msgstr "Vererbt" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "Varianten zulassen" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "Stücklisten-Position" @@ -1600,22 +1600,22 @@ msgstr "Stücklisten-Position" msgid "Allocated Stock" msgstr "Zugewiesener Bestand" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "Bestellt" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "In Produktion" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,7 +1633,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "Externes Lager" @@ -1684,7 +1684,7 @@ msgstr "Miniaturansicht" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "Barcode Aktionen" @@ -1696,7 +1696,7 @@ msgstr "Barcode Aktionen" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "QR-Code anzeigen" @@ -1707,7 +1707,7 @@ msgstr "QR-Code anzeigen" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "Barcode abhängen" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "Barcode anhängen" @@ -1786,16 +1786,16 @@ msgstr "Bestand wurde Bauauftrag noch nicht vollständig zugewiesen" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "Fertiggestellte Endprodukte" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "Fertiggestellte Endprodukte" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "Auftrag" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "Aufgegeben von" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "Priorität" @@ -1875,8 +1875,8 @@ msgstr "Ausgangs-Lager" msgid "Stock can be taken from any available location." msgstr "Bestand kann jedem verfügbaren Lagerort entnommen werden." -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "Ziel-Lager" @@ -1890,11 +1890,11 @@ msgstr "Zugewiesene Teile" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "Losnummer" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "Erstellt" @@ -2037,15 +2037,15 @@ msgstr "Positionen" msgid "Incomplete Outputs" msgstr "Unfertige Endprodukte" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "Link" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "Datei" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "Benutzer hat keine Berechtigung zum Löschen des Anhangs" @@ -2103,362 +2103,370 @@ msgstr "{name.title()} Datei" msgid "Select {name} file to upload" msgstr "{name} Datei zum Hochladen auswählen" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "Aktualisiert" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "Zeitstempel der letzten Aktualisierung" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "Seiten-URL ist durch die Konfiguration gesperrt" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "Eindeutiger Projektcode" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "Projektbeschreibung" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "Benutzer oder Gruppe verantwortlich für dieses Projekt" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "Einstellungs-Wert" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "Wert ist keine gültige Option" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "Wahrheitswert erforderlich" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "Nur Ganzzahl eingeben" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "Schlüsseltext muss eindeutig sein" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "Keine Gruppe" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "Neustart erforderlich" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "Eine Einstellung wurde geändert, die einen Neustart des Servers erfordert" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "Ausstehende Migrationen" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "Anzahl der ausstehenden Datenbankmigrationen" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "Name der Serverinstanz" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "Kurze Beschreibung der Instanz" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "Name der Instanz verwenden" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "Den Namen der Instanz in der Titelleiste verwenden" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "Anzeige von `Über` einschränken" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "Zeige das `Über` Fenster nur Administratoren" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "Firmenname" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "interner Firmenname" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "Basis-URL" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "Basis-URL für dieses Instanz" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "Standardwährung" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "Wählen Sie die Basiswährung für Preisberechnungen aus" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "Verfügbare Währungen" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "Liste der unterstützten Währungskürzel" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "Währungsaktualisierungsintervall" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "Wie oft Wechselkurse aktualisiert werden sollen (auf Null zum Deaktivieren setzen)" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "Tage" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "Währungs-Aktualisierungs-Plugin" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "Zu verwendendes Währungs-Aktualisierungs-Plugin" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "Von URL herunterladen" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "Herunterladen von externen Bildern und Dateien von URLs erlaubt" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "Download-Größenlimit" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "Maximal zulässige Größe für heruntergeladene Bilder" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "Benutzer-Agent zum Herunterladen von Daten" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Überschreiben des Benutzer-Agenten, der verwendet wird, um Bilder und Dateien von externer Servern herunterzuladen (leer für die Standardeinstellung)" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "Strenge URL-Prüfung" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "Erfordert die Schema-Spezifikation bei der Validierung von URLs" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "Bestätigung verpflichtend" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "Eine ausdrückliche Benutzerbestätigung für bestimmte Aktionen erfordern." -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "Baumtiefe" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Standard Ebene für Baumansicht. Tiefere Ebenen können bei Bedarf nachgeladen werden." -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "Prüfungsintervall aktualisieren" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "Wie oft soll nach Updates gesucht werden? (auf 0 setzen zum Deaktivieren)" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "Automatische Sicherung" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "Automatische Sicherung der Datenbank- und Mediendateien aktivieren" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "Intervall für automatische Sicherung" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "Anzahl der Tage zwischen automatischen Sicherungen" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "Aufgabenlöschinterval" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "Ergebnisse der Hintergrundaufgabe werden nach der angegebenen Anzahl von Tagen gelöscht" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "Löschintervall für Fehlerprotokolle" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "Fehlerprotokolle werden nach der angegebenen Anzahl von Tagen gelöscht" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "Löschintervall für Benachrichtigungen" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "Benutzerbenachrichtigungen werden nach der angegebenen Anzahl von Tagen gelöscht" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Bacode-Feature verwenden" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "Barcode-Scanner Unterstützung im Webinterface aktivieren" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "Barcode-Eingabeverzögerung" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "Verzögerungszeit bei Barcode-Eingabe" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "Barcode Webcam-Unterstützung" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "Barcode-Scannen über Webcam im Browser erlauben" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 +#: common/models.py:1419 +msgid "Barcode Generation Plugin" +msgstr "" + +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" +msgstr "" + +#: common/models.py:1425 msgid "Part Revisions" msgstr "Artikelrevisionen" -#: common/models.py:1407 +#: common/models.py:1426 msgid "Enable revision field for Part" msgstr "Revisions-Feld für Artikel aktivieren" -#: common/models.py:1412 +#: common/models.py:1431 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1413 +#: common/models.py:1432 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1418 +#: common/models.py:1437 msgid "Allow Deletion from Assembly" msgstr "Löschen aus Baugruppe erlauben" -#: common/models.py:1419 +#: common/models.py:1438 msgid "Allow deletion of parts which are used in an assembly" msgstr "Erlaube das Löschen von Teilen, die in einer Baugruppe verwendet werden" -#: common/models.py:1424 +#: common/models.py:1443 msgid "IPN Regex" msgstr "IPN Regex" -#: common/models.py:1425 +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "RegEx Muster für die Zuordnung von Teil-IPN" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "Mehrere Artikel mit gleicher IPN erlaubt" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "Mehrere Artikel mit gleicher IPN erlaubt" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "Ändern von IPN erlaubt" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "Ändern der IPN während des Bearbeiten eines Teils erlaubt" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "Teil-Stückliste kopieren" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "Stückliste von Teil kopieren wenn das Teil dupliziert wird " -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "Teil-Parameter kopieren" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "Parameter-Daten für dieses Teil kopieren wenn das Teil dupliziert wird" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "Teil-Testdaten kopieren" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "Test-Daten für dieses Teil kopieren wenn das Teil dupliziert wird" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "Kategorie-Parametervorlage kopieren" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird" msgid "Template" msgstr "Vorlage" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "Teile sind standardmäßig Vorlagen" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "Baugruppe" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "Komponente" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "Teile können standardmäßig in Baugruppen benutzt werden" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "Kaufbar" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "Artikel sind grundsätzlich kaufbar" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "Verkäuflich" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "Artikel sind grundsätzlich verkaufbar" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "Artikel sind grundsätzlich verfolgbar" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "Virtuell" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "Teile sind grundsätzlich virtuell" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "Import in Ansichten anzeigen" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "Importassistent in einigen Teil-Ansichten anzeigen" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "Verwandte Teile anzeigen" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "Verwandte Teile eines Teils anzeigen" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "Initialer Lagerbestand" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "Erstellen von Lagerbestand beim Hinzufügen eines neuen Teils erlauben" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "Initiale Lieferantendaten" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Erstellen von Lieferantendaten beim Hinzufügen eines neuen Teils erlauben" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "Anzeigeformat für Teilenamen" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "Format für den Namen eines Teiles" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "Standardsymbol der Teilkategorie" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "Standardsymbol der Teilkategorie (leer bedeutet kein Symbol)" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "Parameter Einheiten durchsetzen" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "Wenn Einheiten angegeben werden, müssen die Parameterwerte mit den angegebenen Einheiten übereinstimmen" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "Dezimalstellen für minimalen Preis" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Mindestanzahl der Dezimalstellen bei der Darstellung der Preisdaten" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "Dezimalstellen für maximalen Preis" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "Maximale Anzahl der Dezimalstellen bei der Darstellung der Preisdaten" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "Zulieferer-Preise verwenden" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Lieferanten-Staffelpreise in die Gesamt-Preisberechnungen einbeziehen" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "Kaufverlauf überschreiben" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Historische Bestellungspreise überschreiben die Lieferanten-Staffelpreise" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "Lagerartikel-Preis verwenden" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Preise aus manuell eingegebenen Lagerdaten für Preisberechnungen verwenden" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "Lagerartikelpreis Alter" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Lagerartikel, die älter als diese Anzahl an Tagen sind, von der Preisberechnung ausschließen" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "Variantenpreise verwenden" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "Variantenpreise in die Gesamt-Preisberechnungen einbeziehen" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "Nur aktive Varianten" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "Nur aktive Variantenteile zur Berechnung der Variantenbepreisung verwenden" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "Intervall für Neuberechnung von Preisen" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "Anzahl der Tage bis die Teile-Preisberechnungen automatisch aktualisiert werden" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "Interne Preise" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "Interne Preise für Teile aktivieren" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "Interne Preisüberschreibung" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "Falls verfügbar, überschreiben interne Preise Preispannenberechnungen" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "Labeldruck aktivieren" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "Labeldruck über die Website aktivieren" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "Label Bild DPI" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "DPI-Auflösung bei der Erstellung von Bilddateien für Etikettendruck-Plugins" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "Berichte aktivieren" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "Berichterstellung aktivieren" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "Entwickler-Modus" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "Berichte im Entwickler-Modus generieren (als HTML)" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "Berichtsfehler protokollieren" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "Fehler, die beim Erstellen von Berichten auftreten, protokollieren" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "Seitengröße" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "Standardseitenformat für PDF-Bericht" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "Testberichte aktivieren" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "Erstellung von Test-Berichten aktivieren" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "Testberichte anhängen" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "Beim Drucken eines Testberichts dem zugehörigen Lagerbestand eine Kopie des Testberichts beifügen" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "Global einzigartige Seriennummern" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "Seriennummern für Lagerartikel müssen global eindeutig sein" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "Seriennummern automatisch ausfüllen" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "Seriennummern in Formularen automatisch ausfüllen" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "Erschöpften Lagerartikel löschen" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "Legt das Standardverhalten fest, wenn ein Lagerartikel aufgebraucht ist" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "Losnummer Vorlage" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "Vorlage für die Generierung von Standard-Losnummern für Lagerbestände" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "Bestands-Ablauf" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "Ablaufen von Bestand ermöglichen" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "Abgelaufenen Bestand verkaufen" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "Verkauf von abgelaufenem Bestand erlaubt" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "Bestands-Stehzeit" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "Anzahl an Tagen, an denen Bestand als abgestanden markiert wird, bevor sie ablaufen" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "Abgelaufenen Bestand verbauen" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "Verbauen von abgelaufenen Bestand erlaubt" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "Bestands-Eigentümerkontrolle" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "Eigentümerkontrolle für Lagerorte und Teile aktivieren" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "Standardsymbol für Lagerort" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "Standardsymbol für Lagerstandort (leer bedeutet kein Symbol)" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "Zeige installierte Lagerartikel" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "Anzeige der installierten Lagerartikel in Bestandstabellen" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "Prüfe BOM bei der Installation von Elementen" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "Installierte Lagerbestandteile müssen im BOM für den übergeordneten Teil vorhanden sein" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "Erlaube Verschieben von \"nicht auf Lager\" Bestand" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "Lagerartikel, die nicht auf Lager sind, können zwischen Lagerstandorten übertragen werden" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "Bauauftragsreferenz-Muster" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "Benötigtes Muster für die Generierung des Referenzfeldes für Bauaufträge" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "Verantwortlicher Besitzer erforderlich" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "Jeder Bestellung muss ein verantwortlicher Besitzer zugewiesen werden" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "Blockieren bis Test bestanden" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "Verhindert die Fertigstellung bis alle erforderlichen Tests bestanden sind" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "Rücksendungen aktivieren" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "Aktivieren der Rücksendung-Funktion in der Benutzeroberfläche" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "Referenz Muster für Rücksendungen" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "Benötigtes Muster für die Generierung des Referenzfeldes für Rücksendungen" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "Abgeschlossene Rücksendungen bearbeiten" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "Bearbeitung von Rücksendungen nach Abschluss erlauben" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "Auftragsreferenz-Muster" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "Benötigtes Muster für die Generierung des Referenzfeldes für Aufträge" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "Auftrag Standardsendung" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "Erstelle eine Standardsendung für Aufträge" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "Abgeschlossene Aufträge bearbeiten" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Bearbeitung von Aufträgen nach Versand oder Abschluss erlauben" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "Versendete Bestellungen als abgeschlossen markieren" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "Als versendet markierte Aufträge werden automatisch abgeschlossen und überspringen den Status \"Versandt\"" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "Bestellungsreferenz-Muster" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "Benötigtes Muster für die Generierung des Referenzfeldes für Bestellungen" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "Abgeschlossene Einkaufsaufträge bearbeiten" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Bearbeitung von Einkaufsaufträgen nach Versand oder Abschluss erlauben" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "Bestellungen automatisch abschließen" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "Bestellung automatisch als abgeschlossen markieren, wenn der Empfang aller Artikel bestätigt wurde" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "Passwort vergessen aktivieren" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "Passwort-vergessen-Funktion auf den Anmeldeseiten aktivieren" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "Registrierung erlauben" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "Selbstregistrierung für Benutzer auf den Anmeldeseiten aktivieren" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "SSO aktivieren" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "SSO auf den Anmeldeseiten aktivieren" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "SSO Selbstregistrierung aktivieren" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Selbstregistrierung über SSO für Benutzer auf den Anmeldeseiten aktivieren" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "SSO Gruppensynchronisation aktivieren" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "SSO Gruppenschlüssel" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "Email-Adresse erforderlich" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "Benutzer müssen bei der Registrierung eine E-Mail angeben" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "SSO-Benutzer automatisch ausfüllen" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "Benutzer-Details automatisch aus SSO-Konto ausfüllen" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "E-Mail zweimal" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "Bei der Registrierung den Benutzer zweimal nach der E-Mail-Adresse fragen" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "Passwort zweimal" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "Bei der Registrierung den Benutzer zweimal nach dem Passwort fragen" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "Erlaubte Domains" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Anmeldung auf bestimmte Domänen beschränken (kommagetrennt, beginnend mit @)" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "Gruppe bei Registrierung" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "MFA erzwingen" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "Benutzer müssen Multifaktor-Authentifizierung verwenden." -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "Plugins beim Start prüfen" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Beim Start überprüfen, ob alle Plugins installiert sind - Für Container aktivieren" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "Nach Plugin-Aktualisierungen suchen" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "Periodische Überprüfungen auf Updates für installierte Plugins aktivieren" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "URL-Integration aktivieren" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "Plugins zum Hinzufügen von URLs aktivieren" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "Navigations-Integration aktivieren" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "Plugins zur Integration in die Navigation aktivieren" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "App-Integration aktivieren" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "Plugins zum Hinzufügen von Apps aktivieren" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "Terminplan-Integration aktivieren" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "Geplante Aufgaben aktivieren" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "Ereignis-Integration aktivieren" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "Plugins ermöglichen auf interne Ereignisse zu reagieren" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "Projektcodes aktivieren" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "Aktiviere Projektcodes für die Verfolgung von Projekten" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "Inventurfunktionen" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Inventur-Funktionen zur Aufzeichnung von Lagerbeständen und zur Berechnung des Lagerwerts aktivieren" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "Externe Standorte ausschließen" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Lagerartikeln in externen Standorten in der Berechnungen zur Bestandsaufnahme ausschließen" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "Automatische Inventur-Periode" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Anzahl der Tage zwischen automatischen Bestandsaufnahmen (zum Deaktivieren auf Null setzen)" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "Löschintervall für Berichte" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Inventurberichte werden nach der angegebenen Anzahl von Tagen gelöscht" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "Vollständige Namen von Benutzern anzeigen" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "Vollständigen Namen von Benutzern anstatt Benutzername anzeigen" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "Teststation-Daten aktivieren" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "Teststation-Datenerfassung für Testergebnisse aktivieren" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "Inaktive Teile ausblenden" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Ausblenden inaktiver Teile in den auf der Startseite angezeigten Ergebnissen" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "Abonnierte Teile anzeigen" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "Zeige abonnierte Teile auf der Startseite" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "Abonnierte Kategorien anzeigen" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "Zeige abonnierte Teilkategorien auf der Startseite" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "Neueste Teile anzeigen" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "Zeige neueste Teile auf der Startseite" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "Zeige ungültige Stücklisten" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "Zeige Stücklisten, die noch nicht validiert sind, auf der Startseite" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "Neueste Bestandänderungen anzeigen" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "Zeige zuletzt geänderte Lagerbestände auf der Startseite" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "Niedrigen Bestand anzeigen" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "Zeige geringen Bestand auf der Startseite" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "Lerren Bestand anzeigen" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "Zeige aufgebrauchte Lagerartikel auf der Startseite" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "Benötigten Bestand anzeigen" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "Zeige Bestand für Bauaufträge auf der Startseite" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "Abgelaufenen Bestand anzeigen" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "Zeige abgelaufene Lagerbestände auf der Startseite" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "Alten Bestand anzeigen" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "Zeige überfällige Lagerartikel auf der Startseite" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "Ausstehende Bauaufträge anzeigen" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "Zeige ausstehende Bauaufträge auf der Startseite" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "Zeige überfällige Bauaufträge" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "Zeige überfällige Bauaufträge auf der Startseite" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "Ausstehende POs anzeigen" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "Zeige ausstehende POs auf der Startseite" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "Überfällige POs anzeigen" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "Zeige überfällige POs auf der Startseite" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "Ausstehende SOs anzeigen" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "Zeige ausstehende SOs auf der Startseite" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "Überfällige SOs anzeigen" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "Zeige überfällige SOs auf der Startseite" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "Ausstehende Versandaufträge anzeigen" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "Ausstehende Versandaufträge auf der Startseite anzeigen" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "Zeige Neuigkeiten" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "Neuigkeiten auf der Startseite anzeigen" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "Label inline anzeigen" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "PDF-Labels im Browser anzeigen, anstatt als Datei herunterzuladen" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "Standard-Etikettendrucker" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "Einen standardmäßig ausgewählten Etikettendrucker konfigurieren" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "Berichte inline anzeigen" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "PDF-Berichte im Browser anzeigen, anstatt als Datei herunterzuladen" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "Teile suchen" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "Teile in der Suchvorschau anzeigen" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "Zulieferteile durchsuchen" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "Zuliefererteile in der Suchvorschau anzeigen" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "Herstellerteile durchsuchen" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "Herstellerteile in der Suchvorschau anzeigen" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "Inaktive Teile ausblenden" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "Inaktive Teile in der Suchvorschau ausblenden" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "Kategorien durchsuchen" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "Teilekategorien in der Suchvorschau anzeigen" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "Bestand durchsuchen" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "Lagerartikel in Suchvorschau anzeigen" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "Nicht verfügbare Artikel ausblenden" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "Nicht verfügbare Lagerartikel aus der Suchvorschau ausschließen" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "Lagerorte durchsuchen" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "Lagerorte in Suchvorschau anzeigen" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "Firmen durchsuchen" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "Firmen in der Suchvorschau anzeigen" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "Bauaufträge durchsuchen" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "Bauaufträge in der Suchvorschau anzeigen" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "Bestellungen durchsuchen" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "Bestellungen in der Suchvorschau anzeigen" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "Inaktive Bestellungen ausblenden" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "Inaktive Bestellungen in der Suchvorschau ausblenden" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "Aufträge durchsuchen" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "Aufträge in der Suchvorschau anzeigen" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "Inaktive Aufträge ausblenden" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "Inaktive Aufträge in der Suchvorschau ausblenden" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "Suche nach Rücksendungen" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "Rücksendungen in der Suchvorschau anzeigen" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "Inaktive Rücksendungen ausblenden" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "Inaktive Rücksendungen in der Suchvorschau ausblenden" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "Anzahl Suchergebnisse" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "Anzahl der Ergebnisse, die in der Vorschau pro Sektion angezeigt werden sollen" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "Regex Suche" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "Reguläre Ausdrücke in Suchabfragen aktivieren" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "Ganzes Wort suchen" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "Suchabfragen liefern Ergebnisse für ganze Wortkombinationen" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "zeige Bestand in Eingabemasken" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "Zeige den verfügbaren Bestand in einigen Eingabemasken" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "Esc-Taste schließt Formulare" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "Benutze die Esc-Taste, um Formulare zu schließen" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "Fixierter Navigationsleiste" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "Position der Navigationsleiste am oberen Bildschirmrand fixieren" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "Datumsformat" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "Bevorzugtes Format für die Anzeige von Daten" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Teilzeitplanung" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "Zeige Zeitplanung für Teile" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Inventur" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Zeigt Inventur-Informationen an (falls die Inventurfunktion aktiviert ist)" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "Zeichenkettenlänge in Tabellen" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "Maximale Länge für Zeichenketten, die in Tabellenansichten angezeigt werden" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "Fehlerberichte empfangen" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "Benachrichtigungen bei Systemfehlern erhalten" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "Zuletzt verwendete Druckmaschinen" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "Die zuletzt benutzten Druckmaschinen für einen Benutzer speichern" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "Benutzer" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "Preisstaffelungs Anzahl" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Preis" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "Stückpreis für die angegebene Anzahl" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "Endpunkt" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "Endpunkt, an dem dieser Webhook empfangen wird" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "Name für diesen Webhook" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "Ist dieser Webhook aktiv" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "Token" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "Token für Zugang" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "Geheimnis" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "Shared Secret für HMAC" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "Nachrichten-ID" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "Eindeutige Kennung für diese Nachricht" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "Host" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "Host von dem diese Nachricht empfangen wurde" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "Kopfzeile" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "Header dieser Nachricht" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "Body" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "Body dieser Nachricht" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "Endpunkt, über den diese Nachricht empfangen wurde" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "Bearbeitet" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "Wurde die Arbeit an dieser Nachricht abgeschlossen?" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "ID" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Titel" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "Link" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "Veröffentlicht" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Autor" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "Zusammenfassung" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "Gelesen" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "Wurde diese Nachricht gelesen?" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "Wurde diese Nachricht gelesen?" msgid "Image" msgstr "Bild" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "Bilddatei" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "Einheitsname muss eine gültige Kennung sein" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "Einheitsname" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Symbol" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "Optionales Einheitssymbol" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definition" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "Einheitsdefinition" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Anhang" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "Fehlende Datei" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Fehlender externer Link" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Datei zum Anhängen auswählen" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Kommentar" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "Upload Datum" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "Datum der hochgeladenen Datei" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "Dateigröße" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "Dateigröße in Bytes" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "Ungültiger Modelltyp für Anhang angegeben" @@ -3957,27 +3965,27 @@ msgstr "Modelltyp" msgid "User does not have permission to create or edit attachments for this model" msgstr "Benutzer hat keine Berechtigung, Anhänge für dieses Modell zu erstellen oder zu bearbeiten" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "Eine leere Domain ist nicht erlaubt." -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Ungültiger Domainname: {domain}" @@ -4228,26 +4236,26 @@ msgstr "Versandnotizen für interne Verwendung" msgid "Link to address information (external)" msgstr "Link zu Adressinformationen (extern)" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Herstellerteil" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Basisteil" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "Teil auswählen" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "Teil auswählen" msgid "Manufacturer" msgstr "Hersteller" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "Hersteller auswählen" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "MPN" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "Externe URL für das Herstellerteil" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "Teilbeschreibung des Herstellers" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "Teilenummer des Herstellers" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "Parametername" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "Wert" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "Parameterwert" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "Einheiten" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "Parametereinheit" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "Zuliefererteil" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "Packeinheiten müssen mit den Basisteileinheiten kompatibel sein" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "Packeinheiten müssen größer als Null sein" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "Verlinktes Herstellerteil muss dasselbe Basisteil referenzieren" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "Zulieferer" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "Zulieferer auswählen" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "Lagerbestandseinheit (SKU) des Zulieferers" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "Ist dieser Lieferantenteil aktiv?" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "Herstellerteil auswählen" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "Teil-URL des Zulieferers" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "Zuliefererbeschreibung des Teils" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "Zuliefererbeschreibung des Teils" msgid "Note" msgstr "Notiz" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "Basiskosten" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "Mindestpreis" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "Verpackungen" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "Teile-Verpackungen" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "Packmenge" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Gesamtmenge, die in einer einzelnen Packung geliefert wird. Für Einzelstücke leer lassen." -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "Vielfache" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "Mehrere bestellen" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "Verfügbare Menge von Lieferanten" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "Verfügbarkeit aktualisiert" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "Datum des letzten Updates der Verfügbarkeitsdaten" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "Standard-Währung für diesen Zulieferer" msgid "Company Name" msgstr "Firmenname" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "Auf Lager" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "Inaktiv" @@ -4526,16 +4534,16 @@ msgstr "Bild von URL herunterladen" msgid "Delete image" msgstr "Bild löschen" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "Kunde" @@ -4734,7 +4742,7 @@ msgstr "Keine Herstellerdaten verfügbar" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "Parameter hinzufügen" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "Keine Lieferanteninformationen verfügbar" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "Lieferanten-Teilenummer" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "Zulieferer-Bestand" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "Neuen Lagerartikel hinzufügen" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "Neuer Lagerartikel" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "Verfügbarkeit der Teile aktualisieren" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "Lagerartikel" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "Wert" @@ -5203,7 +5211,7 @@ msgstr "Konfigurationstyp" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "Gesamtpreis" @@ -5224,9 +5232,9 @@ msgstr "Hat Preise" msgid "No matching purchase order found" msgstr "Keine passende Bestellung gefunden" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "Bestellung" @@ -5239,26 +5247,26 @@ msgstr "Bestellung abgeschlossen" msgid "Order Pending" msgstr "Bestellung ausstehend" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "Bestellung" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "Rücksendeauftrag" @@ -5286,7 +5294,7 @@ msgstr "Auftragsbeschreibung (optional)" msgid "Select project code for this order" msgstr "Projektcode für diesen Auftrag auswählen" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "Link auf externe Seite" @@ -5310,365 +5318,365 @@ msgstr "Ansprechpartner für diesen Auftrag" msgid "Company address for this order" msgstr "Firmenadresse für diesen Auftrag" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "Bestell-Referenz" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "Bestellungs-Status" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "Firma bei der die Teile bestellt werden" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "Zulieferer-Referenz" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "Zulieferer Bestellreferenz" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "Empfangen von" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "Aufgabedatum" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "Datum an dem die Bestellung aufgegeben wurde" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "Datum an dem der Auftrag fertigstellt wurde" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "Teile-Zulieferer muss dem Zulieferer der Bestellung entsprechen" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "Anzahl muss eine positive Zahl sein" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "Firma an die die Teile verkauft werden" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "Kundenreferenz" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "Bestellreferenz" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "Versanddatum" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "Versand von" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "Bestellung ist bereits abgeschlossen" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "Bestellung ist bereits storniert" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "Nur ein offener Auftrag kann als abgeschlossen markiert werden" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Auftrag kann nicht abgeschlossen werden, da unvollständige Sendungen vorhanden sind" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "Auftrag kann nicht abgeschlossen werden, da es unvollständige Positionen gibt" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "Anzahl" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "Position - Referenz" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "Position - Notizen" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Zieldatum für diesen Einzelposten (leer lassen, um das Zieldatum des Auftrags zu verwenden)" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "Positionsbeschreibung (optional)" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "Kontext" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "Zusätzlicher Kontext für diese Zeile" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "Stückpreis" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "Lieferantenteil muss mit Lieferant übereinstimmen" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "gelöscht" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "Zuliefererteil" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "Empfangen" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "Empfangene Objekt-Anzahl" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "Preis" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "Preis pro Einheit" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "Wo möchte der Käufer diesen Artikel gelagert haben?" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "Ein virtuelles Teil kann nicht einem Auftrag zugeordnet werden" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "Nur verkaufbare Teile können einem Auftrag zugewiesen werden" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Verkaufspreis" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "Stückverkaufspreis" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Versendet" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "Versendete Menge" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "Versanddatum" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "Lieferdatum" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "Versanddatum" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "Kontrolliert von" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "Benutzer, der diese Sendung kontrolliert hat" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "Sendung" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "Sendungsnummer" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "Sendungsverfolgungsnummer" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "Informationen zur Sendungsverfolgung" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "Rechnungsnummer" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "Referenznummer für zugehörige Rechnung" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "Sendung wurde bereits versandt" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "Sendung hat keine zugewiesene Lagerartikel" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "Lagerartikel wurde nicht zugewiesen" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "Kann Lagerartikel keiner Zeile mit einem anderen Teil hinzufügen" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "Kann Lagerartikel keiner Zeile ohne Teil hinzufügen" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Die zugeordnete Anzahl darf nicht die verfügbare Anzahl überschreiten" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "Anzahl für serialisierte Lagerartikel muss 1 sein" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "Auftrag gehört nicht zu Sendung" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "Sendung gehört nicht zu Auftrag" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "Position" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "Sendungsnummer-Referenz" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "Position" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "Lagerartikel für Zuordnung auswählen" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "Anzahl für Bestandszuordnung eingeben" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "Rücksendungsreferenz" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "Firma von der die Artikel zurückgeschickt werden" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "Status der Rücksendung" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "Nur serialisierte Artikel können einer Rücksendung zugeordnet werden" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "Artikel zur Rücksendung auswählen" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "Empfangsdatum" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "Das Datum des Empfangs dieses Rücksendeartikels" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "Ergebnis" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "Ergebnis für dieses Zeilenelement" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "Kosten für die Rückgabe oder Reparatur dieses Objektes" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ 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:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "Interne Teilenummer" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "Zielort für empfangene Teile auswählen" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "Losnummer für eingehende Lagerartikel" @@ -6056,12 +6064,12 @@ msgstr "Auswahl duplizieren" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Zeile entfernen" @@ -6175,8 +6183,8 @@ msgstr "Kundenreferenz" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "Ausstehende Sendungen" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "Aktionen" @@ -6272,21 +6280,21 @@ msgstr "Stückpreis für {part} auf {price} aktualisiert" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "{part} Stückpreis auf {price} und Menge auf {qty} aktualisiert" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "IPN (Interne Produktnummer)" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "Version" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "Schlüsselwörter" @@ -6298,7 +6306,7 @@ msgstr "Artikelbild" msgid "Category ID" msgstr "Kategorie-ID" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "Kategoriename" @@ -6311,11 +6319,11 @@ msgstr "Standard-Standortnummer" msgid "Default Supplier ID" msgstr "Standard-Lieferantennummer" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Variante von" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Minimaler Bestand" @@ -6323,19 +6331,19 @@ msgstr "Minimaler Bestand" msgid "Used In" msgstr "Benutzt in" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "Im Bau" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "Minimale Kosten" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "Maximale Kosten" @@ -6347,19 +6355,19 @@ msgstr "Eltern ID" msgid "Parent Name" msgstr "Name des übergeordneten Teils" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "Pfad zur Kategorie" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "Teile" @@ -6376,13 +6384,17 @@ msgstr "Stücklisten-Position ID" msgid "Parent IPN" msgstr "Übergeordnete IPN" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "Niedrigster Preis" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "Mehrstufig" msgid "Include sub-categories in filtered results" msgstr "Unterkategorien in gefilterte Ergebnisse einbeziehen" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "Übergeordnetes" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "Kategorie" @@ -6489,13 +6501,13 @@ msgstr "Kategorie" msgid "Uses" msgstr "Verwendet" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "Standard-Lagerort" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Gesamtbestand" @@ -6504,784 +6516,785 @@ msgstr "Gesamtbestand" msgid "Input quantity for price calculation" msgstr "Menge für die Preisberechnung" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Teil-Kategorie" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Teil-Kategorien" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "Standard-Lagerort für Teile dieser Kategorie" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "Strukturell" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "Teile können nicht direkt einer strukturellen Kategorie zugeordnet werden, können aber untergeordneten Kategorien zugeordnet werden." -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "Standard Stichwörter" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "Standard-Stichworte für Teile dieser Kategorie" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Symbol" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "Symbol (optional)" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "Sie können diese Teilekategorie nicht als strukturell festlegen, da ihr bereits Teile zugewiesen sind!" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "Dieses Teil kann nicht gelöscht werden, da es noch aktiv ist" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "Dieses Teil kann nicht gelöscht werden, da es in einem Bauauftrag verwendet wird" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "Ungültige Auswahl für übergeordnetes Teil" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "Teil '{self}' kann in der Stückliste nicht für '{parent}' (rekursiv) verwendet werden" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "Teil '{parent}' wird in der Stückliste für '{self}' (rekursiv) verwendet" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "IPN muss mit Regex-Muster {pattern} übereinstimmen" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "Ein Lagerartikel mit dieser Seriennummer existiert bereits" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "Doppelte IPN in den Teil-Einstellungen nicht erlaubt" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "Teil mit diesem Namen, IPN und Revision existiert bereits." -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "Strukturellen Teilekategorien können keine Teile zugewiesen werden!" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "Name des Teils" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "Ist eine Vorlage" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "Ist dieses Teil eine Vorlage?" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "Ist dieses Teil eine Variante eines anderen Teils?" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "Artikelbeschreibung (optional)" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "Teile-Kategorie" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "Revisions- oder Versionsnummer" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "Wo wird dieses Teil normalerweise gelagert?" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "Standard Zulieferer" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "Standard Zuliefererteil" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "Standard Ablaufzeit" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "Ablauf-Zeit (in Tagen) für Bestand dieses Teils" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "Minimal zulässiger Bestand" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "Maßeinheit für diesen Teil" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "Kann dieses Teil aus anderen Teilen angefertigt werden?" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "Kann dieses Teil zum Bauauftrag von anderen genutzt werden?" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "Hat dieses Teil Tracking für einzelne Objekte?" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "Kann dieses Teil von externen Zulieferern gekauft werden?" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "Kann dieses Teil an Kunden verkauft werden?" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "Ist dieses Teil aktiv?" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "Ist dieses Teil virtuell, wie zum Beispiel eine Software oder Lizenz?" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "Prüfsumme der Stückliste gespeichert" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "Stückliste kontrolliert von" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "BOM Kontrolldatum" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "Erstellungs-Nutzer" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "Verantwortlicher Besitzer für dieses Teil" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "Letzte Inventur" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "Mehrere verkaufen" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "Währung für die Berechnung der Preise im Cache" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "Minimale Stücklisten Kosten" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "Minimale Kosten für Teile" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "Maximale Stücklisten Kosten" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "Maximale Kosten für Teile" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "Minimale Einkaufskosten" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "Minimale historische Kaufkosten" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "Maximale Einkaufskosten" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "Maximale historische Einkaufskosten" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "Minimaler interner Preis" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "Minimale Kosten basierend auf den internen Staffelpreisen" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "Maximaler interner Preis" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "Maximale Kosten basierend auf internen Preisstaffeln" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "Minimaler Lieferantenpreis" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "Mindestpreis für Teil von externen Lieferanten" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "Maximaler Lieferantenpreis" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "Maximaler Preis für Teil von externen Lieferanten" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "Minimale Variantenkosten" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "Berechnete minimale Kosten für Variantenteile" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "Maximale Variantenkosten" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "Berechnete maximale Kosten für Variantenteile" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "Mindestkosten überschreiben" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "Maximale Kosten überschreiben" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "Berechnete Mindestkosten" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "Berechnete Maximalkosten" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "Mindestverkaufspreis" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "Mindestverkaufspreis basierend auf Staffelpreisen" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "Maximaler Verkaufspreis" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "Maximalverkaufspreis basierend auf Staffelpreisen" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "Mindestverkaufskosten" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "Minimaler historischer Verkaufspreis" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "Maximale Verkaufskosten" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "Maximaler historischer Verkaufspreis" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "Teil für die Inventur" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "Stückzahl" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "Anzahl einzelner Bestandseinträge zum Zeitpunkt der Inventur" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "Insgesamt verfügbarer Lagerbestand zum Zeitpunkt der Inventur" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "Datum" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "Datum der Inventur" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "Zusätzliche Notizen" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "Benutzer, der diese Inventur durchgeführt hat" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "Mindestbestandswert" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "Geschätzter Mindestwert des vorhandenen Bestands" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "Maximaler Bestandswert" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "Geschätzter Maximalwert des vorhandenen Bestands" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "Bericht" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "Inventur-Berichtsdatei (intern generiert)" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "Anzahl der Teile" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "Anzahl der Teile, die von der Inventur abgedeckt werden" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "Benutzer, der diesen Inventurbericht angefordert hat" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "Ungültiger Vorlagenname - es muss mindestens ein alphanumerisches Zeichen enthalten sein" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "Auswahl muss einzigartig sein" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "Test-Vorlagen können nur für verfolgbare Teile angelegt werden" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "Testvorlage mit demselben Schlüssel existiert bereits für Teil" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "Test-Name" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "Namen für diesen Test eingeben" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "Testschlüssel" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "Vereinfachter Schlüssel zum Test" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "Test-Beschreibung" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "Beschreibung für diesen Test eingeben" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "Aktiviert" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "Ist dieser Test aktiviert?" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "Benötigt" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "Muss dieser Test erfolgreich sein?" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "Erfordert Wert" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "Muss für diesen Test ein Wert für das Test-Ergebnis eingetragen werden?" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "Anhang muss eingegeben werden" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "Muss für diesen Test ein Anhang für das Test-Ergebnis hinzugefügt werden?" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "Auswahlmöglichkeiten" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "Gültige Optionen für diesen Test (durch Komma getrennt)" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "Checkbox-Parameter können keine Einheiten haben" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "Checkbox-Parameter können keine Auswahl haben" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "Vorlagen-Name des Parameters muss eindeutig sein" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "Name des Parameters" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "Physikalische Einheiten für diesen Parameter" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "Parameter-Beschreibung" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "Checkbox" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "Ist dieser Parameter eine Checkbox?" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "Gültige Optionen für diesen Parameter (durch Kommas getrennt)" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "Ungültige Auswahl für Parameterwert" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "Ausgangsteil" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Parameter Vorlage" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "Parameter Wert" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Standard-Wert" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "Standard Parameter Wert" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "Teilnummer oder Teilname" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "Eindeutige Teil-ID" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "IPN-Wert des Teils" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "Stufe" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "Stücklistenebene" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "Ausgangsteil auswählen" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "Untergeordnetes Teil" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "Teil für die Nutzung in der Stückliste auswählen" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "Diese Stücklisten-Position ist optional" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Diese Stücklisten-Position ist ein Verbrauchsartikel (sie wird nicht in Bauaufträgen verfolgt)" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Überschuss" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Geschätzter Ausschuss (absolut oder prozentual)" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "Referenz der Postion auf der Stückliste" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "Notizen zur Stücklisten-Position" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "Prüfsumme" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "überprüft" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "Diese Stücklistenposition wurde validiert" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "Wird vererbt" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Diese Stücklisten-Position wird in die Stücklisten von Teil-Varianten vererbt" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Bestand von Varianten kann für diese Stücklisten-Position verwendet werden" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "Menge muss eine Ganzzahl sein" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "Zuliefererteil muss festgelegt sein" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "Stücklisten Ersatzteile" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "Ersatzteil kann nicht identisch mit dem Hauptteil sein" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "Übergeordnete Stücklisten Position" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "Ersatzteil" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "Teil 1" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "Teil 2" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "verknüpftes Teil auswählen" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "Teil-Beziehung kann nicht zwischen einem Teil und sich selbst erstellt werden" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "Doppelte Beziehung existiert bereits" @@ -7289,338 +7302,338 @@ msgstr "Doppelte Beziehung existiert bereits" msgid "Parent Category" msgstr "Übergeordnete Kategorie" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "Übergeordnete Teilkategorie" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Unter-Kategorien" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "Ergebnisse" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "Anzahl der Ergebnisse, die in dieser Vorlage aufgezeichnet wurden" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "Kaufwährung dieses Lagerartikels" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "Anzahl der Teile, die diese Vorlage verwenden" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "Keine Teile ausgewählt" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "Kategorie auswählen" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "Originalteil" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "Originalteil zum Duplizieren auswählen" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "Bild kopieren" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "Bild vom Originalteil kopieren" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "Stückliste kopieren" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "Stückliste vom Originalteil kopieren" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "Parameter kopieren" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "Parameterdaten vom Originalteil kopieren" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "Anmerkungen kopieren" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "Notizen aus Originalteil kopieren" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "Start-Bestandsmenge" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Initiale Lagermenge für dieses Teil. Wenn die Menge null ist, wird kein Lagerbestand hinzugefügt." -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "Initialer Lagerort" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "Lagerstandort für dieses Teil angeben" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "Lieferant auswählen (oder leer lassen, um zu überspringen)" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "Hersteller auswählen (oder leer lassen, um zu überspringen)" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "Hersteller-Teilenummer" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "Ausgewählte Firma ist kein gültiger Lieferant" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "Ausgewählte Firma ist kein gültiger Hersteller" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "Herstellerteil mit dieser MPN existiert bereits" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "Lieferantenteil mit dieser SKU existiert bereits" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "Nicht zugewiesenes Lager" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "Alternatives Lager" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "Teil duplizieren" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "Initiale Daten von anderem Teil kopieren" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "Initialer Lagerbestand" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "Erstelle Teil mit Ausgangsbestand" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "Lieferanteninformationen" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "Lieferanteninformationen zu diesem Teil hinzufügen" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "Kategorieparameter kopieren" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "Parametervorlagen aus der ausgewählten Teilkategorie kopieren" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "Vorhandenes Bild" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "Dateiname eines vorhandenen Teilbildes" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "Bilddatei existiert nicht" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "Inventurbericht auf ein bestimmtes Teil und alle Variantenteile beschränken" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "Inventurbericht auf eine bestimmte Teilekategorie und alle untergeordneten Kategorien beschränken" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "Inventurbericht auf einen bestimmten Lagerort und alle untergeordneten Lagerorte beschränken" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "Externen Bestand ausschließen" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "Lagerartikel an externen Orten ausschließen" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "Bericht generieren" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "Erstelle Berichtsdatei mit berechneten Inventurdaten" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "Teile aktualisieren" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "Angegebene Teile mit berechneten Inventurdaten aktualisieren" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "Inventur-Funktionalität ist nicht aktiviert" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "Berechneten Wert für Mindestpreis überschreiben" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "Mindestpreis Währung" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "Berechneten Wert für maximalen Preis überschreiben" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "Maximalpreis Währung" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "Aktualisieren" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "Preis für dieses Teil aktualisieren" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "Konnte nicht von den angegebenen Währungen in {default_currency} umrechnen" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "Mindestpreis darf nicht größer als der Maximalpreis sein" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "Der Maximalpreis darf nicht kleiner als der Mindestpreis sein" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "Herstellbar" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "Teil auswählen, von dem Stückliste kopiert wird" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "Bestehende Daten entfernen" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "Bestehende Stücklisten-Positionen vor dem Kopieren entfernen" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "Vererbtes einschließen" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "Stücklisten-Positionen einbeziehen, die von Vorlage-Teilen geerbt werden" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "Ungültige Zeilen überspringen" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "Aktiviere diese Option, um ungültige Zeilen zu überspringen" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "Ersatzteile kopieren" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "Ersatzteile beim Duplizieren von Stücklisten-Positionen kopieren" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "Bestehende Stückliste löschen" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "Bestehende Stücklisten-Positionen vor dem Importieren entfernen" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "Keine Teilspalte angegeben" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "Mehrere übereinstimmende Teile gefunden" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "Keine passenden Teile gefunden" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "Teil ist nicht als Komponente angelegt" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "Menge nicht angegeben" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "Ungültige Menge" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "Mindestens eine Stückliste-Position ist erforderlich" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "Gesamtstückzahl" @@ -7666,65 +7679,65 @@ msgstr "Die Stückliste wurde zuletzt von %(checker)s am %(check_date)s kontroll msgid "This BOM has not been validated." msgstr "Die Stückliste wurde noch nicht kontrolliert." -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "Inventur für diese Teilekategorie durchführen" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "Sie haben Benachrichtigungen für diese Kategorie abonniert" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "Benachrichtigungen für diese Kategorie abonnieren" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "Kategorieaktionen" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "Kategorie bearbeiten" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "Kategorie bearbeiten" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "Kategorie löschen" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "Kategorie löschen" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "Oberste Teil-Kategorie" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "Teile (inklusive Unter-Kategorien)" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "Neues Teil anlegen" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "Neues Teil" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "Teilparameter" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "Teil-Kategorie anlegen" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "Neue Kategorie" @@ -7772,7 +7785,7 @@ msgstr "Inventurinformationen hinzufügen" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "Inventur" @@ -7870,15 +7883,15 @@ msgstr "Zulieferer" msgid "Part Manufacturers" msgstr "Teil-Hersteller" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "Verknüpftes Teil" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "Verknüpftes Teil hinzufügen" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "Testergebnis-Vorlage hinzufügen" @@ -7937,7 +7950,7 @@ msgstr "Benachrichtigungen für dieses Teil abonnieren" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "Label drucken" @@ -7947,7 +7960,7 @@ msgstr "Kosteninformationen ansehen" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "Bestands-Aktionen" @@ -7959,7 +7972,7 @@ msgstr "Bestand zählen" msgid "Transfer part stock" msgstr "Teilbestand verschieben" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "Teile Aktionen" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "Minimaler Bestand" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "Varianten" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "Bestand" @@ -8158,7 +8171,7 @@ msgstr "Artikelpreise überschreiben" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "Bearbeiten" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "Zuletzt aktualisiert" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "Preise aktualisieren" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "Kein Bestand" @@ -8332,100 +8345,108 @@ msgstr "Keine Aktion angegeben" msgid "No matching action found" msgstr "Keine passende Aktion gefunden" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "Keine Treffer für Barcode" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "Treffer für Barcode gefunden" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "Barcode entspricht einem bereits vorhandenen Artikel" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "Keine passenden Teiledaten gefunden" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "Keine passenden Zulieferteile gefunden" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "Mehrere passende Zulieferteile gefunden" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "Zulieferteil zugeordnet" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "Artikel wurde bereits erhalten" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "Keine Übereinstimmung für Zulieferbarcode" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "Mehrere passende Elemente gefunden" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "Kein passendes Element gefunden" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "Barcode stimmt nicht mit einem vorhandenen Lagerartikel überein" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "Lagerartikel stimmt nicht mit dem Element überein" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "Unzureichender Bestand verfügbar" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "Lagerartikel der Bestellung zugeordnet" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "Nicht genügend Informationen" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "Mehrere passende Lieferantenteile für Barcode gefunden" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "Mehrere Einkaufsaufträge gefunden mit '{order}'" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "Keine passende Bestellung für '{order}'" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "Bestellung entspricht nicht dem Lieferanten" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "Ausstehender Artikel für Lieferantenteil konnte nicht gefunden werden" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "Weitere Informationen zum Empfang des Zeilenelements erforderlich" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "Erhaltene Bestellartikel" @@ -8433,51 +8454,59 @@ msgstr "Erhaltene Bestellartikel" msgid "Scanned barcode data" msgstr "Gescannte Barcode Daten" -#: plugin/base/barcodes/serializers.py:81 +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" +msgstr "" + +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 msgid "Purchase Order to allocate items against" msgstr "Ordne Artikel Bestellung zu" -#: plugin/base/barcodes/serializers.py:87 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order is not pending" msgstr "Bestellung ist nicht ausstehend" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:129 msgid "PurchaseOrder to receive items against" msgstr "Ordne erhaltene Artikel Bestellung zu" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "Bestellung wurde nicht aufgegeben" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "Ort für den Empfang von Artikeln" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "Kann keinen strukturellen Standort auswählen" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "Kundenauftrag zum Zuordnen von Artikeln zu" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "Bestellung ist nicht ausstehend" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "Artikel der Verkaufsbestellung zuweisen" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "Sendung des Verkaufsauftrags zur Zuweisung von Artikeln gegen" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "Sendung wurde bereits geliefert" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "Zugewiesene Menge" @@ -8497,15 +8526,15 @@ msgstr "Fehler beim Rendern des Etikett als HTML" msgid "No items provided to print" msgstr "Keine Elemente zum Drucken übergeben" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "InvenTree Barcodes" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "Bietet native Unterstützung für Barcodes" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "Bietet native Unterstützung für Barcodes" msgid "InvenTree contributors" msgstr "InvenTree Mitwirkende" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "InvenTree Benachrichtigungen" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "Keine korrekten Objekte für Vorlage gegeben" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "Fortschritt" @@ -9160,7 +9213,7 @@ msgstr "Lieferant gelöscht" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "Stück-Preis" @@ -9173,7 +9226,7 @@ msgstr "Zusätzliche Positionen" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "Summe" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "Testergebnisse" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "Test" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "Ergebnis" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "Verbaute Objekte" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "Seriennummer" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "Die Bestandsdatei ist nicht vorhanden" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "Bilddatei nicht gefunden" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "part_image tag benötigt eine Bauteilinstanz" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "company_image tag erfordert eine Firmeninstanz" @@ -9246,8 +9299,8 @@ msgstr "company_image tag erfordert eine Firmeninstanz" msgid "Location ID" msgstr "Standort-ID" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "Lagerortpfad" @@ -9279,7 +9332,7 @@ msgstr "Lieferant" msgid "Customer ID" msgstr "Kunden ID" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "verbaut in" @@ -9304,9 +9357,9 @@ msgstr "Überprüfung erforderlich" msgid "Delete on Deplete" msgstr "Löschen wenn leer" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "Ablaufdatum" @@ -9372,316 +9425,316 @@ msgstr "Das Zulieferteil hat eine Packungsgröße definiert, aber das Kennzeiche msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Seriennummern können für nicht verfolgbare Teile nicht angegeben werden" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "Lagerstandort Typ" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "Lagerstandorte Typen" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "Standardsymbol für alle Orte, die kein Icon gesetzt haben (optional)" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Bestand-Lagerort" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Bestand-Lagerorte" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Besitzer" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "Besitzer auswählen" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Lagerartikel können nicht direkt an einen strukturellen Lagerort verlegt werden, können aber an einen untergeordneten Lagerort verlegt werden." -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "Extern" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "Dies ist ein externer Lagerort" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "Standorttyp" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "Standortart dieses Standortes" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "Sie können diesen Lagerort nicht als strukturell markieren, da sich bereits Lagerartikel darin befinden!" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "Lagerartikel können nicht in strukturelle Lagerorte abgelegt werden!" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "Für virtuelle Teile können keine Lagerartikel erstellt werden" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "Artikeltyp ('{self.supplier_part.part}') muss {self.part} sein" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "Anzahl muss für Objekte mit Seriennummer 1 sein" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Seriennummer kann nicht gesetzt werden wenn die Anzahl größer als 1 ist" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "Teil kann nicht zu sich selbst gehören" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "Teil muss eine Referenz haben wenn is_building wahr ist" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "Referenz verweist nicht auf das gleiche Teil" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "Eltern-Lagerartikel" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "Basis-Teil" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "Passendes Zuliefererteil für diesen Lagerartikel auswählen" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "Wo wird dieses Teil normalerweise gelagert?" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "Verpackung, in der dieser Lagerartikel gelagert ist" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "Ist dieses Teil in einem anderen verbaut?" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "Seriennummer für dieses Teil" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "Losnummer für diesen Lagerartikel" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "Bestand" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "Quellbau" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "Bauauftrag für diesen Lagerartikel" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "Verbraucht von" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "Bauauftrag der diesen Lagerartikel verbrauchte" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "Quelle Bestellung" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "Bestellung für diesen Lagerartikel" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "Ziel-Auftrag" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Ablaufdatum für Lagerartikel. Bestand wird danach als abgelaufen gekennzeichnet" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "Löschen wenn leer" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "Diesen Lagerartikel löschen wenn der Bestand aufgebraucht ist" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "Preis für eine Einheit bei Einkauf" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "In Teil umgewandelt" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "Teil ist nicht verfolgbar" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "Anzahl muss eine Ganzzahl sein" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "Menge darf die verfügbare Lagermenge ({self.quantity}) nicht überschreiten" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "Seriennummern muss eine Liste von Ganzzahlen sein" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "Anzahl stimmt nicht mit den Seriennummern überein" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "Seriennummern existieren bereits" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "Testvorlage existiert nicht" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "Artikel wurde einem Kundenauftrag zugewiesen" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "Lagerartikel ist in anderem Element verbaut" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "Lagerartikel enthält andere Artikel" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "Artikel wurde einem Kunden zugewiesen" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "Lagerartikel wird aktuell produziert" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "Nachverfolgbare Lagerartikel können nicht zusammengeführt werden" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "Artikel duplizeren" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "Lagerartikel müssen auf dasselbe Teil verweisen" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "Lagerartikel müssen auf dasselbe Lieferantenteil verweisen" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "Status-Codes müssen zusammenpassen" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "Lagerartikel kann nicht bewegt werden, da kein Bestand vorhanden ist" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "Eintrags-Notizen" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "Wert muss für diesen Test angegeben werden" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "Anhang muss für diesen Test hochgeladen werden" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "Testergebnis" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "Test Ausgabe Wert" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "Test Ergebnis Anhang" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "Test Notizen" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "Teststation" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "Der Bezeichner der Teststation, in der der Test durchgeführt wurde" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "Gestartet" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "Der Zeitstempel des Teststarts" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "Fertiggestellt" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "Der Zeitstempel der Test-Beendigung" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "Keine Lagerartikel ausgewählt" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Unter-Lagerorte" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "Übergeordneter Lagerort" @@ -9971,7 +10024,7 @@ msgstr "In Quarantäne" msgid "Legacy stock tracking entry" msgstr "Alter Bestand-Verfolgungs-Eintrag" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "Lagerartikel erstellt" @@ -10027,7 +10080,7 @@ msgstr "Vom übergeordneten Element geteilt" msgid "Split child item" msgstr "Unterobjekt geteilt" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "Lagerartikel zusammengeführt" @@ -10047,7 +10100,7 @@ msgstr "Endprodukt fertiggestellt" msgid "Build order output rejected" msgstr "Endprodukt abgelehnt" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "Durch Bauauftrag verbraucht" @@ -10108,7 +10161,7 @@ msgstr "Lagerartikel-Notizen" msgid "Installed Stock Items" msgstr "Installierte Lagerartikel" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "Lagerartikel installieren" @@ -10116,7 +10169,7 @@ msgstr "Lagerartikel installieren" msgid "Delete all test results for this stock item" msgstr "Alle Testergebnisse für diesen Lagerartikel löschen" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "Testergebnis hinzufügen" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "zu Lagerort einscannen" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "Druck Aktionen" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "Bestands-Anpassungs Aktionen" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "Bestand zählen" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "Bestand hinzufügen" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "Bestand entfernen" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "Bestand serialisieren" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "Bestand verschieben" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "Kunden zuweisen" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "Lagerartikel löschen" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "Bauauftrag" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "Sie gehören nicht zu den Eigentümern dieses Objekts und können es nicht ändern." #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "Nur Leserechte" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "Zur nächsten Seriennummer wechseln" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "Kein Lagerort gesetzt" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "Keine Inventur ausgeführt" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "Lagerartikel" @@ -10321,7 +10374,7 @@ msgstr "Diese Aktion kann nicht einfach rückgängig gemacht werden" msgid "Convert Stock Item" msgstr "Lagerartikel umwandeln" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "Zurück ins Lager" @@ -10333,84 +10386,84 @@ msgstr "Teile mit Seriennummern mit diesem BestandObjekt anlegen." msgid "Select quantity to serialize, and unique serial numbers." msgstr "Zu serialisierende Anzahl und eindeutige Seriennummern angeben." -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "Inventur für diesen Lagerort durchführen" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "Lagerort lokalisieren" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "Lagerartikel per Barcode-Scan zu diesem Lagerort hinzufügen" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "Lagerartikel einscannen" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "Lagerort hierher einscannen" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "Lagerort scannen" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "Standortbericht drucken" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "Lagerort-Aktionen" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "Lagerort bearbeiten" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "Lagerort löschen" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "Oberster Lagerstandort" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "Standortbesitzer" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "Sie sind nicht auf der Liste der Besitzer dieses Lagerorts. Der Bestands-Lagerort kann nicht verändert werden." -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "Lagerort Typ" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "Neuen Lagerort anlegen" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "Neuer Lagerort" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "Lagerort" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "Lagerbehälter an diesen Ort eingescannt" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "Lagerort QR-Code" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "Barcode mit Lagerort verknüpfen" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "Bewerten" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "Löschen" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "Keine Projektcodes gefunden" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "gruppieren" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "Keine Kategorieparameter Vorlage gefunden" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "Vorlage bearbeiten" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "Vorlage löschen" @@ -10954,40 +11007,40 @@ msgstr "Vorlage löschen" msgid "Edit Category Parameter Template" msgstr "Kategorieparameter Vorlage bearbeiten" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "Kategorieparameter Vorlage löschen" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "Kategorieparameter Vorlage erstellen" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "Teilparametervorlage erstellen" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "Keine Lagerstandorttypen gefunden" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "Anzahl der Standorte" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "Standorttyp bearbeiten" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "Standorttyp löschen" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "Standorttyp löschen" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "Neuer Standorttyp" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "Fehlerbericht senden" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "In die Zwischenablage kopieren" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "Bei den folgenden Teilen gibt es wenige Lagerartikel" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "Benötigte Menge" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "Klicken Sie auf den folgenden Link, um diesen Teil anzuzeigen" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "Mindestmenge" @@ -11758,7 +11811,7 @@ msgstr "Dadurch wird der Link zu dem zugehörigen Barcode entfernt" msgid "Unlink" msgstr "Verknüpfung aufheben" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "Lagerartikel entfernen" @@ -11948,7 +12001,7 @@ msgstr "Stückliste für Bauteile laden" msgid "Substitutes Available" msgstr "Ersatzteile verfügbar" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "Alternatives Lager erlaubt" @@ -11968,30 +12021,30 @@ msgstr "Stücklistenpreise sind vollständig" msgid "No pricing available" msgstr "Keine Preisinformation verfügbar" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "Externes Lager" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "Kein Lagerbestand verfügbar" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "Alternatives Lager und Ersatzteillager einschließen" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "Alternatives Lager einschließen" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "Ersatzteillager einschließen" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "Verbrauchsartikel" @@ -12023,7 +12076,7 @@ msgstr "Stückliste anzeigen" msgid "No BOM items found" msgstr "Keine Stücklisten-Position(en) gefunden" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "Benötigtes Teil" @@ -12071,12 +12124,12 @@ msgstr "Bauauftrag ist unvollständig" msgid "Complete Build Order" msgstr "Bauauftrag fertigstellen" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "Nächste verfügbare Seriennummer" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "Letzte Seriennummer" @@ -12129,13 +12182,13 @@ msgstr "Sind Sie sicher, dass sie alle Lagerartikel von diesem Bauauftrag entfer msgid "Deallocate Stock Items" msgstr "Lagerartikel entfernen" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "Endprodukte auswählen" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "Mindestens ein Endprodukt muss ausgewählt werden" @@ -12143,288 +12196,288 @@ msgstr "Mindestens ein Endprodukt muss ausgewählt werden" msgid "Selected build outputs will be marked as complete" msgstr "Ausgewählte Endprodukte werden als vollständig markiert" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "Endprodukt" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "Endprodukte fertigstellen" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "Ausgewählte Endprodukte werden als Ausschuss markiert" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "Ausschuss wird als verworfen markiert" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "Zugewiesene Lagerbestände werden nicht mehr verfügbar sein" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "Der Fertigstellungsstatus des Bauauftrags wird nicht angepasst" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "Ausschuss Endprodukte" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "Ausgewählte Endprodukte werden gelöscht" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "Endprodukte werden dauerhaft gelöscht" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "Zugewiesene Lagerartikel werden in den Bestand zurückgeführt" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "Endprodukte entfernen" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "Keine Allokationen für Bauauftrag gefunden" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "Standort nicht angegeben" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "Endprodukte fertigstellen" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "Ausschuss" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "Endprodukte löschen" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "Endprodukt" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "Endprodukte" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "Endprodukt-Aktionen" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "Keine aktiven Endprodukte gefunden" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "Zugewiesene Positionen" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "Erforderliche Prüfungen" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "Teile auswählen" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "Sie müssen mindestens einen Teil für die Zuweisung auswählen" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "Anzahl für Bestandszuordnung eingeben" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "Alle Teile zugeordnet" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "Alle ausgewählten Teile wurden vollständig zugeordnet" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "Wählen Sie den Quellort aus (leer lassen, um von allen Standorten zu nehmen)" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "Lagerartikel für Bauauftrag zuweisen" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "Keine passenden Lagerstandorte" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "Keine passenden Lagerartikel" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "Automatische Lagerzuordnung" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "Lagerartikel werden automatisch diesem Bauauftrag zugewiesen, entsprechend den angegebenen Richtlinien" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "Wenn ein Lagerort angegeben ist, wird der Lagerbestand nur von diesem Ort zugewiesen" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "Wenn der Lagerbestand als austauschbar gilt, wird er vom ersten Standort zugewiesen, an dem er gefunden wird" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "Wenn ein Ersatzlager zugelassen ist, wird dieses verwendet, wenn das Primärteil nicht vorrätig ist" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "Lagerartikel zuordnen" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "Keine Bauaufträge zur Suchanfrage" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "Auswählen" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "Bauauftrag ist überfällig" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "Keine Benutzerinformation" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "Bestands-Zuordnung bearbeiten" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "Bestands-Zuordnung löschen" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "Zuordnung bearbeiten" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "Zuordnung entfernen" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "Bauauftragsposition" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "Bauauftragspositionen" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "Keine Bauauftragspositionen gefunden" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "Nachverfolgbares Teil" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "Menge" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "Ausreichender Bestand vorhanden" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "Verbrauchsartikel" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "Verfolgtes Objekt" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "Zuweisung von nachverfolgbaren Artikeln zu einzelnen Bauprodukten" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "Bestand bauen" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "Bestand bestellen" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "Bestand zuweisen" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "Bestands-Zuordnung löschen" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "Parameter löschen" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "Teile bestellen" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "Keine Herstellerteile gefunden" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "Vorlagenteil" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "Baugruppe" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "Keine Parameter gefunden" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "Parameter bearbeiten" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "Parameter löschen" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "Parameter bearbeiten" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "Parameter löschen" @@ -12749,39 +12802,39 @@ msgstr "Fehler in Formular" msgid "No results found" msgstr "Keine Ergebnisse gefunden" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "Suche" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "Eingabe löschen" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "Dateispalte" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "Feldname" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "Spalten auswählen" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "JA" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "NEIN" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "Wahr" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "Falsch" @@ -12866,7 +12919,7 @@ msgstr "Keine Nachrichten gefunden" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "ID" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "Position löschen" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "Keine Postionen gefunden" @@ -12931,358 +12984,359 @@ msgstr "Position bearbeiten" msgid "Delete line" msgstr "Position löschen" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "Teileigenschaften" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "Erstellungsoptionen für Teile" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "Duplizierungsoptionen für Teile" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "Teil-Kategorie hinzufügen" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "Icon (optional) - alle verfügbaren Icons einsehbar auf" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "Teil-Kategorie hinzufügen" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "Neue Kategorie nach dieser Kategorie erstellen" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "Artikelkategorie erstellt" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "Teilekategorie bearbeiten" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "Möchten Sie diese Artikel-Kategorie wirklich löschen?" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "In übergeordnete Kategorie verschieben" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "Teil-Kategorie löschen" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "Aktion für Teile in dieser Kategorie" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "Aktion für Unterkategorien" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "Teil erstellen" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "Weiteres Teil nach diesem erstellen" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "Teil erfolgreich angelegt" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "Teil bearbeiten" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "Teil bearbeitet" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "Teil-Variante anlegen" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "Aktives Teil" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "Teil kann nicht gelöscht werden, da es derzeit aktiv ist" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "Das Löschen dieses Teils kann nicht rückgängig gemacht werden" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "Alle Lagerartikel für dieses Teil werden gelöscht" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "Dieses Teil wird von allen Stücklisten entfernt" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "Alle Hersteller- und Lieferanteninformationen für dieses Teil werden gelöscht" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "Teil löschen" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "Du hast Benachrichtigungen zu diesem Artikel abonniert" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "Du hast Benachrichtigungen zu diesem Artikel abonniert" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "Benachrichtigungen zu diesem Artikel abonnieren" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "Du erhältst keine Benachrichtigungen zu diesem Artikel mehr" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "Die Stückliste zu validieren markiert jede Position als gültig" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "Stückliste prüfen" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "Überprüfte Stückliste" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "Stückliste kopieren" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "Bestand niedrig" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "Kein Lagerbestand verfügbar" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "Bedarf" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "Einheit" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "Virtuelles Teil" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "Abonniertes Teil" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "Verkäufliches Teil" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "Erstellung eines neuen Inventurberichts planen." -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "Nach Fertigstellung steht der Inventurbericht zum Download zur Verfügung." -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "Inventurbericht erstellen" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "Inventurbericht geplant" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "Keine Inventurinformationen verfügbar" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "Inventureintrag bearbeiten" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "Inventureintrag löschen" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "Keine Varianten gefunden" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "Keine Teileparametervorlagen gefunden" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "Teileparametervorlage bearbeiten" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "Alle Parameter mit Verweis auf diese Vorlage werden ebenfalls gelöscht" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "Teileparametervorlage löschen" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "Keine Bestellungen gefunden" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "Diese Position ist überfällig" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "Position empfangen" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "Teilebeziehung löschen" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "Teilebeziehung löschen" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "Keine Teile gefunden" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "Wähle die Kategorie für die ausgewählten Teile" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "Teilekategorie auswählen" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "Kategorie wählen" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "Teil" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "Teile" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "Keine Kategorien" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "Als Liste anzeigen" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "Als Raster anzeigen" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "Keine Unterkategorien gefunden" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "Als Baum anzeigen" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "Unterkategorien laden" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "Abonnierte Kategorie" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "Keine passenden Testvorlagen gefunden" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "Ergebnisse" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "Dieser Test ist für ein übergeordnetes Teil definiert" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "Vorlage für Testergebnis bearbeiten" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "Vorlage für Testergebnis löschen" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "Kein Datum angegeben" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "Das angegebene Datum liegt in der Vergangenheit" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "Spekulativ" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "Keine Zeitplanung für dieses Teil vorhanden" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "Fehler beim Abrufen der Zeitplanungsinformationen für dieses Teil" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "Geplante Lagermengen" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "Maximale Menge" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "Minimaler Lagerbestand" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "Zu erhaltende Menge" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "Bestellnummer" msgid "Quantity to Receive" msgstr "Zu erhaltende Menge" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "Empfang der Artikel bestätigen" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "Bestellartikel erhalten" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "Artikel-Barcode scannen" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "Scanne den Barcode am erhaltenen Artikel (darf nicht mit einem existierenden Lagerartikel übereinstimmen)" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "Ungültige Barcode-Daten" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "Bestellung ist überfällig" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "Alle ausgewählten Positionen werden gelöscht" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "Ausgewählte Positionen löschen?" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "Position duplizieren" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "Position bearbeiten" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "Position löschen" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "Position duplizieren" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "Position bearbeiten" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "Position löschen" @@ -13665,16 +13719,16 @@ msgstr "Kein Rücksendeauftrag gefunden" msgid "Invalid Customer" msgstr "Ungültiger Kunde" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "Rücksendeauftragspositionen erhalten" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "Keine passenden Positionen gefunden" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "Artikel als empfangen markieren" @@ -13833,7 +13887,7 @@ msgstr "Bestandszuordnung löschen" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "An den Kunden versandt" @@ -13891,18 +13945,14 @@ msgstr "Ergebnisse minimieren" msgid "Remove results" msgstr "Ergebnisse entfernen" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "Lagerartikel serialisieren" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "Lager-Serialisierung bestätigen" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "Standardsymbol für alle Orte, die kein Symbol haben (optional) - Erkunden Sie alle verfügbaren Symbole auf" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "Lagerorttyp hinzufügen" @@ -13951,432 +14001,432 @@ msgstr "Dieser Teil kann nicht serialisiert werden" msgid "Add given quantity as packs instead of individual items" msgstr "Angegebene Menge als Packungen anstatt einzelner Artikel hinzufügen" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "Ausgangsmenge für diesen Lagerartikel eingeben" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Seriennummern für neue Lagerartikel eingeben (oder leer lassen)" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "Lagerartikel dupliziert" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "Lagerartikel duplizieren" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "Soll dieser Lagerartikel gelöscht werden?" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "Lagerartikel löschen" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "Lagerartikel bearbeiten" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "Weiteres Teil nach diesem erstellen" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "Neuen Lagerartikel erstellen" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "Mehrere Lagerartikel wurden erstellt" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "Seriennummer finden" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "Seriennummer eingeben" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "Eine Seriennummer eingeben" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "Keine passende Seriennummer" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "Mehr als ein übereinstimmendes Ergebnis gefunden" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "Bestand Zuweisung bestätigen" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "Lagerbestand einem Kunden zuweisen" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "Achtung: Das Zusammenführen kann nicht rückgängig gemacht werden" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "Einige Informationen gehen verloren, wenn Artikel zusammengeführt werden" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "Lagerartikelverlauf wird für zusammengeführte Lagerartikel gelöscht" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "Lieferantenteil-Informationen werden für zusammengeführte Artikel gelöscht" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "Bestandszusammenführung bestätigen" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "Lagerartikel zusammenführen" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "Bestand verschieben" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "Verschieben" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "Bestand zählen" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "Zählen" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "Bestand entfernen" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "Entnehmen" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "Bestand hinzufügen" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "Hinzufügen" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "Bestand löschen" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "Menge von serialisiertem Bestand kann nicht bearbeitet werden" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "Bestandsanzahl angeben" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "Lagerartikel auswählen" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "Wähle mindestens einen verfügbaren Lagerartikel aus" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "Bestandsanpassung bestätigen" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "ERFOLGREICH" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "FEHLGESCHLAGEN" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "KEIN ERGEBNIS" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "Test bestanden" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "Testergebnis hinzufügen" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "Testergebnis bearbeiten" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "Testergebnis löschen" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "Keine Testergebnisse gefunden" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "Testdatum" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "Test gestartet" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "Test beendet" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "Testergebnis bearbeiten" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "Testergebnis löschen" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "In Produktion" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "In Lagerartikel installiert" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "Auftrag zugewiesen" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "Kein Lagerort gesetzt" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "Bestandsstatus ändern" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "Bestand zusammenführen" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "Bestand löschen" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "Lagerartikel" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "Zu Lagerort einscannen" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "Lager-Aktionen" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "Installierte Artikel laden" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "Lagerartikel wird produziert" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "Lagerartikel wurde Auftrag zugewiesen" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "Lagerartikel wurde Kunden zugewiesen" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "Serialisierter Lagerartikel wurde zugewiesen" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "Lagerartikel wurde vollständig zugewiesen" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "Lagerartikel wurde teilweise zugewiesen" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "Lagerartikel in anderem Artikel verbaut" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "Lagerbestand wurde durch einen Bauauftrag verbraucht" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "Lagerartikel ist abgelaufen" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "Lagerartikel läuft demnächst ab" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "Lagerartikel wurde zurückgewiesen" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "Lagerartikel ist verloren" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "Lagerartikel ist zerstört" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "Aufgebraucht" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "Zuliefererteil nicht angegeben" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "Bestandswert" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "Keine zur Anfrage passenden Lagerartikel gefunden" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "Lagerorte" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "Untergeordnete Lagerorte laden" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "Details" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "Keine Änderungen" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "Teileinformationen nicht verfügbar" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "Lagerort existiert nicht mehr" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "Bauauftrag existiert nicht mehr" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "Bestellung existiert nicht mehr" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "Auftrag existiert nicht mehr" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "Rücksendebestellung existiert nicht mehr" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "Kunde existiert nicht mehr" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "Lagerartikel existiert nicht mehr" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "Hinzugefügt" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "Entfernt" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "Keine installierten Artikel" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "Lagerartikel deinstallieren" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "Zu deinstallierende Lagerartikel auswählen" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "Einen anderen Lagerartikel in dieses Teil installieren" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "Lagerartikel können nur installiert werden wenn folgende Kriterien erfüllt werden" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "Der Lagerartikel ist mit einem Teil verknüpft das in der Stückliste für diesen Lagerartikel ist" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "Dieser Lagerartikel ist aktuell vorhanden" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "Der Lagerbestand ist nicht bereits in einem anderen Bestand installiert" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "Der Lagerbestand wird entweder mit einem Batch-Code oder mit Seriennummer verfolgt" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "Teil zur Installation auswählen" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "Wählen Sie einen oder mehrere Bestandteile aus" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "Lagerartikel auswählen" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "Bestandsstatus ändern" diff --git a/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po index 89825fc470..9e4ee1321c 100644 --- a/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:37\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Greek\n" "Language: el_GR\n" @@ -56,29 +56,29 @@ msgstr "Μπορείτε να βρείτε λεπτομέρειες σφάλμα msgid "Enter date" msgstr "Εισάγετε ημερομηνία" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "Σημειώσεις" @@ -135,74 +135,74 @@ msgstr "Ο παρεχόμενος τομέας ηλεκτρονικού ταχυ msgid "Registration is disabled." msgstr "Η εγγραφή είναι απενεργοποιημένη." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "Μη έγκυρη ποσότητα" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Κενό σειριακό αριθμό συμβολοσειράς" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Διπλότυπο serial number" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Μη έγκυρο εύρος ομάδας: {group}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Το εύρος της ομάδας {group} υπερβαίνει την επιτρεπόμενη ποσότητα ({expected_quantity})" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Μη έγκυρη ακολουθία ομάδας: {group}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Δεν βρέθηκαν σειριακοί αριθμοί" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Ο αριθμός μοναδικών σειριακών αριθμών ({len(serials)}) πρέπει να αντιστοιχεί στην ποσότητα ({expected_quantity})" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Αφαιρέστε τα HTML tags από την τιμή που εισάγατε" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Σφάλμα σύνδεσης" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Ο διακομιστής απάντησε με μη έγκυρο κωδικό κατάστασης" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Προέκυψε σφάλμα" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Ο διακομιστής ανταποκρίθηκε με \"Invalid Content-Length value\"" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Η εικόνα είναι πολύ μεγάλη σε μέγεθος" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Η λήψη εικόνας ξεπέρασε το μέγιστο μέγεθος" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Ο διακομιστής επέστρεψε σφάλμα %1$d %2$s" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "Το URL δεν είναι έγκυρο αρχείο εικόνας" @@ -366,158 +366,158 @@ msgstr "[{site_name}] Σύνδεση στην εφαρμογή" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "Σφάλμα κατά την εκτέλεση επικύρωσης προσθέτου" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "Τα μεταδεδομένα πρέπει να είναι ένα αντικείμενο dict python" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "Μεταδεδομένα Πρόσθετου" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "JSON πεδίο μεταδεδομένων, για χρήση από εξωτερικά πρόσθετα" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Λανθασμένο μοτίβο" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "Δώσατε λάθος μορφή κλειδιού" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "Λείπει το απαραίτητο κλειδί" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Το πεδίο δεν μπορεί να είναι άδειο" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "Η αναφορά πρέπει να ταιριάζει με το απαιτούμενο μοτίβο" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Ο αριθμός αναφοράς είναι πολύ μεγάλος" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "Διπλότυπα ονόματα δεν μπορούν να υπάρχουν στον ίδιο γονέα" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Μη έγκυρη επιλογή" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "Όνομα" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "Περιγραφή" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "Περιγραφή (προαιρετική)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "Μονοπάτι" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "Σημειώσεις Markdown (προαιρετικό)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Στοιχεία Barcode" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Δεδομένα barcode τρίτων" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Μοναδικό hash δεδομένων barcode" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Βρέθηκε υπάρχων barcode" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Σφάλμα διακομιστή" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "Ένα σφάλμα έχει καταγραφεί από το διακομιστή." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "Πρέπει να είναι αριθμός" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "Διεύθυνση URL του αρχείου απομακρυσμένη msgid "Downloading images from remote URL is not enabled" msgstr "Η λήψη εικόνων από απομακρυσμένο URL δεν είναι ενεργοποιημένη" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "Ο έλεγχος εργασίας στο παρασκήνιο απέτυχε" @@ -726,17 +726,17 @@ msgstr "Σχετικά με το InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Η έκδοση πρέπει να ακυρωθεί πριν διαγραφεί" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "Αναλώσιμο" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "Προαιρετικό" msgid "Tracked" msgstr "Υπό παρακολούθηση" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "Κατανεμημένο" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "Διαθέσιμο" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "Σειρά Κατασκευής" @@ -789,72 +789,72 @@ msgstr "Σειρά Κατασκευής" msgid "Build Orders" msgstr "Δημιουργία Παραγγελιών" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "Μη έγκυρη επιλογή για γονική κατασκευή" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "Εξάρτημα από εντολή κατασκευής δεν μπορεί να αλλάξει" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "Αναφορά Παραγγελίας Κατασκευής" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Αναφορά" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "Σύντομη περιγραφή της κατασκευής (προαιρετικό)" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Γονική Κατασκευή" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "BuildOrder στην οποία έχει δοθεί αυτή η κατασκευή" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "BuildOrder στην οποία έχει δοθεί αυτή η κατα #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "Εξάρτημα" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "Επιλέξτε τμήμα για κατασκευή" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Κωδικός Παραγγελίας Πωλήσεων" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "SalesOrder στην οποία έχει διατεθεί αυτό το build" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Τοποθεσία Προέλευσης" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Επιλέξτε τοποθεσία από την οποία θα γίνει απόθεμα, για αυτή την κατασκευή (αφήστε κενό για να πάρετε από οποιαδήποτε θέση αποθήκευσης)" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "Τοποθεσία Προορισμού" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Επιλέξτε την τοποθεσία όπου θα αποθηκευτούν τα ολοκληρωμένα στοιχεία" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "Ποσότητα Κατασκευής" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Αριθμός αντικειμένων για κατασκευή" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "Ολοκληρωμένα αντικείμενα" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Αριθμός αντικειμένων αποθέματος που έχουν ολοκληρωθεί" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "Κατάσταση Κατασκευής" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "Κωδικός κατάστασης κατασκευής" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "Κωδικός Παρτίδας" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "Κωδικός παρτίδας για αυτήν την κατασκευή" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Ημερομηνία Δημιουργίας" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "Ημερομηνία ολοκλήρωσης στόχου" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Ημερομηνία ολοκλήρωσης της κατασκευής. Η κατασκευή θα καθυστερήσει μετά από αυτή την ημερομηνία." -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "Ημερομηνία ολοκλήρωσης" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "ολοκληρώθηκε από" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "Εκδόθηκε από" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "Χρήστης που εξέδωσε αυτήν την παραγγελία κατασκευής" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "Υπεύθυνος" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "Χρήστης ή ομάδα υπεύθυνη για αυτή την εντολή κατασκευής" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Εξωτερικοί σύνδεσμοι" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "Σύνδεσμος προς εξωτερική διεύθυνση URL" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "Προτεραιότητα Κατασκευής" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "Προτεραιότητα αυτής της εντολής κατασκευής" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "Προτεραιότητα αυτής της εντολής κατασκ msgid "Project Code" msgstr "Κωδικός Έργου" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "Κωδικός έργου για αυτήν την εντολή κατασκευής" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "Η παραγγελία κατασκευής {build} έχει ολοκληρωθεί" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "Η παραγγελία κατασκευής έχει ολοκληρωθεί" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "Δεν καθορίστηκε έξοδος κατασκευής" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "Η παραγγελία κατασκευής έχει ολοκληρωθεί" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "Η έξοδος κατασκευής δεν ταιριάζει με την παραγγελία κατασκευής" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "Η ποσότητα πρέπει να είναι μεγαλύτερη από 0" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "Η ποσότητα δεν μπορεί να είναι μεγαλύτερη από την παραγόμενη ποσότητα" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "Το προϊόν κατασκευής {serial} δεν έχει περάσει όλες τις απαιτούμενες δοκιμές" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "Αντικείμενο κατασκευής" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "Αντικείμενο κατασκευής" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "Ποσότητα" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "Απαιτούμενη ποσότητα για την εντολή κατασκευής" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Το στοιχείο κατασκευής πρέπει να ορίζει μια έξοδο κατασκευής, καθώς το κύριο τμήμα επισημαίνεται ως ανιχνεύσιμο" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Η καταχωρημένη ποσότητα ({q}) δεν πρέπει να υπερβαίνει τη διαθέσιμη ποσότητα αποθέματος ({a})" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "Στοιχείο αποθέματος είναι υπερ-κατανεμημένο" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "Η ποσότητα πρέπει να είναι μεγαλύτερη από 0" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "Η ποσότητα πρέπει να είναι 1 για σειριακό απόθεμα" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "Το επιλεγμένο στοιχείο αποθέματος δεν ταιριάζει με τη γραμμή ΤΥ" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "Στοιχείο Αποθέματος" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "Στοιχείο πηγαίου αποθέματος" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "Ποσότητα αποθέματος για διάθεση για κατασκευή" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "Εγκατάσταση σε" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "Αποθήκη προορισμού" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "Κατασκευή Εξόδου" @@ -1260,7 +1260,7 @@ msgstr "Ακέραιη ποσότητα που απαιτείται, καθώς #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Σειριακοί αριθμοί" @@ -1270,21 +1270,21 @@ msgstr "Εισάγετε ποσότητα για την έξοδο κατασκ #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "Τοποθεσία" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "Τοποθεσία για ολοκληρωμένα προϊόντα κατασκευής" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "Κατάσταση" @@ -1508,7 +1508,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1584,13 +1584,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "" @@ -1600,22 +1600,22 @@ msgstr "" msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,7 +1633,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" @@ -1684,7 +1684,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "" @@ -1696,7 +1696,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1707,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "Αποσύνδεση Barcode" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "Σύνδεση Barcode" @@ -1786,16 +1786,16 @@ msgstr "Το Απόθεμα δεν έχει κατανεμηθεί πλήρως #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "Ολοκληρωμένα Προϊόντα" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "Ολοκληρωμένα Προϊόντα" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "Εντολές Πώλησης" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "Εκδόθηκε από" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "Προτεραιότητα" @@ -1875,8 +1875,8 @@ msgstr "Προέλευση Αποθέματος" msgid "Stock can be taken from any available location." msgstr "Το απόθεμα μπορεί να ληφθεί από οποιαδήποτε διαθέσιμη τοποθεσία." -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "Προορισμός" @@ -1890,11 +1890,11 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -2037,15 +2037,15 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,362 +2103,370 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "" msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "Χρήστης" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "Σύνδεσμος" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Συνημμένο" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "Το αρχείο λείπει" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Λείπει ο εξωτερικός σύνδεσμος" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Επιλέξτε αρχείο για επισύναψη" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Σχόλιο" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3957,27 +3965,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4228,26 +4236,26 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,16 +4534,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "" @@ -4734,7 +4742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "" @@ -5203,7 +5211,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" @@ -5224,9 +5232,9 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" @@ -5239,26 +5247,26 @@ msgstr "" msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "" @@ -5286,7 +5294,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "" @@ -5310,365 +5318,365 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Αποστάλθηκε" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6056,12 +6064,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6175,8 +6183,8 @@ msgstr "" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "" @@ -6272,21 +6280,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6306,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6319,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6331,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6355,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,13 +6384,17 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" @@ -6489,13 +6501,13 @@ msgstr "" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6516,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7302,338 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7679,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7785,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7870,15 +7883,15 @@ msgstr "" msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "" @@ -7937,7 +7950,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +7960,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +7972,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8171,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8345,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8454,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8526,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9160,7 +9213,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,7 +9226,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9299,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9332,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9357,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9372,316 +9425,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "" @@ -9971,7 +10024,7 @@ msgstr "Σε Καραντίνα" msgid "Legacy stock tracking entry" msgstr "Καταχώρηση παλαιού αποθέματος" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "Το αντικείμενο αποθεμάτων δημιουργήθηκε" @@ -10027,7 +10080,7 @@ msgstr "Έγινε διαχωρισμός από το γονεϊκό αρχεί msgid "Split child item" msgstr "Διαχωρίστηκε θυγατρικό στοιχείο" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "Έγινε συγχώνευση αποθεμάτων" @@ -10047,7 +10100,7 @@ msgstr "Η έξοδος της σειράς κατασκευής ολοκληρ msgid "Build order output rejected" msgstr "Η εντολή κατασκευής απορρίφθηκε" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "Κατανάλωση με εντολή κατασκευής" @@ -10108,7 +10161,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10169,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "Κατασκευή" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "" @@ -10321,7 +10374,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10386,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11007,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11811,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "" @@ -11948,7 +12001,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12021,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12076,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,12 +12124,12 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "" @@ -12129,13 +12182,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12196,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12749,39 +12802,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +12919,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12931,358 +12984,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13719,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13887,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "" @@ -13891,18 +13945,14 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "" @@ -13951,432 +14001,432 @@ msgstr "" msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "" diff --git a/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po index 91418799ac..5dcf87e43c 100644 --- a/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-16 03:18+0000\n" +"POT-Creation-Date: 2024-07-22 10:29+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -57,15 +57,18 @@ msgstr "" msgid "Enter date" msgstr "" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:919 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:824 company/templates/company/sidebar.html:37 -#: order/models.py:1305 order/templates/order/po_sidebar.html:11 +#: company/models.py:836 +#: company/templates/company/manufacturer_part_sidebar.html:11 +#: company/templates/company/sidebar.html:37 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 +#: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3264 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2361 stock/models.py:2488 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 @@ -133,74 +136,74 @@ msgstr "" msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "" @@ -364,57 +367,57 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:720 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:737 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:587 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 +#: InvenTree/models.py:767 common/models.py:2692 common/models.py:3122 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:956 part/models.py:3731 plugin/models.py:51 #: report/models.py:150 stock/models.py:74 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -432,14 +435,14 @@ msgstr "" msgid "Name" msgstr "" -#: InvenTree/models.py:775 build/models.py:242 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:515 company/models.py:815 +#: InvenTree/models.py:773 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:408 part/models.py:979 +#: part/models.py:3746 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 @@ -469,16 +472,16 @@ msgstr "" msgid "Description" msgstr "" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:774 stock/models.py:81 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 +#: InvenTree/models.py:789 templates/js/translated/part.js:2813 #: templates/js/translated/stock.js:2838 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:919 msgid "Markdown notes (optional)" msgstr "" @@ -498,24 +501,24 @@ msgstr "" msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1025 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1068 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1069 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4354 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3082 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -565,9 +568,9 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:789 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2697 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1156 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -606,7 +609,7 @@ msgstr "" msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:581 importer/models.py:62 +#: InvenTree/serializers.py:581 importer/models.py:63 msgid "Data File" msgstr "" @@ -724,7 +727,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4232 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:190 @@ -732,7 +735,7 @@ msgstr "" msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4226 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:186 @@ -753,7 +756,7 @@ msgstr "" msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:879 company/serializers.py:388 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -787,37 +790,37 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:127 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:134 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:141 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:155 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:166 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:172 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:233 +#: build/models.py:240 msgid "Build Order Reference" msgstr "" -#: build/models.py:234 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:411 part/models.py:4247 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -831,27 +834,27 @@ msgstr "" msgid "Reference" msgstr "" -#: build/models.py:245 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:253 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:254 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:259 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1034 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3093 +#: part/models.py:3237 part/models.py:3385 part/models.py:3406 +#: part/models.py:3428 part/models.py:3564 part/models.py:3904 +#: part/models.py:4067 part/models.py:4198 part/models.py:4557 #: part/serializers.py:1182 part/serializers.py:1812 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -896,108 +899,108 @@ msgstr "" msgid "Part" msgstr "" -#: build/models.py:267 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:272 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:276 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:281 build/serializers.py:1009 +#: build/models.py:288 build/serializers.py:1009 #: templates/js/translated/build.js:1906 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:285 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:290 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:294 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:298 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:301 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:305 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:307 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:311 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:315 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:324 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:633 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:847 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 #: templates/js/translated/stock.js:1195 msgid "Batch Code" msgstr "" -#: build/models.py:328 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "" -#: build/models.py:331 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1196 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:335 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:336 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:339 order/models.py:521 order/models.py:2100 +#: build/models.py:346 order/models.py:526 order/models.py:2115 #: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "" -#: build/models.py:345 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:353 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "" -#: build/models.py:354 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:362 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1213 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1008,36 +1011,36 @@ msgstr "" msgid "Responsible" msgstr "" -#: build/models.py:363 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:368 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:843 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:369 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3263 part/models.py:1031 +#: stock/models.py:843 msgid "Link to external URL" msgstr "" -#: build/models.py:373 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:376 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:383 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2319 @@ -1049,66 +1052,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:384 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:617 build/models.py:682 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:639 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:645 +#: build/models.py:652 msgid "A build order has been completed" msgstr "" -#: build/models.py:871 build/models.py:956 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "" -#: build/models.py:874 +#: build/models.py:881 msgid "Build output is already completed" msgstr "" -#: build/models.py:877 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:960 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:462 -#: order/serializers.py:628 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 +#: stock/models.py:688 stock/models.py:1508 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:965 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1025 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1366 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1391 +#: build/models.py:1398 msgid "Build object" msgstr "" -#: build/models.py:1405 build/models.py:1661 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1405 +#: build/templates/build/detail.html:34 common/models.py:2569 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: part/forms.py:48 part/models.py:3251 part/models.py:4220 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1150,37 +1153,37 @@ msgstr "" msgid "Quantity" msgstr "" -#: build/models.py:1406 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1486 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1495 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1505 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1511 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1517 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1576 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1648 build/serializers.py:856 order/serializers.py:1249 -#: order/serializers.py:1270 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:364 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1197,24 +1200,24 @@ msgstr "" msgid "Stock Item" msgstr "" -#: build/models.py:1649 +#: build/models.py:1656 msgid "Source stock item" msgstr "" -#: build/models.py:1662 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1670 +#: build/models.py:1677 msgid "Install into" msgstr "" -#: build/models.py:1671 +#: build/models.py:1678 msgid "Destination stock item" msgstr "" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:405 part/models.py:4069 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" @@ -1256,7 +1259,7 @@ msgstr "" msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:303 order/serializers.py:641 order/serializers.py:1409 +#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 #: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 msgid "Serial Numbers" @@ -1267,7 +1270,7 @@ msgid "Enter serial numbers for build outputs" msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:617 order/serializers.py:741 order/serializers.py:1736 +#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 @@ -1331,8 +1334,8 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:649 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 @@ -1405,7 +1408,7 @@ msgstr "" msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1312 +#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 msgid "Accept Incomplete" msgstr "" @@ -1445,7 +1448,7 @@ msgstr "" msgid "Item must be in stock" msgstr "" -#: build/serializers.py:910 order/serializers.py:1303 +#: build/serializers.py:910 order/serializers.py:1311 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" @@ -1458,7 +1461,7 @@ msgstr "" msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:947 order/serializers.py:1555 +#: build/serializers.py:947 order/serializers.py:1563 msgid "Allocation items must be provided" msgstr "" @@ -1506,7 +1509,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:500 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" @@ -1524,18 +1527,18 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4068 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4070 msgid "Part IPN" msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:833 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 #: templates/js/translated/build.js:2530 @@ -1571,8 +1574,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1139 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1582,13 +1585,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4280 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4077 part/models.py:4549 #: stock/api.py:796 msgid "BOM Item" msgstr "" @@ -1650,7 +1653,7 @@ msgstr "" msgid "Cancelled" msgstr "" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:501 +#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 #: importer/status_codes.py:19 order/status_codes.py:14 #: order/status_codes.py:44 order/status_codes.py:69 #: order/templates/order/order_base.html:158 @@ -1784,7 +1787,7 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 @@ -1822,8 +1825,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1873,7 +1876,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 +#: build/templates/build/detail.html:49 order/models.py:1467 #: templates/js/translated/purchase_order.js:2260 msgid "Destination" msgstr "" @@ -2101,362 +2104,370 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1626 common/models.py:1648 common/models.py:1763 +#: common/models.py:2136 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3912 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2464,1256 +2475,1256 @@ msgstr "" msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:425 part/models.py:1127 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1133 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1145 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1151 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1167 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1563 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1565 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1571 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1573 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1584 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1586 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1597 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1605 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1607 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1615 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1623 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1630 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1631 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1636 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1638 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1644 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1646 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1653 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1654 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1659 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1661 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1667 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1668 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1673 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1675 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1681 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1682 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1687 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1688 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1693 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1694 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1699 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1700 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1705 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1706 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1711 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1713 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1719 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1720 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1725 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1726 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1731 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1733 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1739 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1741 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1746 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1747 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1752 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1758 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1760 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1767 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1768 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1773 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1774 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1779 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1780 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1784 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1785 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1790 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1792 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1798 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1800 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1806 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1808 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1814 common/models.py:1862 common/models.py:1884 +#: common/models.py:1920 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1815 common/models.py:1863 common/models.py:1885 +#: common/models.py:1921 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1820 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1821 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1826 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1827 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1832 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1834 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1840 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1842 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1848 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1849 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1854 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1856 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1868 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1870 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1876 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1878 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1890 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1891 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1896 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1898 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1904 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1906 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1912 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1914 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1926 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1928 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1934 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1936 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1943 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1944 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1949 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1950 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1955 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1956 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1961 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1963 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1969 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1971 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1977 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1979 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1985 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1987 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1993 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1995 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2001 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2002 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2007 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2009 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2015 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2016 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2021 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2022 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2027 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2029 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2035 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2037 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2043 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2044 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2049 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2051 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2059 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2060 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2066 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2067 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2073 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2074 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2080 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2081 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2087 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2088 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2094 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2095 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2101 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2102 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2107 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2109 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2115 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2117 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2123 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2125 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2131 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2133 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2140 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2141 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2146 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2147 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2159 common/models.py:2539 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2202 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2204 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2210 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2211 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2216 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2217 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2222 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2223 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2228 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2229 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2234 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2235 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2240 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2241 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2246 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2247 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2252 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2253 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2258 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2259 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2264 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2265 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2270 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2271 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2276 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2277 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2282 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2283 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2288 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2289 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2294 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2295 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2300 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2301 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2306 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2307 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2312 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2313 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2318 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2320 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2326 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2328 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2334 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2336 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2342 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2343 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2348 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2349 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2354 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2355 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2360 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2361 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2366 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2367 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2372 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2373 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2378 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2380 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2386 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2387 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2392 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2393 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2398 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2399 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2404 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2405 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2410 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2412 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2418 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2419 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2424 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2426 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2432 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2433 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2438 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2440 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2446 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2448 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2454 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2455 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2460 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2461 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2466 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2467 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2472 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2473 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2478 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2479 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2484 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2485 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2498 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2499 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2504 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2506 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2512 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2514 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2520 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2521 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2526 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2527 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:87 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2547 common/models.py:2548 common/models.py:2705 +#: common/models.py:2706 common/models.py:2951 common/models.py:2952 +#: common/models.py:3278 common/models.py:3279 importer/models.py:88 +#: part/models.py:3274 part/models.py:3361 part/models.py:3435 +#: part/models.py:3463 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3117 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2551 +#: common/models.py:2570 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:506 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 +#: common/models.py:2577 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:740 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2578 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2682 common/models.py:2867 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2683 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2693 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2697 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2713 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2714 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2722 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2723 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2831 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2832 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2840 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2841 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2849 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2850 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2857 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2858 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2868 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2873 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2874 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3000 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3002 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:506 company/models.py:806 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3004 common/models.py:3262 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1030 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 @@ -3727,28 +3738,28 @@ msgstr "" msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3006 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3008 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3010 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3013 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3013 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3030 company/models.py:159 part/models.py:1040 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3758,94 +3769,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3030 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3042 common/models.py:3246 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3046 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3068 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3089 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3104 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3123 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3130 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3131 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3137 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3138 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3196 common/models.py:3253 stock/models.py:2483 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3181 +#: common/models.py:3208 msgid "Missing file" msgstr "" -#: common/models.py:3182 +#: common/models.py:3209 msgid "Missing external link" msgstr "" -#: common/models.py:3227 +#: common/models.py:3254 msgid "Select file to attach" msgstr "" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3269 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3243 +#: common/models.py:3270 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3286 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3287 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3291 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3291 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3329 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -4226,24 +4237,24 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:469 company/models.py:581 company/models.py:799 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:481 company/models.py:767 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:775 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:483 company/models.py:769 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:492 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 #: company/templates/company/supplier_part.html:145 part/serializers.py:545 #: stock/templates/stock/item_base.html:207 @@ -4255,12 +4266,12 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:493 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:499 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:519 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:527 #: part/serializers.py:555 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 @@ -4270,48 +4281,49 @@ msgstr "" msgid "MPN" msgstr "" -#: company/models.py:507 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:516 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:569 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:588 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:594 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2475 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 #: templates/js/translated/stock.js:1603 msgid "Value" msgstr "" -#: company/models.py:595 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:602 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1120 part/models.py:3738 #: part/templates/part/part_base.html:293 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 #: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 msgid "Units" msgstr "" -#: company/models.py:603 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:655 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: stock/models.py:776 stock/templates/stock/item_base.html:233 +#: order/serializers.py:462 stock/models.py:786 +#: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1054 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 @@ -4319,20 +4331,20 @@ msgstr "" msgid "Supplier Part" msgstr "" -#: company/models.py:707 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:714 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:728 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:777 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 #: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 #: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 @@ -4347,32 +4359,32 @@ msgstr "" msgid "Supplier" msgstr "" -#: company/models.py:778 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:784 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:540 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:790 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:800 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:807 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:816 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:823 company/templates/company/supplier_part.html:187 -#: order/serializers.py:661 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:412 part/models.py:4255 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4384,16 +4396,16 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:832 part/models.py:2079 +#: company/models.py:844 part/models.py:2084 msgid "base cost" msgstr "" -#: company/models.py:833 part/models.py:2080 +#: company/models.py:845 part/models.py:2085 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:840 company/templates/company/supplier_part.html:160 -#: order/serializers.py:653 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:806 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 @@ -4403,11 +4415,11 @@ msgstr "" msgid "Packaging" msgstr "" -#: company/models.py:841 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:846 templates/js/translated/company.js:1651 +#: company/models.py:858 templates/js/translated/company.js:1651 #: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 @@ -4417,31 +4429,31 @@ msgstr "" msgid "Pack Quantity" msgstr "" -#: company/models.py:848 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:867 part/models.py:2086 +#: company/models.py:879 part/models.py:2091 msgid "multiple" msgstr "" -#: company/models.py:868 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:880 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:886 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:887 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1015 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4453,7 +4465,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:386 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4523,10 +4535,10 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:828 +#: stock/models.py:829 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 @@ -4721,7 +4733,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:65 #: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:527 +#: order/serializers.py:535 msgid "Internal Part" msgstr "" @@ -4751,7 +4763,11 @@ msgstr "" msgid "New Parameter" msgstr "" -#: company/templates/company/manufacturer_part.html:196 +#: company/templates/company/manufacturer_part.html:177 +msgid "Manufacturer Part Notes" +msgstr "" + +#: company/templates/company/manufacturer_part.html:225 #: templates/js/translated/part.js:1428 msgid "Add Parameter" msgstr "" @@ -4817,7 +4833,7 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:516 +#: company/templates/company/supplier_part.html:139 order/serializers.py:524 #: part/bom.py:279 part/bom.py:311 part/serializers.py:539 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 #: templates/js/translated/pricing.js:510 @@ -4855,15 +4871,19 @@ msgstr "" msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:276 +#: company/templates/company/supplier_part.html:270 +msgid "Supplier Part Notes" +msgstr "" + +#: company/templates/company/supplier_part.html:305 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:287 +#: company/templates/company/supplier_part.html:316 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:359 +#: company/templates/company/supplier_part.html:388 msgid "Update Part Availability" msgstr "" @@ -4915,87 +4935,91 @@ msgstr "" msgid "Invalid export format" msgstr "" -#: importer/models.py:58 +#: importer/models.py:59 msgid "Timestamp" msgstr "" -#: importer/models.py:63 +#: importer/models.py:64 msgid "Data file to import" msgstr "" -#: importer/models.py:72 templates/js/translated/tables.js:558 +#: importer/models.py:73 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:83 +#: importer/models.py:84 msgid "Import status" msgstr "" -#: importer/models.py:93 +#: importer/models.py:94 msgid "Field Defaults" msgstr "" -#: importer/models.py:100 +#: importer/models.py:101 msgid "Field Overrides" msgstr "" -#: importer/models.py:222 +#: importer/models.py:108 +msgid "Field Filters" +msgstr "" + +#: importer/models.py:230 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:379 +#: importer/models.py:387 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:384 +#: importer/models.py:392 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:393 +#: importer/models.py:401 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:398 +#: importer/models.py:406 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:405 +#: importer/models.py:413 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:409 +#: importer/models.py:417 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:414 importer/models.py:485 +#: importer/models.py:422 importer/models.py:493 msgid "Import Session" msgstr "" -#: importer/models.py:418 +#: importer/models.py:426 msgid "Field" msgstr "" -#: importer/models.py:420 +#: importer/models.py:428 msgid "Column" msgstr "" -#: importer/models.py:489 +#: importer/models.py:497 msgid "Row Index" msgstr "" -#: importer/models.py:492 +#: importer/models.py:500 msgid "Original row data" msgstr "" -#: importer/models.py:495 part/models.py:3913 +#: importer/models.py:503 part/models.py:3918 msgid "Data" msgstr "" -#: importer/models.py:497 machine/models.py:110 +#: importer/models.py:505 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:499 part/api.py:874 +#: importer/models.py:507 part/api.py:874 msgid "Valid" msgstr "" @@ -5011,35 +5035,39 @@ msgstr "" msgid "Invalid data file dimensions" msgstr "" -#: importer/serializers.py:90 +#: importer/serializers.py:91 msgid "Invalid field defaults" msgstr "" -#: importer/serializers.py:103 +#: importer/serializers.py:104 msgid "Invalid field overrides" msgstr "" -#: importer/serializers.py:164 -msgid "Rows" -msgstr "" - -#: importer/serializers.py:165 -msgid "List of row IDs to accept" +#: importer/serializers.py:117 +msgid "Invalid field filters" msgstr "" #: importer/serializers.py:178 +msgid "Rows" +msgstr "" + +#: importer/serializers.py:179 +msgid "List of row IDs to accept" +msgstr "" + +#: importer/serializers.py:192 msgid "No rows provided" msgstr "" -#: importer/serializers.py:182 +#: importer/serializers.py:196 msgid "Row does not belong to this session" msgstr "" -#: importer/serializers.py:185 +#: importer/serializers.py:199 msgid "Row contains invalid data" msgstr "" -#: importer/serializers.py:188 +#: importer/serializers.py:202 msgid "Row has already been completed" msgstr "" @@ -5205,9 +5233,9 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" @@ -5220,8 +5248,8 @@ msgstr "" msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 @@ -5234,8 +5262,8 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 @@ -5267,7 +5295,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "" @@ -5291,142 +5319,142 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 +#: order/models.py:503 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1773 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 +#: order/models.py:1446 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 #: templates/js/translated/purchase_order.js:1369 #: templates/js/translated/purchase_order.js:2240 @@ -5436,220 +5464,220 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:947 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2392 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1420 -#: order/serializers.py:1530 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1297 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 +#: order/models.py:1967 order/models.py:2290 #: templates/js/translated/return_order.js:721 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:732 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5661,172 +5689,172 @@ msgstr "" msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:321 order/serializers.py:1313 +#: order/serializers.py:321 order/serializers.py:1321 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1323 +#: order/serializers.py:331 order/serializers.py:1331 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:469 +#: order/serializers.py:477 msgid "Order is not open" msgstr "" -#: order/serializers.py:490 +#: order/serializers.py:498 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:492 +#: order/serializers.py:500 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:502 +#: order/serializers.py:510 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:508 +#: order/serializers.py:516 msgid "Merge Items" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:518 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:523 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1006 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:531 +#: order/serializers.py:539 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:555 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:550 +#: order/serializers.py:558 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:566 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:559 +#: order/serializers.py:567 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:602 order/serializers.py:1391 +#: order/serializers.py:610 order/serializers.py:1399 msgid "Line Item" msgstr "" -#: order/serializers.py:608 +#: order/serializers.py:616 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:618 order/serializers.py:742 order/serializers.py:1737 +#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:634 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 #: templates/js/translated/stock.js:1196 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:654 +#: order/serializers.py:662 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:662 +#: order/serializers.py:670 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:669 templates/js/translated/barcode.js:52 +#: order/serializers.py:677 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:678 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:686 +#: order/serializers.py:694 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:710 +#: order/serializers.py:718 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:758 order/serializers.py:1753 +#: order/serializers.py:766 order/serializers.py:1761 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:774 +#: order/serializers.py:782 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:785 +#: order/serializers.py:793 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1139 +#: order/serializers.py:1147 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1200 +#: order/serializers.py:1208 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1261 order/serializers.py:1400 +#: order/serializers.py:1269 order/serializers.py:1408 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1280 +#: order/serializers.py:1288 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1410 +#: order/serializers.py:1418 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1432 order/serializers.py:1538 +#: order/serializers.py:1440 order/serializers.py:1546 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1435 order/serializers.py:1541 +#: order/serializers.py:1443 order/serializers.py:1549 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1482 +#: order/serializers.py:1490 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1489 +#: order/serializers.py:1497 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1707 +#: order/serializers.py:1715 msgid "Return order line item" msgstr "" -#: order/serializers.py:1713 +#: order/serializers.py:1721 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1716 +#: order/serializers.py:1724 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1745 +#: order/serializers.py:1753 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1828 +#: order/serializers.py:1836 msgid "Line price currency" msgstr "" @@ -6253,20 +6281,20 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1005 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 #: templates/js/translated/stock.js:2117 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1014 part/templates/part/part_base.html:286 #: report/models.py:162 templates/js/translated/part.js:1237 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 +#: part/admin.py:53 part/admin.py:319 part/models.py:987 #: part/templates/part/category.html:94 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6292,11 +6320,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:973 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1111 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6310,12 +6338,12 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 +#: part/admin.py:155 part/models.py:3169 part/models.py:3183 #: templates/js/translated/part.js:975 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 +#: part/admin.py:158 part/models.py:3176 part/models.py:3190 #: templates/js/translated/part.js:985 msgid "Maximum Cost" msgstr "" @@ -6457,7 +6485,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 +#: part/api.py:1518 part/models.py:997 part/models.py:3456 part/models.py:4013 #: part/serializers.py:421 part/serializers.py:1192 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6470,7 +6498,7 @@ msgstr "" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 +#: part/bom.py:170 part/models.py:105 part/models.py:1050 #: part/templates/part/category.html:116 part/templates/part/part_base.html:376 #: templates/js/translated/part.js:2397 msgid "Default Location" @@ -6485,7 +6513,7 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:86 part/models.py:4014 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -6500,7 +6528,7 @@ msgstr "" msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 +#: part/models.py:111 stock/models.py:180 templates/js/translated/part.js:2829 #: templates/js/translated/stock.js:2853 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 @@ -6519,12 +6547,12 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 +#: part/models.py:129 stock/models.py:87 stock/models.py:163 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:130 stock/models.py:164 msgid "Icon (optional)" msgstr "" @@ -6532,369 +6560,369 @@ msgstr "" msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:492 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:495 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:500 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:538 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:586 part/models.py:593 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:605 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:668 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:676 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:683 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:690 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:697 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:704 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:710 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:789 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:890 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:899 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:909 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:924 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:956 part/models.py:4069 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:961 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:962 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:972 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:980 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:988 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:998 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1013 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1023 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1024 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1048 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1094 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1095 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1102 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1103 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1112 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1121 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1128 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1134 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1140 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1146 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1152 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1156 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1161 templates/js/translated/part.js:820 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1162 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1168 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1174 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1175 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1183 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1188 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1204 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1214 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1219 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2092 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3083 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3099 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3100 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3106 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3107 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3113 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3114 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3120 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3121 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3127 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3128 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3134 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3135 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3141 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3142 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3148 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3149 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3155 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3156 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3162 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3163 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3170 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3177 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3184 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3191 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3197 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3198 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3204 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3205 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3211 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3212 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3218 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3219 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3238 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3243 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3244 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3252 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3256 part/models.py:3339 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6906,363 +6934,363 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3257 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3265 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3275 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3281 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3282 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3288 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3289 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3345 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3346 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3351 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3352 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3362 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3372 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3484 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3510 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3531 part/models.py:3700 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3542 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3553 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3570 templates/js/translated/part.js:2899 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3571 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3577 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3578 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3585 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3586 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 +#: part/models.py:3590 report/models.py:209 #: templates/js/translated/part.js:2920 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3590 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3595 templates/js/translated/part.js:2928 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3596 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3601 templates/js/translated/part.js:2936 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3602 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3607 templates/js/translated/part.js:2943 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3609 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3615 part/models.py:3759 templates/js/translated/part.js:1642 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3616 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3648 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3675 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3680 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3717 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3732 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3739 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3747 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3753 templates/js/translated/part.js:1633 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3754 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3760 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3794 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3820 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3856 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3905 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3913 part/models.py:4021 part/models.py:4022 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3919 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3969 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4028 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4029 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4067 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4068 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4070 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4071 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4071 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4182 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4189 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4199 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4209 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4210 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4221 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4227 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4233 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4240 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4241 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4248 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4256 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4262 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4263 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4268 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4269 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4274 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4275 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4281 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4366 stock/models.py:673 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4376 part/models.py:4378 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4516 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4537 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4550 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4558 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4574 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4582 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4583 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4602 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4607 msgid "Duplicate relationship already exists" msgstr "" @@ -8301,7 +8329,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:170 +#: plugin/api.py:172 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8313,100 +8341,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 #: templates/js/translated/purchase_order.js:1469 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2783 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8414,51 +8450,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8478,15 +8522,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8497,6 +8541,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -9176,7 +9244,7 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2469 msgid "Result" msgstr "" @@ -9211,15 +9279,15 @@ msgstr "" msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:152 report/templatetags/report.py:231 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:256 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:297 msgid "company_image tag requires a Company instance" msgstr "" @@ -9260,7 +9328,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:813 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9285,7 +9353,7 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:907 #: stock/templates/stock/item_base.html:433 #: templates/js/translated/stock.js:2311 users/models.py:124 msgid "Expiry Date" @@ -9365,7 +9433,7 @@ msgstr "" msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:125 stock/models.py:795 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" @@ -9377,292 +9445,292 @@ msgstr "" msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:173 stock/models.py:956 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:174 stock/models.py:957 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:182 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:189 templates/js/translated/stock.js:2862 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:190 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:196 templates/js/translated/stock.js:2871 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:200 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:267 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:652 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:679 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:696 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:706 stock/models.py:719 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:709 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:731 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:736 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:749 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:765 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:777 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:787 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:799 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:807 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:818 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:837 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:851 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:856 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:866 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:869 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:876 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:879 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:888 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:892 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:898 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:909 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:927 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:928 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:948 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:979 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1499 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1505 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1513 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1519 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1524 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1532 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1629 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1647 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1651 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1654 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1657 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1660 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1663 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1670 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1674 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1682 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1687 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1948 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2329 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2362 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2402 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2435 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2440 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2445 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2469 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2476 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2484 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2488 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2496 templates/js/translated/stock.js:1629 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2497 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2503 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2504 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2510 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2511 msgid "The timestamp of the test finish" msgstr "" @@ -10991,7 +11059,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2185 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2200 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -12317,7 +12385,7 @@ msgid "No builds matching query" msgstr "" #: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 -#: templates/js/translated/forms.js:2181 templates/js/translated/forms.js:2197 +#: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 #: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 msgid "Select" @@ -12726,27 +12794,27 @@ msgstr "" msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1993 +#: templates/js/translated/forms.js:2008 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2304 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2518 +#: templates/js/translated/forms.js:2533 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3120 +#: templates/js/translated/forms.js:3135 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3120 +#: templates/js/translated/forms.js:3135 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3132 +#: templates/js/translated/forms.js:3147 msgid "Select Columns" msgstr "" diff --git a/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po index 4e72c48fe6..7b6bcdb787 100644 --- a/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:39\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:37\n" "Last-Translator: \n" "Language-Team: Spanish, Mexico\n" "Language: es_MX\n" @@ -56,29 +56,29 @@ msgstr "Detalles del error pueden encontrarse en el panel de administración" msgid "Enter date" msgstr "Ingrese la fecha" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "Notas" @@ -135,74 +135,74 @@ msgstr "El dominio de correo electrónico proporcionado no está aprobado." msgid "Registration is disabled." msgstr "El registro ha sido desactivado." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "Cantidad proporcionada no válida" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "No se ha proporcionado un número de serie" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Número de serie duplicado" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Rango de grupo inválido: {group}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "El rango del grupo {group} supera la cantidad permitida ({expected_quantity})" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Secuencia de grupo inválida: {group}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "No se encontraron números de serie" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Los números de serie únicos ({len(serials)}) deben coincidir con la cantidad ({expected_quantity})" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Elimine etiquetas HTML de este valor" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Error de conexión" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "El servidor respondió con un código de estado no válido" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Se ha producido una excepción" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "El servidor respondió con un valor de longitud de contenido inválido" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "El tamaño de la imagen es demasiado grande" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "La imagen descargada exedió el tamaño máximo" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "El servidor remoto devolvió una respuesta vacía" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "La URL proporcionada no es un archivo de imagen válido" @@ -366,158 +366,158 @@ msgstr "[{site_name}] Iniciar sesión en la aplicación" msgid "Email" msgstr "Correo electrónico" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "Error al ejecutar la validación del plugin" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "Los nombres duplicados no pueden existir bajo el mismo padre" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Selección no válida" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "Nombre" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "Descripción" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "Descripción (opcional)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "Ruta" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "Notas (opcional)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Datos de código de barras" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Datos de código de barras de terceros" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "Hash del Código de barras" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Hash único de datos de código de barras" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Código de barras existente encontrado" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Error de servidor" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,17 +726,17 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "" @@ -789,72 +789,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" @@ -1260,7 +1260,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "" @@ -1270,21 +1270,21 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "" @@ -1508,7 +1508,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1584,13 +1584,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "" @@ -1600,22 +1600,22 @@ msgstr "" msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,7 +1633,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" @@ -1684,7 +1684,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "" @@ -1696,7 +1696,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1707,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1786,16 +1786,16 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" @@ -1875,8 +1875,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,11 +1890,11 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -2037,15 +2037,15 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,362 +2103,370 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "" msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3957,27 +3965,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4228,26 +4236,26 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,16 +4534,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "" @@ -4734,7 +4742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "" @@ -5203,7 +5211,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" @@ -5224,9 +5232,9 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" @@ -5239,26 +5247,26 @@ msgstr "" msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "" @@ -5286,7 +5294,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "" @@ -5310,365 +5318,365 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6056,12 +6064,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6175,8 +6183,8 @@ msgstr "" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "" @@ -6272,21 +6280,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6306,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6319,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6331,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6355,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,13 +6384,17 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" @@ -6489,13 +6501,13 @@ msgstr "" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6516,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7302,338 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7679,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7785,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7870,15 +7883,15 @@ msgstr "" msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "" @@ -7937,7 +7950,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +7960,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +7972,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8171,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8345,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8454,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8526,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9160,7 +9213,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,7 +9226,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9299,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9332,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9357,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9372,316 +9425,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "" @@ -9971,7 +10024,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "" @@ -10027,7 +10080,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "" @@ -10047,7 +10100,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10161,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10169,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "" @@ -10321,7 +10374,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10386,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11007,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11811,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "" @@ -11948,7 +12001,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12021,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12076,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,12 +12124,12 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "" @@ -12129,13 +12182,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12196,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12749,39 +12802,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +12919,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12931,358 +12984,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13719,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13887,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "" @@ -13891,18 +13945,14 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "" @@ -13951,432 +14001,432 @@ msgstr "" msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "" diff --git a/src/backend/InvenTree/locale/es_MX/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/es_MX/LC_MESSAGES/django.po index 91418799ac..5dcf87e43c 100644 --- a/src/backend/InvenTree/locale/es_MX/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/es_MX/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-16 03:18+0000\n" +"POT-Creation-Date: 2024-07-22 10:29+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -57,15 +57,18 @@ msgstr "" msgid "Enter date" msgstr "" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:919 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:824 company/templates/company/sidebar.html:37 -#: order/models.py:1305 order/templates/order/po_sidebar.html:11 +#: company/models.py:836 +#: company/templates/company/manufacturer_part_sidebar.html:11 +#: company/templates/company/sidebar.html:37 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 +#: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3264 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2361 stock/models.py:2488 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 @@ -133,74 +136,74 @@ msgstr "" msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "" @@ -364,57 +367,57 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:720 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:737 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:587 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 +#: InvenTree/models.py:767 common/models.py:2692 common/models.py:3122 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:956 part/models.py:3731 plugin/models.py:51 #: report/models.py:150 stock/models.py:74 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -432,14 +435,14 @@ msgstr "" msgid "Name" msgstr "" -#: InvenTree/models.py:775 build/models.py:242 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:515 company/models.py:815 +#: InvenTree/models.py:773 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:408 part/models.py:979 +#: part/models.py:3746 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 @@ -469,16 +472,16 @@ msgstr "" msgid "Description" msgstr "" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:774 stock/models.py:81 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 +#: InvenTree/models.py:789 templates/js/translated/part.js:2813 #: templates/js/translated/stock.js:2838 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:919 msgid "Markdown notes (optional)" msgstr "" @@ -498,24 +501,24 @@ msgstr "" msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1025 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1068 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1069 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4354 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3082 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -565,9 +568,9 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:789 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2697 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1156 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -606,7 +609,7 @@ msgstr "" msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:581 importer/models.py:62 +#: InvenTree/serializers.py:581 importer/models.py:63 msgid "Data File" msgstr "" @@ -724,7 +727,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4232 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:190 @@ -732,7 +735,7 @@ msgstr "" msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4226 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:186 @@ -753,7 +756,7 @@ msgstr "" msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:879 company/serializers.py:388 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -787,37 +790,37 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:127 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:134 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:141 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:155 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:166 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:172 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:233 +#: build/models.py:240 msgid "Build Order Reference" msgstr "" -#: build/models.py:234 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:411 part/models.py:4247 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -831,27 +834,27 @@ msgstr "" msgid "Reference" msgstr "" -#: build/models.py:245 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:253 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:254 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:259 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1034 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3093 +#: part/models.py:3237 part/models.py:3385 part/models.py:3406 +#: part/models.py:3428 part/models.py:3564 part/models.py:3904 +#: part/models.py:4067 part/models.py:4198 part/models.py:4557 #: part/serializers.py:1182 part/serializers.py:1812 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -896,108 +899,108 @@ msgstr "" msgid "Part" msgstr "" -#: build/models.py:267 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:272 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:276 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:281 build/serializers.py:1009 +#: build/models.py:288 build/serializers.py:1009 #: templates/js/translated/build.js:1906 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:285 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:290 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:294 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:298 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:301 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:305 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:307 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:311 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:315 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:324 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:633 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:847 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 #: templates/js/translated/stock.js:1195 msgid "Batch Code" msgstr "" -#: build/models.py:328 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "" -#: build/models.py:331 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1196 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:335 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:336 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:339 order/models.py:521 order/models.py:2100 +#: build/models.py:346 order/models.py:526 order/models.py:2115 #: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "" -#: build/models.py:345 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:353 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "" -#: build/models.py:354 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:362 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1213 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1008,36 +1011,36 @@ msgstr "" msgid "Responsible" msgstr "" -#: build/models.py:363 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:368 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:843 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:369 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3263 part/models.py:1031 +#: stock/models.py:843 msgid "Link to external URL" msgstr "" -#: build/models.py:373 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:376 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:383 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2319 @@ -1049,66 +1052,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:384 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:617 build/models.py:682 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:639 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:645 +#: build/models.py:652 msgid "A build order has been completed" msgstr "" -#: build/models.py:871 build/models.py:956 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "" -#: build/models.py:874 +#: build/models.py:881 msgid "Build output is already completed" msgstr "" -#: build/models.py:877 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:960 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:462 -#: order/serializers.py:628 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 +#: stock/models.py:688 stock/models.py:1508 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:965 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1025 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1366 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1391 +#: build/models.py:1398 msgid "Build object" msgstr "" -#: build/models.py:1405 build/models.py:1661 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1405 +#: build/templates/build/detail.html:34 common/models.py:2569 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: part/forms.py:48 part/models.py:3251 part/models.py:4220 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1150,37 +1153,37 @@ msgstr "" msgid "Quantity" msgstr "" -#: build/models.py:1406 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1486 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1495 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1505 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1511 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1517 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1576 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1648 build/serializers.py:856 order/serializers.py:1249 -#: order/serializers.py:1270 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:364 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1197,24 +1200,24 @@ msgstr "" msgid "Stock Item" msgstr "" -#: build/models.py:1649 +#: build/models.py:1656 msgid "Source stock item" msgstr "" -#: build/models.py:1662 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1670 +#: build/models.py:1677 msgid "Install into" msgstr "" -#: build/models.py:1671 +#: build/models.py:1678 msgid "Destination stock item" msgstr "" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:405 part/models.py:4069 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" @@ -1256,7 +1259,7 @@ msgstr "" msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:303 order/serializers.py:641 order/serializers.py:1409 +#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 #: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 msgid "Serial Numbers" @@ -1267,7 +1270,7 @@ msgid "Enter serial numbers for build outputs" msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:617 order/serializers.py:741 order/serializers.py:1736 +#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 @@ -1331,8 +1334,8 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:649 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 @@ -1405,7 +1408,7 @@ msgstr "" msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1312 +#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 msgid "Accept Incomplete" msgstr "" @@ -1445,7 +1448,7 @@ msgstr "" msgid "Item must be in stock" msgstr "" -#: build/serializers.py:910 order/serializers.py:1303 +#: build/serializers.py:910 order/serializers.py:1311 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" @@ -1458,7 +1461,7 @@ msgstr "" msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:947 order/serializers.py:1555 +#: build/serializers.py:947 order/serializers.py:1563 msgid "Allocation items must be provided" msgstr "" @@ -1506,7 +1509,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:500 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" @@ -1524,18 +1527,18 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4068 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4070 msgid "Part IPN" msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:833 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 #: templates/js/translated/build.js:2530 @@ -1571,8 +1574,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1139 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1582,13 +1585,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4280 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4077 part/models.py:4549 #: stock/api.py:796 msgid "BOM Item" msgstr "" @@ -1650,7 +1653,7 @@ msgstr "" msgid "Cancelled" msgstr "" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:501 +#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 #: importer/status_codes.py:19 order/status_codes.py:14 #: order/status_codes.py:44 order/status_codes.py:69 #: order/templates/order/order_base.html:158 @@ -1784,7 +1787,7 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 @@ -1822,8 +1825,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1873,7 +1876,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 +#: build/templates/build/detail.html:49 order/models.py:1467 #: templates/js/translated/purchase_order.js:2260 msgid "Destination" msgstr "" @@ -2101,362 +2104,370 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1626 common/models.py:1648 common/models.py:1763 +#: common/models.py:2136 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3912 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2464,1256 +2475,1256 @@ msgstr "" msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:425 part/models.py:1127 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1133 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1145 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1151 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1167 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1563 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1565 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1571 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1573 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1584 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1586 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1597 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1605 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1607 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1615 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1623 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1630 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1631 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1636 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1638 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1644 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1646 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1653 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1654 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1659 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1661 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1667 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1668 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1673 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1675 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1681 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1682 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1687 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1688 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1693 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1694 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1699 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1700 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1705 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1706 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1711 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1713 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1719 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1720 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1725 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1726 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1731 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1733 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1739 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1741 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1746 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1747 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1752 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1758 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1760 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1767 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1768 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1773 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1774 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1779 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1780 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1784 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1785 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1790 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1792 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1798 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1800 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1806 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1808 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1814 common/models.py:1862 common/models.py:1884 +#: common/models.py:1920 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1815 common/models.py:1863 common/models.py:1885 +#: common/models.py:1921 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1820 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1821 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1826 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1827 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1832 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1834 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1840 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1842 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1848 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1849 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1854 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1856 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1868 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1870 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1876 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1878 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1890 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1891 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1896 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1898 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1904 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1906 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1912 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1914 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1926 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1928 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1934 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1936 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1943 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1944 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1949 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1950 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1955 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1956 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1961 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1963 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1969 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1971 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1977 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1979 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1985 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1987 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1993 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1995 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2001 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2002 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2007 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2009 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2015 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2016 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2021 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2022 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2027 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2029 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2035 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2037 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2043 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2044 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2049 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2051 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2059 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2060 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2066 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2067 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2073 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2074 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2080 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2081 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2087 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2088 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2094 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2095 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2101 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2102 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2107 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2109 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2115 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2117 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2123 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2125 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2131 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2133 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2140 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2141 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2146 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2147 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2159 common/models.py:2539 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2202 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2204 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2210 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2211 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2216 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2217 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2222 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2223 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2228 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2229 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2234 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2235 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2240 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2241 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2246 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2247 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2252 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2253 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2258 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2259 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2264 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2265 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2270 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2271 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2276 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2277 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2282 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2283 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2288 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2289 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2294 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2295 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2300 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2301 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2306 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2307 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2312 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2313 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2318 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2320 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2326 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2328 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2334 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2336 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2342 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2343 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2348 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2349 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2354 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2355 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2360 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2361 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2366 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2367 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2372 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2373 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2378 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2380 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2386 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2387 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2392 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2393 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2398 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2399 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2404 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2405 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2410 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2412 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2418 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2419 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2424 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2426 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2432 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2433 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2438 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2440 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2446 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2448 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2454 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2455 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2460 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2461 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2466 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2467 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2472 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2473 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2478 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2479 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2484 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2485 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2498 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2499 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2504 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2506 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2512 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2514 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2520 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2521 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2526 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2527 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:87 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2547 common/models.py:2548 common/models.py:2705 +#: common/models.py:2706 common/models.py:2951 common/models.py:2952 +#: common/models.py:3278 common/models.py:3279 importer/models.py:88 +#: part/models.py:3274 part/models.py:3361 part/models.py:3435 +#: part/models.py:3463 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3117 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2551 +#: common/models.py:2570 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:506 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 +#: common/models.py:2577 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:740 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2578 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2682 common/models.py:2867 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2683 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2693 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2697 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2713 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2714 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2722 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2723 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2831 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2832 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2840 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2841 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2849 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2850 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2857 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2858 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2868 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2873 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2874 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3000 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3002 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:506 company/models.py:806 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3004 common/models.py:3262 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1030 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 @@ -3727,28 +3738,28 @@ msgstr "" msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3006 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3008 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3010 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3013 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3013 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3030 company/models.py:159 part/models.py:1040 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3758,94 +3769,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3030 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3042 common/models.py:3246 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3046 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3068 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3089 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3104 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3123 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3130 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3131 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3137 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3138 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3196 common/models.py:3253 stock/models.py:2483 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3181 +#: common/models.py:3208 msgid "Missing file" msgstr "" -#: common/models.py:3182 +#: common/models.py:3209 msgid "Missing external link" msgstr "" -#: common/models.py:3227 +#: common/models.py:3254 msgid "Select file to attach" msgstr "" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3269 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3243 +#: common/models.py:3270 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3286 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3287 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3291 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3291 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3329 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -4226,24 +4237,24 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:469 company/models.py:581 company/models.py:799 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:481 company/models.py:767 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:775 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:483 company/models.py:769 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:492 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 #: company/templates/company/supplier_part.html:145 part/serializers.py:545 #: stock/templates/stock/item_base.html:207 @@ -4255,12 +4266,12 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:493 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:499 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:519 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:527 #: part/serializers.py:555 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 @@ -4270,48 +4281,49 @@ msgstr "" msgid "MPN" msgstr "" -#: company/models.py:507 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:516 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:569 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:588 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:594 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2475 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 #: templates/js/translated/stock.js:1603 msgid "Value" msgstr "" -#: company/models.py:595 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:602 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1120 part/models.py:3738 #: part/templates/part/part_base.html:293 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 #: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 msgid "Units" msgstr "" -#: company/models.py:603 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:655 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: stock/models.py:776 stock/templates/stock/item_base.html:233 +#: order/serializers.py:462 stock/models.py:786 +#: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1054 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 @@ -4319,20 +4331,20 @@ msgstr "" msgid "Supplier Part" msgstr "" -#: company/models.py:707 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:714 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:728 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:777 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 #: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 #: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 @@ -4347,32 +4359,32 @@ msgstr "" msgid "Supplier" msgstr "" -#: company/models.py:778 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:784 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:540 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:790 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:800 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:807 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:816 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:823 company/templates/company/supplier_part.html:187 -#: order/serializers.py:661 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:412 part/models.py:4255 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4384,16 +4396,16 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:832 part/models.py:2079 +#: company/models.py:844 part/models.py:2084 msgid "base cost" msgstr "" -#: company/models.py:833 part/models.py:2080 +#: company/models.py:845 part/models.py:2085 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:840 company/templates/company/supplier_part.html:160 -#: order/serializers.py:653 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:806 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 @@ -4403,11 +4415,11 @@ msgstr "" msgid "Packaging" msgstr "" -#: company/models.py:841 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:846 templates/js/translated/company.js:1651 +#: company/models.py:858 templates/js/translated/company.js:1651 #: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 @@ -4417,31 +4429,31 @@ msgstr "" msgid "Pack Quantity" msgstr "" -#: company/models.py:848 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:867 part/models.py:2086 +#: company/models.py:879 part/models.py:2091 msgid "multiple" msgstr "" -#: company/models.py:868 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:880 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:886 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:887 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1015 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4453,7 +4465,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:386 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4523,10 +4535,10 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:828 +#: stock/models.py:829 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 @@ -4721,7 +4733,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:65 #: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:527 +#: order/serializers.py:535 msgid "Internal Part" msgstr "" @@ -4751,7 +4763,11 @@ msgstr "" msgid "New Parameter" msgstr "" -#: company/templates/company/manufacturer_part.html:196 +#: company/templates/company/manufacturer_part.html:177 +msgid "Manufacturer Part Notes" +msgstr "" + +#: company/templates/company/manufacturer_part.html:225 #: templates/js/translated/part.js:1428 msgid "Add Parameter" msgstr "" @@ -4817,7 +4833,7 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:516 +#: company/templates/company/supplier_part.html:139 order/serializers.py:524 #: part/bom.py:279 part/bom.py:311 part/serializers.py:539 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 #: templates/js/translated/pricing.js:510 @@ -4855,15 +4871,19 @@ msgstr "" msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:276 +#: company/templates/company/supplier_part.html:270 +msgid "Supplier Part Notes" +msgstr "" + +#: company/templates/company/supplier_part.html:305 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:287 +#: company/templates/company/supplier_part.html:316 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:359 +#: company/templates/company/supplier_part.html:388 msgid "Update Part Availability" msgstr "" @@ -4915,87 +4935,91 @@ msgstr "" msgid "Invalid export format" msgstr "" -#: importer/models.py:58 +#: importer/models.py:59 msgid "Timestamp" msgstr "" -#: importer/models.py:63 +#: importer/models.py:64 msgid "Data file to import" msgstr "" -#: importer/models.py:72 templates/js/translated/tables.js:558 +#: importer/models.py:73 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:83 +#: importer/models.py:84 msgid "Import status" msgstr "" -#: importer/models.py:93 +#: importer/models.py:94 msgid "Field Defaults" msgstr "" -#: importer/models.py:100 +#: importer/models.py:101 msgid "Field Overrides" msgstr "" -#: importer/models.py:222 +#: importer/models.py:108 +msgid "Field Filters" +msgstr "" + +#: importer/models.py:230 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:379 +#: importer/models.py:387 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:384 +#: importer/models.py:392 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:393 +#: importer/models.py:401 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:398 +#: importer/models.py:406 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:405 +#: importer/models.py:413 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:409 +#: importer/models.py:417 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:414 importer/models.py:485 +#: importer/models.py:422 importer/models.py:493 msgid "Import Session" msgstr "" -#: importer/models.py:418 +#: importer/models.py:426 msgid "Field" msgstr "" -#: importer/models.py:420 +#: importer/models.py:428 msgid "Column" msgstr "" -#: importer/models.py:489 +#: importer/models.py:497 msgid "Row Index" msgstr "" -#: importer/models.py:492 +#: importer/models.py:500 msgid "Original row data" msgstr "" -#: importer/models.py:495 part/models.py:3913 +#: importer/models.py:503 part/models.py:3918 msgid "Data" msgstr "" -#: importer/models.py:497 machine/models.py:110 +#: importer/models.py:505 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:499 part/api.py:874 +#: importer/models.py:507 part/api.py:874 msgid "Valid" msgstr "" @@ -5011,35 +5035,39 @@ msgstr "" msgid "Invalid data file dimensions" msgstr "" -#: importer/serializers.py:90 +#: importer/serializers.py:91 msgid "Invalid field defaults" msgstr "" -#: importer/serializers.py:103 +#: importer/serializers.py:104 msgid "Invalid field overrides" msgstr "" -#: importer/serializers.py:164 -msgid "Rows" -msgstr "" - -#: importer/serializers.py:165 -msgid "List of row IDs to accept" +#: importer/serializers.py:117 +msgid "Invalid field filters" msgstr "" #: importer/serializers.py:178 +msgid "Rows" +msgstr "" + +#: importer/serializers.py:179 +msgid "List of row IDs to accept" +msgstr "" + +#: importer/serializers.py:192 msgid "No rows provided" msgstr "" -#: importer/serializers.py:182 +#: importer/serializers.py:196 msgid "Row does not belong to this session" msgstr "" -#: importer/serializers.py:185 +#: importer/serializers.py:199 msgid "Row contains invalid data" msgstr "" -#: importer/serializers.py:188 +#: importer/serializers.py:202 msgid "Row has already been completed" msgstr "" @@ -5205,9 +5233,9 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" @@ -5220,8 +5248,8 @@ msgstr "" msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 @@ -5234,8 +5262,8 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 @@ -5267,7 +5295,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "" @@ -5291,142 +5319,142 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 +#: order/models.py:503 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1773 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 +#: order/models.py:1446 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 #: templates/js/translated/purchase_order.js:1369 #: templates/js/translated/purchase_order.js:2240 @@ -5436,220 +5464,220 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:947 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2392 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1420 -#: order/serializers.py:1530 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1297 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 +#: order/models.py:1967 order/models.py:2290 #: templates/js/translated/return_order.js:721 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:732 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5661,172 +5689,172 @@ msgstr "" msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:321 order/serializers.py:1313 +#: order/serializers.py:321 order/serializers.py:1321 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1323 +#: order/serializers.py:331 order/serializers.py:1331 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:469 +#: order/serializers.py:477 msgid "Order is not open" msgstr "" -#: order/serializers.py:490 +#: order/serializers.py:498 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:492 +#: order/serializers.py:500 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:502 +#: order/serializers.py:510 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:508 +#: order/serializers.py:516 msgid "Merge Items" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:518 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:523 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1006 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:531 +#: order/serializers.py:539 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:555 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:550 +#: order/serializers.py:558 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:566 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:559 +#: order/serializers.py:567 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:602 order/serializers.py:1391 +#: order/serializers.py:610 order/serializers.py:1399 msgid "Line Item" msgstr "" -#: order/serializers.py:608 +#: order/serializers.py:616 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:618 order/serializers.py:742 order/serializers.py:1737 +#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:634 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 #: templates/js/translated/stock.js:1196 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:654 +#: order/serializers.py:662 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:662 +#: order/serializers.py:670 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:669 templates/js/translated/barcode.js:52 +#: order/serializers.py:677 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:678 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:686 +#: order/serializers.py:694 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:710 +#: order/serializers.py:718 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:758 order/serializers.py:1753 +#: order/serializers.py:766 order/serializers.py:1761 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:774 +#: order/serializers.py:782 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:785 +#: order/serializers.py:793 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1139 +#: order/serializers.py:1147 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1200 +#: order/serializers.py:1208 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1261 order/serializers.py:1400 +#: order/serializers.py:1269 order/serializers.py:1408 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1280 +#: order/serializers.py:1288 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1410 +#: order/serializers.py:1418 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1432 order/serializers.py:1538 +#: order/serializers.py:1440 order/serializers.py:1546 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1435 order/serializers.py:1541 +#: order/serializers.py:1443 order/serializers.py:1549 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1482 +#: order/serializers.py:1490 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1489 +#: order/serializers.py:1497 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1707 +#: order/serializers.py:1715 msgid "Return order line item" msgstr "" -#: order/serializers.py:1713 +#: order/serializers.py:1721 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1716 +#: order/serializers.py:1724 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1745 +#: order/serializers.py:1753 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1828 +#: order/serializers.py:1836 msgid "Line price currency" msgstr "" @@ -6253,20 +6281,20 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1005 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 #: templates/js/translated/stock.js:2117 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1014 part/templates/part/part_base.html:286 #: report/models.py:162 templates/js/translated/part.js:1237 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 +#: part/admin.py:53 part/admin.py:319 part/models.py:987 #: part/templates/part/category.html:94 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6292,11 +6320,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:973 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1111 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6310,12 +6338,12 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 +#: part/admin.py:155 part/models.py:3169 part/models.py:3183 #: templates/js/translated/part.js:975 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 +#: part/admin.py:158 part/models.py:3176 part/models.py:3190 #: templates/js/translated/part.js:985 msgid "Maximum Cost" msgstr "" @@ -6457,7 +6485,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 +#: part/api.py:1518 part/models.py:997 part/models.py:3456 part/models.py:4013 #: part/serializers.py:421 part/serializers.py:1192 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6470,7 +6498,7 @@ msgstr "" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 +#: part/bom.py:170 part/models.py:105 part/models.py:1050 #: part/templates/part/category.html:116 part/templates/part/part_base.html:376 #: templates/js/translated/part.js:2397 msgid "Default Location" @@ -6485,7 +6513,7 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:86 part/models.py:4014 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -6500,7 +6528,7 @@ msgstr "" msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 +#: part/models.py:111 stock/models.py:180 templates/js/translated/part.js:2829 #: templates/js/translated/stock.js:2853 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 @@ -6519,12 +6547,12 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 +#: part/models.py:129 stock/models.py:87 stock/models.py:163 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:130 stock/models.py:164 msgid "Icon (optional)" msgstr "" @@ -6532,369 +6560,369 @@ msgstr "" msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:492 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:495 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:500 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:538 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:586 part/models.py:593 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:605 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:668 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:676 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:683 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:690 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:697 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:704 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:710 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:789 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:890 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:899 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:909 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:924 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:956 part/models.py:4069 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:961 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:962 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:972 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:980 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:988 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:998 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1013 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1023 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1024 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1048 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1094 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1095 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1102 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1103 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1112 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1121 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1128 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1134 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1140 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1146 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1152 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1156 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1161 templates/js/translated/part.js:820 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1162 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1168 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1174 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1175 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1183 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1188 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1204 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1214 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1219 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2092 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3083 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3099 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3100 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3106 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3107 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3113 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3114 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3120 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3121 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3127 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3128 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3134 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3135 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3141 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3142 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3148 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3149 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3155 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3156 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3162 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3163 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3170 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3177 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3184 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3191 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3197 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3198 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3204 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3205 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3211 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3212 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3218 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3219 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3238 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3243 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3244 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3252 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3256 part/models.py:3339 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6906,363 +6934,363 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3257 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3265 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3275 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3281 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3282 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3288 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3289 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3345 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3346 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3351 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3352 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3362 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3372 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3484 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3510 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3531 part/models.py:3700 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3542 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3553 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3570 templates/js/translated/part.js:2899 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3571 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3577 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3578 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3585 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3586 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 +#: part/models.py:3590 report/models.py:209 #: templates/js/translated/part.js:2920 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3590 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3595 templates/js/translated/part.js:2928 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3596 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3601 templates/js/translated/part.js:2936 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3602 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3607 templates/js/translated/part.js:2943 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3609 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3615 part/models.py:3759 templates/js/translated/part.js:1642 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3616 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3648 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3675 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3680 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3717 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3732 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3739 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3747 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3753 templates/js/translated/part.js:1633 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3754 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3760 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3794 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3820 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3856 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3905 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3913 part/models.py:4021 part/models.py:4022 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3919 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3969 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4028 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4029 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4067 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4068 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4070 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4071 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4071 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4182 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4189 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4199 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4209 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4210 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4221 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4227 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4233 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4240 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4241 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4248 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4256 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4262 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4263 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4268 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4269 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4274 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4275 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4281 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4366 stock/models.py:673 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4376 part/models.py:4378 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4516 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4537 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4550 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4558 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4574 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4582 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4583 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4602 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4607 msgid "Duplicate relationship already exists" msgstr "" @@ -8301,7 +8329,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:170 +#: plugin/api.py:172 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8313,100 +8341,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 #: templates/js/translated/purchase_order.js:1469 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2783 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8414,51 +8450,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8478,15 +8522,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8497,6 +8541,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -9176,7 +9244,7 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2469 msgid "Result" msgstr "" @@ -9211,15 +9279,15 @@ msgstr "" msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:152 report/templatetags/report.py:231 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:256 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:297 msgid "company_image tag requires a Company instance" msgstr "" @@ -9260,7 +9328,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:813 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9285,7 +9353,7 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:907 #: stock/templates/stock/item_base.html:433 #: templates/js/translated/stock.js:2311 users/models.py:124 msgid "Expiry Date" @@ -9365,7 +9433,7 @@ msgstr "" msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:125 stock/models.py:795 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" @@ -9377,292 +9445,292 @@ msgstr "" msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:173 stock/models.py:956 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:174 stock/models.py:957 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:182 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:189 templates/js/translated/stock.js:2862 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:190 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:196 templates/js/translated/stock.js:2871 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:200 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:267 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:652 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:679 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:696 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:706 stock/models.py:719 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:709 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:731 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:736 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:749 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:765 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:777 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:787 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:799 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:807 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:818 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:837 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:851 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:856 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:866 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:869 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:876 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:879 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:888 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:892 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:898 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:909 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:927 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:928 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:948 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:979 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1499 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1505 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1513 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1519 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1524 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1532 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1629 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1647 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1651 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1654 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1657 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1660 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1663 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1670 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1674 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1682 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1687 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1948 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2329 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2362 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2402 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2435 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2440 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2445 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2469 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2476 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2484 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2488 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2496 templates/js/translated/stock.js:1629 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2497 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2503 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2504 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2510 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2511 msgid "The timestamp of the test finish" msgstr "" @@ -10991,7 +11059,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2185 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2200 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -12317,7 +12385,7 @@ msgid "No builds matching query" msgstr "" #: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 -#: templates/js/translated/forms.js:2181 templates/js/translated/forms.js:2197 +#: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 #: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 msgid "Select" @@ -12726,27 +12794,27 @@ msgstr "" msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1993 +#: templates/js/translated/forms.js:2008 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2304 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2518 +#: templates/js/translated/forms.js:2533 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3120 +#: templates/js/translated/forms.js:3135 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3120 +#: templates/js/translated/forms.js:3135 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3132 +#: templates/js/translated/forms.js:3147 msgid "Select Columns" msgstr "" diff --git a/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po index eb0fce7016..2195dc7356 100644 --- a/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:39\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:37\n" "Last-Translator: \n" "Language-Team: Estonian\n" "Language: et_EE\n" @@ -56,29 +56,29 @@ msgstr "" msgid "Enter date" msgstr "" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "Märkmed" @@ -135,74 +135,74 @@ msgstr "" msgid "Registration is disabled." msgstr "Registreerimine on ajutiselt väljalülitatud." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Ühenduse viga" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Esines tõrge" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "" @@ -366,158 +366,158 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,17 +726,17 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "" @@ -789,72 +789,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Tootekood" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" @@ -1260,7 +1260,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "" @@ -1270,21 +1270,21 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "" @@ -1508,7 +1508,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "Tarnija osa number" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "Osa ID" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "Seerianumber" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1584,13 +1584,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "" @@ -1600,22 +1600,22 @@ msgstr "" msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,7 +1633,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" @@ -1684,7 +1684,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "" @@ -1696,7 +1696,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1707,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1786,16 +1786,16 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" @@ -1875,8 +1875,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,11 +1890,11 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "Loodud" @@ -2037,15 +2037,15 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,362 +2103,370 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "Grupp puudub" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "Taaskäivitamine on vajalik" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "Automaatne varundus" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Vöötkoodi tugi" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "" msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3957,27 +3965,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4228,26 +4236,26 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,16 +4534,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "" @@ -4734,7 +4742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "" @@ -5203,7 +5211,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" @@ -5224,9 +5232,9 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" @@ -5239,26 +5247,26 @@ msgstr "" msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "" @@ -5286,7 +5294,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "" @@ -5310,365 +5318,365 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6056,12 +6064,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6175,8 +6183,8 @@ msgstr "" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "" @@ -6272,21 +6280,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6306,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6319,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6331,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6355,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,13 +6384,17 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" @@ -6489,13 +6501,13 @@ msgstr "" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6516,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7302,338 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7679,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7785,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7870,15 +7883,15 @@ msgstr "" msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "" @@ -7937,7 +7950,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +7960,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +7972,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8171,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8345,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8454,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8526,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9160,7 +9213,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,7 +9226,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9299,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9332,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9357,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9372,316 +9425,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "" @@ -9971,7 +10024,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "" @@ -10027,7 +10080,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "" @@ -10047,7 +10100,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10161,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10169,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "" @@ -10321,7 +10374,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10386,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11007,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11811,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "" @@ -11948,7 +12001,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12021,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12076,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,12 +12124,12 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "" @@ -12129,13 +12182,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12196,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12749,39 +12802,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +12919,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12931,358 +12984,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13719,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13887,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "" @@ -13891,18 +13945,14 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "" @@ -13951,432 +14001,432 @@ msgstr "" msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "" diff --git a/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po index 73d666109d..59bf543b75 100644 --- a/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:39\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Persian\n" "Language: fa_IR\n" @@ -56,29 +56,29 @@ msgstr "جزئیات خطا را می توان در پنل مدیریت پیدا msgid "Enter date" msgstr "تاریخ را وارد کنید" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "یادداشت" @@ -135,74 +135,74 @@ msgstr "دامنه ایمیل ارائه شده تایید نشده است." msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "خطا در اتصال" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "سرور با کد وضعیت نامعتبر پاسخ داد" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "یک استثنا رخ داده است" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "سرور با مقدار طول محتوا نامعتبر پاسخ داد" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "اندازه عکس بسیار بزرگ است" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "" @@ -366,158 +366,158 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "آدرس فایل تصویری از راه دور" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,17 +726,17 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "" @@ -789,72 +789,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "مرجع سفارش فروش" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "منبع محل" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "مقصد" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" @@ -1260,7 +1260,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "" @@ -1270,21 +1270,21 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "" @@ -1508,7 +1508,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1584,13 +1584,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "" @@ -1600,22 +1600,22 @@ msgstr "" msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,7 +1633,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" @@ -1684,7 +1684,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "" @@ -1696,7 +1696,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1707,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1786,16 +1786,16 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" @@ -1875,8 +1875,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,11 +1890,11 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -2037,15 +2037,15 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,362 +2103,370 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "" msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3957,27 +3965,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4228,26 +4236,26 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,16 +4534,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "" @@ -4734,7 +4742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "" @@ -5203,7 +5211,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" @@ -5224,9 +5232,9 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" @@ -5239,26 +5247,26 @@ msgstr "" msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "" @@ -5286,7 +5294,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "" @@ -5310,365 +5318,365 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6056,12 +6064,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6175,8 +6183,8 @@ msgstr "" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "" @@ -6272,21 +6280,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6306,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6319,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6331,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6355,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,13 +6384,17 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" @@ -6489,13 +6501,13 @@ msgstr "" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6516,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7302,338 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7679,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7785,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7870,15 +7883,15 @@ msgstr "" msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "" @@ -7937,7 +7950,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +7960,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +7972,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8171,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8345,108 @@ msgstr "هیچ عملیات کاربر-محوری، مشخص نشده است" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8454,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8526,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9160,7 +9213,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,7 +9226,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9299,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9332,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9357,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9372,316 +9425,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "" @@ -9971,7 +10024,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "" @@ -10027,7 +10080,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "" @@ -10047,7 +10100,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10161,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10169,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "" @@ -10321,7 +10374,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10386,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11007,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11811,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "" @@ -11948,7 +12001,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12021,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12076,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,12 +12124,12 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "" @@ -12129,13 +12182,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12196,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12749,39 +12802,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +12919,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12931,358 +12984,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13719,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13887,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "" @@ -13891,18 +13945,14 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "" @@ -13951,432 +14001,432 @@ msgstr "" msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "" diff --git a/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po index 02f8161ea5..86aaa38386 100644 --- a/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:37\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Finnish\n" "Language: fi_FI\n" @@ -56,29 +56,29 @@ msgstr "Virheen tiedot löytyvät hallintapaneelista" msgid "Enter date" msgstr "Anna päivämäärä" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "Merkinnät" @@ -135,74 +135,74 @@ msgstr "Annetun sähköpostiosoitteen verkkotunnusta ei hyväksytä." msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "Annettu määrä on virheellinen" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Tyhjä sarjanumero" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Duplikaatti sarjanumero" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Sarjanumeroita ei löytynyt" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Yhteysvirhe" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Palvelin vastasi virheellisellä tilakoodilla" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Kuva on liian iso" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Kuvan lataus ylitti enimmäiskoon" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Etäpalvelin palautti tyhjän vastauksen" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "Annettu URL ei ole kelvollinen kuvatiedosto" @@ -366,158 +366,158 @@ msgstr "" msgid "Email" msgstr "Sähköposti" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "Metatietojen tulee olla python dict objekti" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "Liitännäisen metadata" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "JSON metadatakenttä, ulkoisten liitännäisten käyttöön" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Virheellisesti muotoiltu malli" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Viitekenttä ei voi olla tyhjä" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Viitenumero on liian suuri" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Virheellinen valinta" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "Nimi" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "Kuvaus" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "Kuvaus (valinnainen)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "Polku" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Viivakoodin Tiedot" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Palvelinvirhe" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "Täytyy olla kelvollinen luku" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "Kuvatiedoston URL" msgid "Downloading images from remote URL is not enabled" msgstr "Kuvien lataaminen ei ole käytössä" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,17 +726,17 @@ msgstr "Tietoja InvenTree:stä" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "Saatavilla" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "" @@ -789,72 +789,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "Osa" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Ulkoinen linkki" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "Linkki ulkoiseen URLiin" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "Määrä" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "Varastotuote" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" @@ -1260,7 +1260,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Sarjanumerot" @@ -1270,21 +1270,21 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "Sijainti" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "Tila" @@ -1508,7 +1508,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "Valmistajan osanumero" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "Sarjanumero" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1584,13 +1584,13 @@ msgstr "Seurattavissa" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "" @@ -1600,22 +1600,22 @@ msgstr "" msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,7 +1633,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" @@ -1684,7 +1684,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "" @@ -1696,7 +1696,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1707,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "Poista viivakoodin linkitys" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "Linkitä viivakoodi" @@ -1786,16 +1786,16 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "Prioriteetti" @@ -1875,8 +1875,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,11 +1890,11 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -2037,15 +2037,15 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,362 +2103,370 @@ msgstr "{name.title()} Tiedosto" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "Päivitetty" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "Viimeisimmän päivityksen aikaleima" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "Ei ryhmää" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "Uudelleenkäynnistys vaaditaan" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "Yrityksen nimi" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "Yrityksen sisäinen nimi" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "Oletusvaluutta" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "päivää" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "Automaattinen varmuuskopionti" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "Ota käyttöön tietokannan ja mediatiedostojen automaattinen varmuuskopiointi" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "Automaattisen varmuuskopioinnin aikaväli" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Viivakoodituki" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "" msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "Komponentti" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "Ostettavissa" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "Sisäiset hinnat" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "Sisäisen hinnan ohitus" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "Sivun koko" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "Täytä sarjanumerot automaattisesti" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "Salli salasananpalautus" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "Salli rekisteröinti" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "Salli SSO" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "Salli SSO kirjautumissivuilla" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "Salli SSO rekisteröinti" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "Sähköposti vaaditaan" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "Sähköpostiosoite kahdesti" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "Salasana kahdesti" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "Sallitut verkkotunnukset" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "Pakota MFA" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "Näytä uutiset" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "Näytä uutiset kotisivulla" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "Käyttäjä" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Hinta" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "Salaisuus" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "Isäntä" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Otsikko" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "Linkki" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "Julkaistu" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Julkaisija" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "Yhteenveto" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "" msgid "Image" msgstr "Kuva" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "Kuvatiedosto" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Liite" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "Puuttuva tiedosto" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Puuttuva ulkoinen linkki" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Valitse liitettävä tiedosto" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Kommentti" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3957,27 +3965,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "Verkkotunnus ei saa olla tyhjä." -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Virheellinen verkkotunnus: {domain}" @@ -4228,26 +4236,26 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "" msgid "Manufacturer" msgstr "Valmistaja" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "Valitse valmistaja" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "Arvo" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "Toimittaja" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "Valitse toimittaja" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "Toimittajan varastonimike" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "Valitse valmistajan osa" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "" msgid "Note" msgstr "Muistiinpano" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,16 +4534,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "Asiakas" @@ -4734,7 +4742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "" @@ -5203,7 +5211,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "Hinta yhteensä" @@ -5224,9 +5232,9 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" @@ -5239,26 +5247,26 @@ msgstr "" msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "" @@ -5286,7 +5294,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "" @@ -5310,365 +5318,365 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "Tilauksen viite" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "Asiakkaan viite " -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "Vastaanotettu" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Lähetetty" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "Seurantakoodi" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "Laskunumero" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6056,12 +6064,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Poista rivi" @@ -6175,8 +6183,8 @@ msgstr "" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "Toiminnot" @@ -6272,21 +6280,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "Avainsanat" @@ -6298,7 +6306,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6319,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6331,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6355,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,13 +6384,17 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "Kategoria" @@ -6489,13 +6501,13 @@ msgstr "Kategoria" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6516,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "Oletus avainsanat" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Kuvake" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "Kuvake (valinnainen)" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "Päivämäärä" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "Muut merkinnät" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "Raportti" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "Käytössä" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7302,338 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "Valmistajan osanumero" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "Luo raportti" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7679,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "Muokkaa kategoriaa" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "Muokkaa kategoriaa" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "Poista kategoria" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "Poista kategoria" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "Luo uusi osa" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "Uusi osa" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7785,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7870,15 +7883,15 @@ msgstr "" msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "" @@ -7937,7 +7950,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +7960,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +7972,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8171,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "Muokkaa" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8345,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8454,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8526,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9160,7 +9213,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,7 +9226,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "Sarjanumero" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9299,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9332,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9357,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9372,316 +9425,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "" @@ -9971,7 +10024,7 @@ msgstr "Asetettu karanteeniin" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "Varastotuote luotu" @@ -10027,7 +10080,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "" @@ -10047,7 +10100,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10161,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10169,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "Siirry seuraavaan sarjanumeroon" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "" @@ -10321,7 +10374,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10386,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "Muokkaa sijaintia" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "Poista sijainti" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "Uusi sijainti" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "Poista" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11007,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "kopioi leikepöydälle" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11811,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "" @@ -11948,7 +12001,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12021,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12076,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,12 +12124,12 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "" @@ -12129,13 +12182,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12196,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12749,39 +12802,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +12919,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12931,358 +12984,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13719,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13887,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "" @@ -13891,18 +13945,14 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "" @@ -13951,432 +14001,432 @@ msgstr "" msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "" diff --git a/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po index 8b49c143ff..2a2841a850 100644 --- a/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:37\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -56,29 +56,29 @@ msgstr "Les détails de l'erreur peuvent être trouvées dans le panneau d'admin msgid "Enter date" msgstr "Entrer la date" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "Notes" @@ -135,80 +135,80 @@ msgstr "Le domaine e-mail fourni n'est pas approuvé." msgid "Registration is disabled." msgstr "L'enregistrement est désactivé." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "Quantité fournie invalide" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Chaîne de numéro de série vide" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Numéro de série en doublon" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Plage de groupe non valide : {group}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "La plage de groupe {group} dépasse la quantité autorisée ({expected_quantity})" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Séquence de groupe invalide : {group}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Aucun numéro de série trouvé" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Le nombre de numéros de série uniques ({len(serials)}) doit correspondre à la quantité ({expected_quantity})" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Retirer les balises HTML de cette valeur" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Erreur de connexion" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Le serveur a répondu avec un code de statut invalide" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Une erreur est survenue" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Le serveur a répondu avec une valeur de longueur de contenu invalide" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Image trop volumineuse" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "La taille de l'image dépasse la taille maximale autorisée" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Le serveur distant a renvoyé une réponse vide" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "L'URL fournie n'est pas un fichier image valide" #: InvenTree/locales.py:18 msgid "Arabic" -msgstr "" +msgstr "Arabe" #: InvenTree/locales.py:19 msgid "Bulgarian" @@ -244,7 +244,7 @@ msgstr "Espagnol (Mexique)" #: InvenTree/locales.py:27 msgid "Estonian" -msgstr "" +msgstr "Estonien" #: InvenTree/locales.py:28 msgid "Farsi / Persian" @@ -366,158 +366,158 @@ msgstr "[{site_name}] Se connecter à l'application" msgid "Email" msgstr "E-mail" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "Erreur lors de l'exécution de la validation du plugin" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "Les metadata doivent être un objet python de type \"dict\"" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "Métadonnées de l'Extension" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "Champs metadata JSON, pour plugins tiers" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Modèle mal formaté" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "Clé de format inconnu spécifiée" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "Clé de format requise manquante" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Le champ de référence ne peut pas être vide" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "La référence doit correspondre au modèle requis" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Le numéro de référence est trop grand" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "Les noms dupliqués ne peuvent pas exister sous le même parent" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Choix invalide" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "Nom" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "Description" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "Description (facultative)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "Chemin d'accès" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "Notes Markdown (option)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Données du code-barres" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Données de code-barres tierces" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "Hash du code-barre" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Hachage unique des données du code-barres" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Code-barres existant trouvé" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Erreur serveur" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "Une erreur a été loguée par le serveur." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "Doit être un nombre valide" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -537,7 +537,7 @@ msgstr "Prénom" #: InvenTree/serializers.py:409 msgid "First name of the user" -msgstr "" +msgstr "Prénom de l'utilisateur" #: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" @@ -545,31 +545,31 @@ msgstr "Nom" #: InvenTree/serializers.py:412 msgid "Last name of the user" -msgstr "" +msgstr "Nom de famille de l'utilisateur" #: InvenTree/serializers.py:415 msgid "Email address of the user" -msgstr "" +msgstr "Adresse e-mail de l'utilisateur" #: InvenTree/serializers.py:439 msgid "Staff" -msgstr "" +msgstr "Staff" #: InvenTree/serializers.py:439 msgid "Does this user have staff permissions" -msgstr "" +msgstr "Cet utilisateur a-t-il les permissions du staff" #: InvenTree/serializers.py:442 msgid "Superuser" -msgstr "" +msgstr "Super-utilisateur" #: InvenTree/serializers.py:442 msgid "Is this user a superuser" -msgstr "" +msgstr "Cet utilisateur est-il un super-utilisateur" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -582,7 +582,7 @@ msgstr "Actif" #: InvenTree/serializers.py:445 msgid "Is this user account active" -msgstr "" +msgstr "Ce compte d'utilisateur est-il actif" #: InvenTree/serializers.py:463 msgid "You do not have permission to change this user role." @@ -662,7 +662,7 @@ msgstr "URL du fichier image distant" msgid "Downloading images from remote URL is not enabled" msgstr "Le téléchargement des images depuis une URL distante n'est pas activé" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "Échec de la vérification du processus d'arrière-plan" @@ -726,17 +726,17 @@ msgstr "À propos d'InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "La construction doit être annulée avant de pouvoir être supprimée" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "Consommable" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "Facultatif" msgid "Tracked" msgstr "Suivi" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "Allouée" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "Disponible" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "Ordre de Fabrication" @@ -789,72 +789,72 @@ msgstr "Ordre de Fabrication" msgid "Build Orders" msgstr "Ordres de Fabrication" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "Choix invalide pour la fabrication parente" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "Un utilisateur ou un groupe responsable doit être spécifié" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "La pièce de commande de construction ne peut pas être changée" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "Référence de l' Ordre de Fabrication" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Référence" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "Brève description de la fabrication (optionnel)" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Fabrication parente" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "BuildOrder associé a cette fabrication" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "BuildOrder associé a cette fabrication" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "Pièce" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "Sélectionnez la pièce à construire" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Bon de commande de référence" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "Commande de vente à laquelle cette construction est allouée" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Emplacement d'origine" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Sélectionner l'emplacement à partir duquel le stock doit être pris pour cette construction (laisser vide pour prendre à partir de n'importe quel emplacement de stock)" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "Emplacement cible" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Sélectionnez l'emplacement où les éléments complétés seront stockés" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "Quantité a fabriquer" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Nombre de stock items à construire" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "Articles terminés" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Nombre d'articles de stock qui ont été terminés" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "État de la construction" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "Code de statut de construction" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "Code de lot" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "Code de lot pour ce build output" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Date de création" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "Date d'achèvement cible" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Date cible pour l'achèvement de la construction. La construction sera en retard après cette date." -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "Date d'achèvement" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "achevé par" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "Émis par" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "Utilisateur ayant émis cette commande de construction" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "Responsable" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "Utilisateur ou groupe responsable de cet ordre de construction" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Lien Externe" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "Lien vers une url externe" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "Priorité de fabrication" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "Priorité de cet ordre de fabrication" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "Priorité de cet ordre de fabrication" msgid "Project Code" msgstr "Code du projet" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "Code de projet pour cet ordre de construction" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "Échec du déchargement de la tâche pour terminer les allocations de construction" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "La commande de construction {build} a été effectuée" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "Une commande de construction a été effectuée" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "Pas d'ordre de production défini" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "L'ordre de production a déjà été réalisé" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "L'ordre de production de correspond pas à l'ordre de commande" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "La quantité doit être supérieure à zéro" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "La quantité ne peut pas être supérieure à la quantité de sortie" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "La sortie de compilation {serial} n'a pas réussi tous les tests requis" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "Création de l'objet" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "Création de l'objet" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "Quantité" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "Quantité requise pour la commande de construction" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "L'élément de construction doit spécifier une sortie de construction, la pièce maîtresse étant marquée comme objet traçable" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "La quantité allouée ({q}) ne doit pas excéder la quantité disponible ({a})" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "L'article de stock est suralloué" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "La quantité allouée doit être supérieure à zéro" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "La quantité doit être de 1 pour stock sérialisé" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "L'article de stock sélectionné ne correspond pas à la ligne BOM" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "Article en stock" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "Stock d'origine de l'article" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "Quantité de stock à allouer à la construction" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "Installer dans" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "Stock de destination de l'article" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "Nom de l'article" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "Sortie d'assemblage" @@ -1260,7 +1260,7 @@ msgstr "Quantité entière requise, car la facture de matériaux contient des pi #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Numéros de série" @@ -1270,21 +1270,21 @@ msgstr "Entrer les numéros de séries pour la fabrication" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "Emplacement" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "Emplacement des ordres de production achevés" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "État" @@ -1508,7 +1508,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "ID de composant" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "Numéro de série" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1584,13 +1584,13 @@ msgstr "Traçable" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "Article du BOM" @@ -1600,22 +1600,22 @@ msgstr "Article du BOM" msgid "Allocated Stock" msgstr "Stock alloué" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "En Commande" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "En Production" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,7 +1633,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" @@ -1684,7 +1684,7 @@ msgstr "Image miniature de l'article" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "Actions de code-barres" @@ -1696,7 +1696,7 @@ msgstr "Actions de code-barres" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Afficher le QR Code" @@ -1707,7 +1707,7 @@ msgstr "Afficher le QR Code" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "Délier le code-barre" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "Lier le code-barre" @@ -1786,16 +1786,16 @@ msgstr "Le stock n'a pas été entièrement alloué à cet ordre de construction #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "Sorties de Construction terminées" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "Sorties de Construction terminées" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "Commandes" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "Émis par" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "Priorité" @@ -1875,8 +1875,8 @@ msgstr "Stock d'origine" msgid "Stock can be taken from any available location." msgstr "Le stock peut être pris à partir de n'importe quel endroit disponible." -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "Destination" @@ -1890,11 +1890,11 @@ msgstr "Pièces allouées" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "Lot" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "Créé le" @@ -2037,15 +2037,15 @@ msgstr "" msgid "Incomplete Outputs" msgstr "Sorties incomplètes" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "L'utilisateur n'a pas les permissions de supprimer cette pièce jointe" @@ -2103,362 +2103,370 @@ msgstr "{name.title()} Fichier" msgid "Select {name} file to upload" msgstr "Sélectionner le fichier {name} à uploader" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "Mise à jour" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "Date de la dernière mise à jour" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "L'URL du site est verrouillée par configuration" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "Code projet unique" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "Description du projet" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "Utilisateur ou groupe responsable de ce projet" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "Clé du paramètre (doit être unique - insensible à la casse)" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "Valeur du paramètre" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "La valeur choisie n'est pas une option valide" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "La valeur doit être une valeur booléenne" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "La valeur doit être un nombre entier" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "La chaîne de caractères constituant la clé doit être unique" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "Pas de groupe" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "Redémarrage nécessaire" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "Un paramètre a été modifié, ce qui nécessite un redémarrage du serveur" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "Migration en attente" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "Nombre de migrations de base de données en attente" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "Nom de l'instance du serveur" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "Chaîne de caractères descriptive pour l'instance serveur" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "Utiliser le nom de l'instance" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "Utiliser le nom de l’instance dans la barre de titre" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "Limiter l'affichage de `about`" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "Afficher la modale `about` uniquement aux super-utilisateurs" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "Nom de la société" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "Nom de société interne" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "URL de base" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "URL de base pour l'instance serveur" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "Devise par défaut" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "Sélectionnez la devise de base pour les calculs de prix" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "Devises supportées" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "Liste des codes de devises supportés" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "Intervalle de mise à jour des devises" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "Fréquence de mise à jour des taux de change (définir à zéro pour désactiver)" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "jours" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "Plugin de mise à jour de devise" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "Plugin de mise à jour des devises à utiliser" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "Télécharger depuis l'URL" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "Autoriser le téléchargement d'images distantes et de fichiers à partir d'URLs externes" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "Limite du volume de téléchargement" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "Taille maximale autorisée pour le téléchargement de l'image distante" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "Agent utilisateur utilisé pour télécharger depuis l'URL" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Permettre de remplacer l'agent utilisateur utilisé pour télécharger des images et des fichiers à partir d'URL externe (laisser vide pour la valeur par défaut)" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "Validation stricte d'URL" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "Spécification du schéma nécessaire lors de la validation des URL" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "Confirmation requise" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "Exiger une confirmation explicite de l’utilisateur pour certaines actions." -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "Profondeur de l'arborescence" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Profondeur de l'arborescence par défaut. Les niveaux plus profonds peuvent être chargés au fur et à mesure qu'ils sont nécessaires." -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "Intervalle de vérification des mises à jour" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "À quelle fréquence vérifier les mises à jour (définir à zéro pour désactiver)" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "Backup automatique" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "Activer le backup automatique de la base de données et des fichiers médias" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "Intervalle de sauvegarde automatique" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "Spécifiez le nombre de jours entre les sauvegardes automatique" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "Intervalle de suppression des tâches" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "Les résultats de la tâche en arrière-plan seront supprimés après le nombre de jours spécifié" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "Intervalle de suppression du journal d'erreur" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "Les logs d'erreur seront supprimés après le nombre de jours spécifié" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "Intervalle de suppression du journal de notification" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "Les notifications de l'utilisateur seront supprimées après le nombre de jours spécifié" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Support des code-barres" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "Activer le support du scanner de codes-barres dans l'interface web" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "Délai d'entrée du code-barres" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "Délai de traitement du code-barres" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "Prise en charge de la webcam code-barres" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "Autoriser la numérisation de codes-barres via la webcam dans le navigateur" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 +#: common/models.py:1419 +msgid "Barcode Generation Plugin" +msgstr "" + +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" +msgstr "" + +#: common/models.py:1425 msgid "Part Revisions" msgstr "Modifications de la pièce" -#: common/models.py:1407 +#: common/models.py:1426 msgid "Enable revision field for Part" msgstr "Activer le champ de modification de la pièce" -#: common/models.py:1412 +#: common/models.py:1431 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1413 +#: common/models.py:1432 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1418 +#: common/models.py:1437 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1419 +#: common/models.py:1438 msgid "Allow deletion of parts which are used in an assembly" msgstr "Permettre la suppression de pièces utilisées dans un assemblage" -#: common/models.py:1424 +#: common/models.py:1443 msgid "IPN Regex" msgstr "Regex IPN" -#: common/models.py:1425 +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "Expression régulière pour la correspondance avec l'IPN de la Pièce" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "Autoriser les IPN dupliqués" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "Permettre à plusieurs pièces de partager le même IPN" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "Autoriser l'édition de l'IPN" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "Permettre de modifier la valeur de l'IPN lors de l'édition d'une pièce" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "Copier les données de la pièce" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "Copier les données des paramètres par défaut lors de la duplication d'une pièce" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "Copier les données des paramètres de la pièce" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "Copier les données des paramètres par défaut lors de la duplication d'une pièce" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "Copier les données de test de la pièce" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "Copier les données de test par défaut lors de la duplication d'une pièce" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "Copier les templates de paramètres de catégorie" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "Copier les templates de paramètres de la catégorie lors de la création d'une pièce" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "Copier les templates de paramètres de la catégorie lors de la créatio msgid "Template" msgstr "Modèle" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "Les pièces sont des templates par défaut" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "Assemblage" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "Les pièces peuvent être assemblées à partir d'autres composants par défaut" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "Composant" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "Les pièces peuvent être utilisées comme sous-composants par défaut" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "Achetable" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "Les pièces sont achetables par défaut" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "Vendable" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "Les pièces sont vendables par défaut" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "Les pièces sont traçables par défaut" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "Virtuelle" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "Les pièces sont virtuelles par défaut" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "Afficher l'import dans les vues" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "Afficher l'assistant d'importation pour certaine vues de produits" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "Afficher les pièces connexes" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "Afficher les pièces connexes à une pièce" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "Stock initial" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "Permettre la création d'un stock initial lors de l'ajout d'une nouvelle pièce" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "Données initiales du fournisseur" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Permettre la création des données initiales du fournisseur lors de l'ajout d'une nouvelle pièce" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "Format d'affichage du nom de la pièce" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "Format pour afficher le nom de la pièce" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "Icône de catégorie par défaut" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "Icône par défaut de la catégorie de la pièce (vide signifie aucune icône)" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "Renforcer les unités des paramètres" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "Si des unités sont fournies, les valeurs de paramètre doivent correspondre aux unités spécifiées" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "Nombre minimal de décimales" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Nombre minimum de décimales à afficher lors de l'affichage des prix" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "Utiliser le prix fournisseur" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Inclure les réductions de prix dans le calcul du prix global" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "Remplacer l'historique des achats" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "La tarification historique des bons de commande remplace les réductions de prix des fournisseurs" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "Utiliser les prix des articles en stock" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Utiliser les prix des données de stock saisies manuellement pour calculer les prix" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "Âge de tarification des articles de stock" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Exclure les articles en stock datant de plus de ce nombre de jours des calculs de prix" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "Utiliser les prix variants" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "Inclure la tarification variante dans le calcul global des prix" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "Variantes actives uniquement" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "N'utiliser que des pièces de variante actives pour calculer le prix de la variante" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "Intervalle de regénération des prix" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "Nombre de jours avant la mise à jour automatique du prix de la pièce" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "Prix internes" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "Activer les prix internes pour les pièces" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "Substitution du prix interne" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "Si disponible, les prix internes remplacent les calculs de la fourchette de prix" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "Activer l'impression d'étiquettes" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "Activer l'impression d'étiquettes depuis l'interface Web" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "Étiquette image DPI" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "Résolution DPI lors de la génération de fichiers image pour fournir aux plugins d'impression d'étiquettes" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "Activer les rapports" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "Activer la génération de rapports" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "Mode Débogage" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "Générer des rapports en mode debug (sortie HTML)" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "Journal des erreurs" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "Taille de la page" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "Taille de page par défaut pour les rapports PDF" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "Activer les rapports de test" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "Activer la génération de rapports de test" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "Joindre des rapports de test" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "Lors de l'impression d'un rapport de test, joignez une copie du rapport de test à l'article en stock associé" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "Numéro de Série Universellement Unique" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "Les numéros de série pour les articles en stock doivent être uniques au niveau global" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "Remplir automatiquement les Numéros de Série" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "Remplir automatiquement les numéros de série dans les formulaires" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "Supprimer le stock épuisé" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "Modèle de code de lot" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "Modèle pour générer des codes par défaut pour les articles en stock" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "Expiration du stock" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "Activer la fonctionnalité d'expiration du stock" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "Vendre le stock expiré" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "Autoriser la vente de stock expiré" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "Délai de péremption du stock" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "Nombre de jours pendant lesquels les articles en stock sont considérés comme périmés avant d'expirer" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "Construction de stock expirée" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "Autoriser la construction avec un stock expiré" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "Contrôle de la propriété des stocks" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "Activer le contrôle de la propriété sur les emplacements de stock et les articles" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "Icône par défaut de l'emplacement du stock" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "Icône par défaut de l'emplacement du stock (vide signifie aucune icône)" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "Afficher les pièces en stock installées" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "Modèle de référence de commande de construction" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "Modèle requis pour générer le champ de référence de l'ordre de construction" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "Activer les retours de commandes" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "Activer la fonctionnalité de retour de commande dans l'interface utilisateur" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "Modèle de référence de retour de commande" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "Modifier les retours de commandes terminées" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "Autoriser la modification des retours après leur enregistrement" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "Modèle de référence de bon de commande" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "Modèle requis pour générer le champ de référence du bon de commande" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "Expédition par défaut du bon de commande" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "Activer la création d'expédition par défaut avec les bons de commandes" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "Modifier les commandes de vente terminées" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Autoriser la modification des commandes de vente après avoir été expédiées ou complétées" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "Modèle de référence de commande d'achat" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "Modèle requis pour générer le champ de référence de bon de commande" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "Modifier les bons de commande terminés" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Autoriser la modification des bons de commande après avoir été expédiés ou complétés" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "Activer les mots de passe oubliés" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "Activer la fonction \"Mot de passe oublié\" sur les pages de connexion" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "Activer les inscriptions" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "Activer l'auto-inscription pour les utilisateurs sur les pages de connexion" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "Activer le SSO" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "Activer le SSO sur les pages de connexion" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "Activer l'inscription SSO" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Activer l'auto-inscription via SSO pour les utilisateurs sur les pages de connexion" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "Email requis" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "Exiger que l'utilisateur fournisse un mail lors de l'inscription" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "Saisie automatique des utilisateurs SSO" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "Remplir automatiquement les détails de l'utilisateur à partir des données de compte SSO" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "Courriel en double" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "Lors de l'inscription, demandez deux fois aux utilisateurs leur mail" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "Mot de passe deux fois" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "Lors de l'inscription, demandez deux fois aux utilisateurs leur mot de passe" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "Domaines autorisés" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "Grouper sur inscription" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "Forcer l'authentification multifacteurs" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "Les utilisateurs doivent utiliser l'authentification multifacteurs." -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "Vérifier les plugins au démarrage" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Vérifier que tous les plugins sont installés au démarrage - activer dans les environnements conteneurs" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "Activer l'intégration d'URL" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "Autoriser les plugins à ajouter des chemins URL" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "Activer l'intégration de navigation" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "Activer les plugins à s'intégrer dans la navigation" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "Activer l'intégration de plugins" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "Activer l'intégration de plugin pour ajouter des apps" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "Activer l'intégration du planning" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "Autoriser les plugins à éxécuter des tâches planifiées" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "Activer l'intégration des évènements" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "Autoriser les plugins à répondre aux évènements internes" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "Activer les codes projet" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "Fonctionnalité d'inventaire" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Activer la fonctionnalité d'inventaire pour enregistrer les niveaux de stock et le calcul de la valeur du stock" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "Période de l'inventaire automatique" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Nombre de jours entre l'enregistrement automatique des stocks (définir à zéro pour désactiver)" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Les rapports d'inventaire seront supprimés après le nombre de jours spécifié" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "Clé du paramètre (doit être unique - insensible à la casse)" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "Afficher les composants suivis" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "Afficher les composants suivis sur l'écran d'accueil" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "Afficher les catégories suivies" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "Afficher les catégories de pièces suivies sur la page d'accueil" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "Afficher les dernières pièces" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "Afficher les derniers composants sur la page d'accueil" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "Afficher les listes de matériaux en attente de validation sur la page d'accueil" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "Afficher les dernières modifications du stock" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "Afficher les articles de stock récemment modifiés sur la page d'accueil" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "Afficher le stock faible" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "Afficher les articles en stock bas sur la page d'accueil" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "Afficher le stock épuisé" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "Afficher les stocks épuisés sur la page d'accueil" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "Afficher le stock nécessaire" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "Afficher les pièces en stock nécessaires pour les assemblages sur la page d'accueil" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "Afficher le stock expiré" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "Afficher les pièces en stock expirées sur la page d'accueil" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "Afficher le stock périmé" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "Afficher les articles de stock périmés sur la page d'accueil" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "Afficher les constructions en attente" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "Afficher les constructions en attente sur la page d'accueil" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "Afficher les constructions en retard" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "Afficher les constructions en retard sur la page d'accueil" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "Afficher les commandes en suspens" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "Afficher les commandes en suspens sur la page d'accueil" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "Afficher les commandes en retard" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "Afficher les commandes en retard sur la page d'accueil" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "Afficher les envois en suspens" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "Afficher les envois en suspens sur la page d'accueil" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "Afficher les envois en retard" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "Afficher les envois en retard sur la page d'accueil" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "Afficher les nouvelles" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "Afficher les nouvelles sur la page d'accueil" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "Affichage du libellé en ligne" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Afficher les étiquettes PDF dans le navigateur, au lieu de les télécharger en tant que fichier" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "Imprimante d'étiquettes par défaut" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "Configurer quelle imprimante d'étiquette doit être sélectionnée par défaut" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "Affichage du rapport en ligne" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Afficher les rapports PDF dans le navigateur, au lieu de les télécharger en tant que fichier" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "Rechercher de pièces" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "Afficher les pièces dans la fenêtre d'aperçu de la recherche" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "Recherche du fournisseur de pièces" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "Afficher les pièces du fournisseur dans la fenêtre de prévisualisation de la recherche" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "Rechercher les pièces du fabricant" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "Afficher les pièces du fabricant dans la fenêtre de prévisualisation de recherche" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "Masquer les pièces inactives" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "Exclure les pièces inactives de la fenêtre de prévisualisation de recherche" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "Rechercher des catégories" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "Afficher les catégories de pièces dans la fenêtre de prévisualisation de recherche" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "Rechercher dans le stock" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "Afficher les pièces en stock dans la fenêtre d'aperçu de la recherche" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "Cacher les pièces indisponibles" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "Exclure les articles en stock qui ne sont pas disponibles de la fenêtre de prévisualisation de recherche" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "Chercher des Emplacements" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "Afficher les emplacements dans la fenêtre d'aperçu de la recherche" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "Rechercher les entreprises" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "Afficher les entreprises dans la fenêtre de prévisualisation de recherche" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "Rechercher les commandes de construction" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "Afficher les commandes de construction dans la fenêtre de prévisualisation de recherche" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "Rechercher des bons de commande" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "Afficher les bons de commande dans la fenêtre de prévisualisation de recherche" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "Exclure les bons de commande inactifs" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "Exclure les commandes d’achat inactives de la fenêtre de prévisualisation de recherche" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "Rechercher les bons de commande" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "Afficher les bons de commande dans la fenêtre de prévisualisation de la recherche" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "Exclure les bons de commande inactives" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "Exclure les bons de commande inactifs de la fenêtre de prévisualisation de recherche" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "Rechercher les commandes retournées" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "Résultats de l'aperçu de la recherche" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "Nombre de résultats à afficher dans chaque section de la fenêtre de prévisualisation de recherche" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "Recherche Regex" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "Afficher la quantité dans les formulaires" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "Afficher la quantité disponible dans certains formulaires" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "La touche Echap ferme les formulaires" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "Utilisez la touche Echap pour fermer les formulaires modaux" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "Barre de navigation fixe" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "La position de la barre de navigation est fixée en haut de l'écran" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "Format de date" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "Format préféré pour l'affichage des dates" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Planification des pièces" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "Afficher les informations de planification des pièces" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Inventaire des pièces" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "Longueur de la chaîne dans les Tableau" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "Longueur maximale des chaînes affichées dans les tableaux" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "Utilisateur" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Prix" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "Ce webhook (lien de rappel HTTP) est-il actif" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "Jeton" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "Jeton d'accès" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "Confidentiel" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "ID message" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "Identifiant unique pour ce message" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "Hôte" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "Hôte à partir duquel ce message a été reçu" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "Entête" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "En-tête de ce message" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "Corps" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "Corps de ce message" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "Endpoint à partir duquel ce message a été reçu" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "Le travail sur ce message est-il terminé ?" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "Id" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Titre" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "Lien" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "Publié" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Auteur" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "Résumé" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "Lu" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "Cette nouvelle a-t-elle été lue ?" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "Cette nouvelle a-t-elle été lue ?" msgid "Image" msgstr "Image" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "Fichier image" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Symbole" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "Symbole d'unité facultatif" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Définition" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "Définition de l'unité" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Pièce jointe" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "Fichier manquant" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Lien externe manquant" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Sélectionnez un fichier à joindre" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Commentaire" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3957,27 +3965,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "Un domaine vide n'est pas autorisé." -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Nom de domaine invalide : {domain}" @@ -4228,26 +4236,26 @@ msgstr "Notes internes pour la livraison" msgid "Link to address information (external)" msgstr "Lien vers les informations de l'adresse (externe)" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Pièces du fabricant" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "" msgid "Manufacturer" msgstr "Fabricant" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "Sélectionner un fabricant" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "Nom du paramètre" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "Valeur" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "Valeur du paramètre" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "Unités" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "Unités du paramètre" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "Pièce fournisseur" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "La pièce du fabricant liée doit faire référence à la même pièce de base" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "Fournisseur" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "Sélectionner un fournisseur" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "Unité de gestion des stocks des fournisseurs" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "Sélectionner un fabricant" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "Lien de la pièce du fournisseur externe" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "Description de la pièce du fournisseur" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "Description de la pièce du fournisseur" msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "coût de base" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "Frais minimums (par exemple frais de stock)" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "Conditionnement" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "Conditionnement de l'article" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "Nombre de paquet" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "plusieurs" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "Commande multiple" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "Quantité disponible auprès du fournisseur" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "Disponibilité mise à jour" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "Date de dernière mise à jour des données de disponibilité" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "Devise par défaut utilisée pour ce fournisseur" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "En Stock" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,16 +4534,16 @@ msgstr "Télécharger l'image depuis l'URL" msgid "Delete image" msgstr "Supprimer image" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "Client" @@ -4734,7 +4742,7 @@ msgstr "Aucune information sur le fabricant disponible" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "Aucune information de fournisseur disponible" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "Stock de pièces du fournisseur" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "Créer un nouvel article de stock" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "Nouvel article de stock" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "Éléments en stock" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "Données" @@ -5203,7 +5211,7 @@ msgstr "Type de configuration" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "Prix Total" @@ -5224,9 +5232,9 @@ msgstr "Possède un Tarif" msgid "No matching purchase order found" msgstr "Aucun bon de commande correspondant n'a été trouvé" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "Commande" @@ -5239,26 +5247,26 @@ msgstr "Commande Complétée" msgid "Order Pending" msgstr "Commande En Attente" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "Commande d’achat" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "Retour de commande" @@ -5286,7 +5294,7 @@ msgstr "Description de la commande (facultatif)" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "Lien vers une page externe" @@ -5310,365 +5318,365 @@ msgstr "" msgid "Company address for this order" msgstr "Adresse de l'entreprise pour cette commande" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "Référence de la commande" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "Statut de la commande d'achat" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "Société de laquelle les articles sont commandés" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "Référence du fournisseur" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "Code de référence de la commande fournisseur" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "reçu par" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "Date d'émission" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "Date d'émission de la commande" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "Date à laquelle la commande a été complété" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "La quantité doit être un nombre positif" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "Société à laquelle les articles sont vendus" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "Référence client " -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "Nom de l’expédition" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "expédié par" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "La commande ne peut pas être terminée car il y a des envois incomplets" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "Nombre d'élement" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "Contexte" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "Prix unitaire" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "supprimé" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "Pièce fournisseur" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "Reçu" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "Nombre d'éléments reçus" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "Prix d'achat" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "Prix d'achat unitaire" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "Où l'Acheteur veut-il stocker cet article ?" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "La pièce virtuelle ne peut pas être affectée à une commande" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "Seules les pièces vendues peuvent être attribuées à une commande" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Prix de vente" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "Prix de vente unitaire" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Expédié" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "Quantité expédiée" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "Date d'expédition" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "Date de Livraison" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "Vérifié par" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "Utilisateur qui a vérifié cet envoi" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "Envoi" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "Numéro d'expédition" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "N° de suivi" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "Information de suivi des colis" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "N° de facture" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "Numéro de référence de la facture associée" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "Le colis a déjà été envoyé" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "L'expédition n'a pas d'articles en stock alloués" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "L'article de stock n'a pas été assigné" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "Impossible d'allouer le stock à une ligne sans pièce" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "La quantité d'allocation ne peut pas excéder la quantité en stock" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "Ligne" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "Article" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "Statut du retour de commande" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6056,12 +6064,12 @@ msgstr "Dupliquer la sélection" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Supprimer la ligne" @@ -6175,8 +6183,8 @@ msgstr "Référence client" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "Expéditions en attente" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "Actions" @@ -6272,21 +6280,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "Révision" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "Mots-clés" @@ -6298,7 +6306,7 @@ msgstr "Image pièce" msgid "Category ID" msgstr "ID catégorie" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "Nom catégorie" @@ -6311,11 +6319,11 @@ msgstr "ID Emplacement par défaut" msgid "Default Supplier ID" msgstr "ID Fournisseur par défaut" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Variante de" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Stock Minimum" @@ -6323,19 +6331,19 @@ msgstr "Stock Minimum" msgid "Used In" msgstr "Utilisé pour" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "Construction" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "Coût minimal" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "Coût maximal" @@ -6347,19 +6355,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "Chemin catégorie" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "Pièces" @@ -6376,13 +6384,17 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "Prix Minimum" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "Catégorie" @@ -6489,13 +6501,13 @@ msgstr "Catégorie" msgid "Uses" msgstr "Utilise" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "Emplacement par défaut" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Stock total" @@ -6504,784 +6516,785 @@ msgstr "Stock total" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Catégorie de composant" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Catégories de composants" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "Structurel" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "Mots-clés par défaut" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "IPN dupliqué non autorisé dans les paramètres de la pièce" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "Nom de l'article" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "Catégorie de la pièce" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "Est-ce que cette pièce est active ?" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "Création Utilisateur" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "Propriétaire responsable de cette pièce" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "Ventes multiples" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "Coût minimum de vente" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "Notes additionnelles" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "Nom de test" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "Activé" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "Requis" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "Valeur requise" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Valeur par Défaut" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Surplus" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "Validée" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7302,338 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "Devise d'achat de l'item" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "Copier l'image" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "Copier les paramètres" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7679,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "Vous êtes abonné aux notifications pour cette catégorie" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "S'abonner aux notifications de cette catégorie" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "Modifier la catégorie" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "Modifier la catégorie" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "Supprimer la catégorie" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "Supprimer la catégorie" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "Pièces (incluant les sous-catégories)" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "Nouvelle catégorie" @@ -7772,7 +7785,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "Prise d'inventaire" @@ -7870,15 +7883,15 @@ msgstr "" msgid "Part Manufacturers" msgstr "Fabricants de composants" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "" @@ -7937,7 +7950,7 @@ msgstr "S'abonner aux notifications de cette pièce" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "Impression étiquette" @@ -7947,7 +7960,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +7972,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8171,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "Modifier" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8345,108 @@ msgstr "Aucune action spécifiée" msgid "No matching action found" msgstr "Aucune action correspondante trouvée" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "Aucune correspondance trouvée pour les données du code-barres" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "Correspondance trouvée pour les données du code-barres" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8454,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8526,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "Contributeurs d'InvenTree" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "Notifications InvenTree" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "Aucun objet valide n'a été fourni au modèle" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9160,7 +9213,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,7 +9226,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "Résultat" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "Numéro de série" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9299,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9332,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9357,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9372,316 +9425,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Propriétaire" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "Sélectionner un propriétaire" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "La quantité doit être de 1 pour un article avec un numéro de série" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Le numéro de série ne peut pas être défini si la quantité est supérieure à 1" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "Numéro de série pour cet article" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "Les numéros de série doivent être une liste de nombres entiers" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "La quantité ne correspond pas au nombre de numéros de série" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "Les numéros de série existent déjà" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "" @@ -9971,7 +10024,7 @@ msgstr "En quarantaine" msgid "Legacy stock tracking entry" msgstr "Ancienne entrée de suivi de stock" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "Article en stock créé" @@ -10027,7 +10080,7 @@ msgstr "Séparer de l'élément parent" msgid "Split child item" msgstr "Fractionner l'élément enfant" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "Articles de stock fusionnés" @@ -10047,7 +10100,7 @@ msgstr "Sortie de l'ordre de construction terminée" msgid "Build order output rejected" msgstr "La sortie de l'ordre de construction a été refusée" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "Consommé par ordre de construction" @@ -10108,7 +10161,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10169,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "Assemblage" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "Accéder au numéro de série suivant" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "" @@ -10321,7 +10374,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10386,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "Sélectionner la quantité à sérialiser et les numéros de série uniques." -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "Supprimer" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11007,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "Quantité requise" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11811,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "" @@ -11948,7 +12001,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12021,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12076,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,12 +12124,12 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "Dernier numéro de série" @@ -12129,13 +12182,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12196,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12749,39 +12802,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +12919,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12931,358 +12984,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13719,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13887,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "" @@ -13891,18 +13945,14 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "" @@ -13951,432 +14001,432 @@ msgstr "" msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "Ajouter" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "" diff --git a/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po index b6e8ccd92d..8bfa465863 100644 --- a/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:37\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Hebrew\n" "Language: he_IL\n" @@ -56,29 +56,29 @@ msgstr "" msgid "Enter date" msgstr "הזן תאריך סיום" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "" @@ -135,74 +135,74 @@ msgstr "" msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "מספרים סידוריים לא נמצאו" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "" @@ -366,158 +366,158 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "בחירה שגויה" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "שם" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "תיאור" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "תיאור (לא חובה)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "המספר חייב להיות תקין" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,17 +726,17 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "" @@ -789,72 +789,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "מקט" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "מקור הבנייה" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "רכיב" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "בחר רכיב לבנייה" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "כמות בניה" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "קישור חיצוני" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "כמות" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" @@ -1260,7 +1260,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "מספרים סידוריים" @@ -1270,21 +1270,21 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "" @@ -1508,7 +1508,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1584,13 +1584,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "" @@ -1600,22 +1600,22 @@ msgstr "" msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,7 +1633,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" @@ -1684,7 +1684,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "" @@ -1696,7 +1696,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1707,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1786,16 +1786,16 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" @@ -1875,8 +1875,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,11 +1890,11 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -2037,15 +2037,15 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,362 +2103,370 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "" msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "משתמש" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "קישור" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "קובץ מצורף" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "קובץ חסר" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "חסר קישור חיצוני" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "בחר קובץ לצירוף" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "הערה" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3957,27 +3965,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4228,26 +4236,26 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,16 +4534,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "" @@ -4734,7 +4742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "" @@ -5203,7 +5211,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" @@ -5224,9 +5232,9 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" @@ -5239,26 +5247,26 @@ msgstr "" msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "" @@ -5286,7 +5294,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "" @@ -5310,365 +5318,365 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "נשלח" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6056,12 +6064,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6175,8 +6183,8 @@ msgstr "" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "" @@ -6272,21 +6280,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6306,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6319,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6331,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6355,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,13 +6384,17 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" @@ -6489,13 +6501,13 @@ msgstr "" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6516,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7302,338 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7679,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7785,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7870,15 +7883,15 @@ msgstr "" msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "" @@ -7937,7 +7950,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +7960,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +7972,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8171,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8345,108 @@ msgstr "לא פורטה הפעולה" msgid "No matching action found" msgstr "פעולה מבוקשת לא נמצאה" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8454,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8526,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9160,7 +9213,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,7 +9226,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9299,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9332,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9357,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9372,316 +9425,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "" @@ -9971,7 +10024,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "" @@ -10027,7 +10080,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "" @@ -10047,7 +10100,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10161,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10169,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "" @@ -10321,7 +10374,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10386,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11007,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11811,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "" @@ -11948,7 +12001,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12021,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12076,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,12 +12124,12 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "" @@ -12129,13 +12182,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12196,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12749,39 +12802,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +12919,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12931,358 +12984,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13719,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13887,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "" @@ -13891,18 +13945,14 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "" @@ -13951,432 +14001,432 @@ msgstr "" msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "" diff --git a/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po index 7ddfa059c2..52ff287657 100644 --- a/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:39\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:37\n" "Last-Translator: \n" "Language-Team: Hindi\n" "Language: hi_IN\n" @@ -56,29 +56,29 @@ msgstr "" msgid "Enter date" msgstr "तारीख दर्ज करें" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "" @@ -135,74 +135,74 @@ msgstr "" msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "कनेक्शन त्रुटि" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "" @@ -366,158 +366,158 @@ msgstr "" msgid "Email" msgstr "ई-मेल" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,17 +726,17 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "" @@ -789,72 +789,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" @@ -1260,7 +1260,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "" @@ -1270,21 +1270,21 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "" @@ -1508,7 +1508,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1584,13 +1584,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "" @@ -1600,22 +1600,22 @@ msgstr "" msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,7 +1633,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" @@ -1684,7 +1684,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "" @@ -1696,7 +1696,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1707,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1786,16 +1786,16 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" @@ -1875,8 +1875,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,11 +1890,11 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -2037,15 +2037,15 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,362 +2103,370 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "" msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3957,27 +3965,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4228,26 +4236,26 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,16 +4534,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "" @@ -4734,7 +4742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "" @@ -5203,7 +5211,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" @@ -5224,9 +5232,9 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" @@ -5239,26 +5247,26 @@ msgstr "" msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "" @@ -5286,7 +5294,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "" @@ -5310,365 +5318,365 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6056,12 +6064,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6175,8 +6183,8 @@ msgstr "" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "" @@ -6272,21 +6280,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6306,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6319,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6331,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6355,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,13 +6384,17 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" @@ -6489,13 +6501,13 @@ msgstr "" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6516,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7302,338 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7679,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7785,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7870,15 +7883,15 @@ msgstr "" msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "" @@ -7937,7 +7950,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +7960,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +7972,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8171,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8345,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8454,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8526,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9160,7 +9213,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,7 +9226,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9299,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9332,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9357,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9372,316 +9425,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "" @@ -9971,7 +10024,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "" @@ -10027,7 +10080,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "" @@ -10047,7 +10100,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10161,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10169,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "" @@ -10321,7 +10374,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10386,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11007,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11811,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "" @@ -11948,7 +12001,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12021,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12076,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,12 +12124,12 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "" @@ -12129,13 +12182,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12196,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12749,39 +12802,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +12919,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12931,358 +12984,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13719,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13887,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "" @@ -13891,18 +13945,14 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "" @@ -13951,432 +14001,432 @@ msgstr "" msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "" diff --git a/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po index 5b82094db1..1a1717aa2d 100644 --- a/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Hungarian\n" "Language: hu_HU\n" @@ -56,29 +56,29 @@ msgstr "A hiba részleteit megtalálod az admin panelen" msgid "Enter date" msgstr "Dátum megadása" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "Megjegyzések" @@ -135,80 +135,80 @@ msgstr "A megadott email domain nincs jóváhagyva." msgid "Registration is disabled." msgstr "Regisztráció le van tiltva." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "Nem megfelelő mennyiség" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Üres sorozatszám" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Duplikált sorozatszám" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Hibás tartomány: {group}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Csoport tartomány {group} több mint az engedélyezett ({expected_quantity})" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Hibás csoport-sor: {group}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Nem található sorozatszám" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Az egyedi sorozatszámok számának ({len(serials)}) meg kell egyeznie a mennyiséggel ({expected_quantity})" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "HTML tag-ek eltávolítása ebből az értékből" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Csatlakozási hiba" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "A kiszolgáló érvénytelen státuszkóddal válaszolt" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Kivétel történt" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "A kiszolgáló érvénytelen Content-Length értéket adott" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "A kép mérete túl nagy" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "A kép letöltés meghaladja a maximális méretet" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "A kiszolgáló üres választ adott" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "A megadott URL nem egy érvényes kép fájl" #: InvenTree/locales.py:18 msgid "Arabic" -msgstr "" +msgstr "Arab" #: InvenTree/locales.py:19 msgid "Bulgarian" @@ -244,7 +244,7 @@ msgstr "Spanyol (Mexikói)" #: InvenTree/locales.py:27 msgid "Estonian" -msgstr "" +msgstr "Észt" #: InvenTree/locales.py:28 msgid "Farsi / Persian" @@ -366,158 +366,158 @@ msgstr "[{site_name}] Bejelentkezés" msgid "Email" msgstr "Email" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "Hiba a plugin validálása közben" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "A meta adatnak egy python dict objektumnak kell lennie" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "Plugin meta adatok" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "JSON meta adat mező, külső pluginok számára" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Helytelenül formázott minta" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "Ismeretlen formátum kulcs lett megadva" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "Hiányzó formátum kulcs" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Az azonosító mező nem lehet üres" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "Az azonosítónak egyeznie kell a mintával" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Azonosító szám túl nagy" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "Duplikált nevek nem lehetnek ugyanazon szülő alatt" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Érvénytelen választás" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "Név" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "Leírás" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "Leírás (opcionális)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "Elérési út" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "Markdown megjegyzések (opcionális)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Vonalkód adat" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Harmadik féltől származó vonalkód adat" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "Vonalkód hash" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Egyedi vonalkód hash" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Létező vonalkód" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Kiszolgálóhiba" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "A kiszolgáló egy hibaüzenetet rögzített." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "Érvényes számnak kell lennie" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "Rendszergazda" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "A távoli kép URL-je" msgid "Downloading images from remote URL is not enabled" msgstr "Képek letöltése távoli URL-ről nem engedélyezett" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "Háttér folyamat ellenőrzés sikertelen" @@ -726,17 +726,17 @@ msgstr "Verzió információk" msgid "Build must be cancelled before it can be deleted" msgstr "A gyártást be kell fejezni a törlés előtt" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "Fogyóeszköz" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "Opcionális" msgid "Tracked" msgstr "Követett" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "Lefoglalva" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "Elérhető" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "Gyártási utasítás" @@ -789,72 +789,72 @@ msgstr "Gyártási utasítás" msgid "Build Orders" msgstr "Gyártási utasítások" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "Hibás választás a szülő gyártásra" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "Meg kell adni felelős felhasználót vagy csoportot" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "Gyártási rendelés alkatrész nem változtatható" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "Gyártási utasítás azonosító" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Azonosító" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "Gyártás rövid leírása (opcionális)" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Szülő gyártás" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "Alkatrész" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "Válassz alkatrészt a gyártáshoz" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Vevői rendelés azonosító" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "Vevői rendelés amihez ez a gyártás hozzá van rendelve" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Forrás hely" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Válassz helyet ahonnan készletet vegyünk el ehhez a gyártáshoz (hagyd üresen ha bárhonnan)" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "Cél hely" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Válassz helyet ahol a kész tételek tárolva lesznek" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "Gyártási mennyiség" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Gyártandó készlet tételek száma" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "Kész tételek" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Elkészült készlet tételek száma" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "Gyártási állapot" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "Gyártás státusz kód" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "Batch kód" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "Batch kód a gyártás kimenetéhez" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Létrehozás dátuma" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "Befejezés cél dátuma" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Cél dátum a gyártás befejezéséhez. Ez után késettnek számít majd." -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "Befejezés dátuma" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "elkészítette" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "Indította" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "Felhasználó aki ezt a gyártási utasítást kiállította" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "Felelős" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "Felhasználó vagy csoport aki felelős ezért a gyártásért" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Külső link" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "Link külső URL-re" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "Priorítás" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "Gyártási utasítás priorítása" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "Gyártási utasítás priorítása" msgid "Project Code" msgstr "Projektszám" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "Projekt kód a gyártáshoz" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "A gyártási foglalások teljesítése háttérfeladat elvégzése nem sikerült" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "A {build} gyártási utasítás elkészült" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "Gyártási utasítás elkészült" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "Nincs gyártási kimenet megadva" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "Gyártási kimenet már kész" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "Gyártási kimenet nem egyezik a gyártási utasítással" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "Mennyiségnek nullánál többnek kell lennie" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "A mennyiség nem lehet több mint a gyártási mennyiség" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "A {serial} gyártási kimenet nem felelt meg az összes kötelező teszten" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "Gyártás objektum" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "Gyártás objektum" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "Mennyiség" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "Gyártáshoz szükséges mennyiség" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Gyártási tételnek meg kell adnia a gyártási kimenetet, mivel a fő darab egyedi követésre kötelezett" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "A lefoglalt mennyiség ({q}) nem lépheti túl a szabad készletet ({a})" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "Készlet túlfoglalva" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "Lefoglalt mennyiségnek nullánál többnek kell lennie" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "Egyedi követésre kötelezett tételeknél a menyiség 1 kell legyen" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "A készlet tétel nem egyezik az alkatrészjegyzékkel" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "Készlet tétel" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "Forrás készlet tétel" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "Készlet mennyiség amit foglaljunk a gyártáshoz" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "Beépítés ebbe" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "Cél készlet tétel" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "Alkatrész neve" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "Gyártás kimenet" @@ -1260,7 +1260,7 @@ msgstr "Egész számú mennyiség szükséges, mivel az alkatrészjegyzék egyed #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Sorozatszámok" @@ -1270,21 +1270,21 @@ msgstr "Add meg a sorozatszámokat a gyártás kimenetéhez" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "Hely" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "A kész gyártási kimenetek helye" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "Állapot" @@ -1509,7 +1509,7 @@ msgstr "Nem sikerült az automatikus lefoglalás feladatot elindítani" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "Gyártói cikkszám" @@ -1527,34 +1527,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "Alkatrész ID" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "Alkatrész IPN" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "Sorozatszám" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "Lefoglalt mennyiség" @@ -1574,8 +1574,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1585,13 +1585,13 @@ msgstr "Követésre kötelezett" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "Változatok" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "Alkatrészjegyzék tétel" @@ -1601,22 +1601,22 @@ msgstr "Alkatrészjegyzék tétel" msgid "Allocated Stock" msgstr "Lefoglalt készlet" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "Rendelve" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "Gyártásban" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1634,7 +1634,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "Külső raktárkészlet" @@ -1685,7 +1685,7 @@ msgstr "Alkatrész bélyegkép" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "Vonalkód műveletek" @@ -1697,7 +1697,7 @@ msgstr "Vonalkód műveletek" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "QR kód megjelenítése" @@ -1708,7 +1708,7 @@ msgstr "QR kód megjelenítése" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1721,7 +1721,7 @@ msgstr "Vonalkód leválasztása" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "Vonalkód hozzárendelése" @@ -1787,16 +1787,16 @@ msgstr "Még nincs lefoglalva a szükséges készlet" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1825,8 +1825,8 @@ msgid "Completed Outputs" msgstr "Befejezett kimenetek" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1836,7 +1836,7 @@ msgstr "Befejezett kimenetek" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "Vevői rendelés" @@ -1848,7 +1848,7 @@ msgid "Issued By" msgstr "Kiállította" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "Prioritás" @@ -1876,8 +1876,8 @@ msgstr "Készlet forrás" msgid "Stock can be taken from any available location." msgstr "Készlet bármely rendelkezésre álló helyről felhasználható." -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "Cél" @@ -1891,11 +1891,11 @@ msgstr "Lefoglalt alkatrészek" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1905,7 +1905,7 @@ msgstr "Köteg" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "Létrehozva" @@ -2038,15 +2038,15 @@ msgstr "Sortételek" msgid "Incomplete Outputs" msgstr "Befejezetlen kimenetek" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2104,362 +2104,370 @@ msgstr "{name.title()} Fájl" msgid "Select {name} file to upload" msgstr "{name} fájl kiválasztása feltöltéshez" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "Frissítve" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "Legutóbbi frissítés időpontja" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "A site URL blokkolva van a konfigurációban" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "Egyedi projektszám" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "Projekt leírása" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "A projektért felelős felhasználó vagy csoport" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "Beállítások kulcs (egyedinek kell lennie, nem kis- nagybetű érzékeny)" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "Beállítás értéke" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "A kiválasztott érték nem egy érvényes lehetőség" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "Az érték bináris kell legyen" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "Az érték egész szám kell legyen" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "Kulcs string egyedi kell legyen" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "Nincs csoport" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "Újraindítás szükséges" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "Egy olyan beállítás megváltozott ami a kiszolgáló újraindítását igényli" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "Függőben levő migrációk" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "Függőben levő adatbázis migrációk" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "Kiszolgáló példány neve" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "String leíró a kiszolgáló példányhoz" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "Példány név használata" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "Példány név használata a címsorban" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "Verzió infók megjelenítésének tiltása" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "Verzió infók megjelenítése csak admin felhasználóknak" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "Cég neve" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "Belső cégnév" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "Kiindulási URL" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "Kiindulási URL a kiszolgáló példányhoz" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "Alapértelmezett pénznem" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "Válassz alap pénznemet az ár számításokhoz" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "Árfolyam frissítési gyakoriság" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "Milyen gyakran frissítse az árfolyamokat (nulla a kikapcsoláshoz)" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "nap" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "Árfolyam frissítő plugin" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "Kiválasztott árfolyam frissítő plugin" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "Letöltés URL-ről" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "Képek és fájlok letöltésének engedélyezése külső URL-ről" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "Letöltési méret korlát" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "Maximum megengedett letöltési mérete a távoli képeknek" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "Felhasznált User-agent az URL-ről letöltéshez" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "A külső URL-ről letöltéshez használt user-agent felülbírálásának engedélyezése (hagyd üresen az alapértelmezéshez)" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "Erős URL validáció" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "Sablon specifikáció igénylése az URL validálásnál" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "Megerősítés igénylése" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "Kérjen felhasználói megerősítést bizonyos műveletekhez" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "Fa mélység" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Alapértelmezett mélység a fa nézetekben. A mélyebb szintek betöltődnek ha szükségesek." -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "Frissítés keresés gyakorisága" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "Milyen gyakran ellenőrizze van-e új frissítés (0=soha)" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "Automatikus biztonsági mentés" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "Adatbázis és média fájlok automatikus biztonsági mentése" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "Automata biztonsági mentés gyakorisága" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "Hány naponta készüljön automatikus biztonsági mentés" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "Feladat törlési gyakoriság" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "Háttérfolyamat eredmények törlése megadott nap eltelte után" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "Hibanapló törlési gyakoriság" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "Hibanapló bejegyzések törlése megadott nap eltelte után" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "Értesítés törlési gyakoriság" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "Felhasználói értesítések törlése megadott nap eltelte után" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Vonalkód támogatás" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "Vonalkód olvasó támogatás engedélyezése a web felületen" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "Vonalkód beadási késleltetés" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "Vonalkód beadáskor a feldolgozás késleltetési ideje" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "Webkamerás vonalkód olvasás" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "Webkamerás kódolvasás engedélyezése a böngészőből" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 +#: common/models.py:1419 +msgid "Barcode Generation Plugin" +msgstr "" + +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" +msgstr "" + +#: common/models.py:1425 msgid "Part Revisions" msgstr "Alkatrész változatok" -#: common/models.py:1407 +#: common/models.py:1426 msgid "Enable revision field for Part" msgstr "Alkatrész változat vagy verziószám tulajdonság használata" -#: common/models.py:1412 +#: common/models.py:1431 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1413 +#: common/models.py:1432 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1418 +#: common/models.py:1437 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1419 +#: common/models.py:1438 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1424 +#: common/models.py:1443 msgid "IPN Regex" msgstr "IPN reguláris kifejezés" -#: common/models.py:1425 +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "Reguláris kifejezés ami illeszkedik az alkatrész IPN-re" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "Többször is előforduló IPN engedélyezése" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "Azonos IPN használható legyen több alkatrészre is" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "IPN szerkesztésének engedélyezése" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "IPN megváltoztatásánsak engedélyezése az alkatrész szerkesztése közben" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "Alkatrészjegyzék adatok másolása" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "Alkatrész másoláskor az alkatrészjegyzék adatokat is másoljuk alapból" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "Alkatrész paraméterek másolása" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "Alkatrész másoláskor a paramétereket is másoljuk alapból" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "Alkatrész teszt adatok másolása" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "Alkatrész másoláskor a tesztek adatait is másoljuk alapból" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "Kategória paraméter sablonok másolása" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "Kategória paraméter sablonok másolása alkatrész létrehozásakor" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2467,1291 +2475,1291 @@ msgstr "Kategória paraméter sablonok másolása alkatrész létrehozásakor" msgid "Template" msgstr "Sablon" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "Alkatrészek alapból sablon alkatrészek legyenek" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "Gyártmány" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "Alkatrészeket alapból lehessen gyártani másik alkatrészekből" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "Összetevő" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "Alkatrészek alapból használhatók összetevőként más alkatrészekhez" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "Beszerezhető" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "Alkatrészek alapból beszerezhetők legyenek" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "Értékesíthető" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "Alkatrészek alapból eladhatók legyenek" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "Alkatrészek alapból követésre kötelezettek legyenek" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "Virtuális" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "Alkatrészek alapból virtuálisak legyenek" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "Importálás megjelenítése a nézetekben" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "Import segéd megjelenítése néhány alkatrész nézetben" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "Kapcsolódó alkatrészek megjelenítése" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "Alkatrész kapcsolódó alkatrészeinek megjelenítése" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "Kezdeti készlet adatok" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "Kezdeti készlet létrehozása új alkatrész felvételekor" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "Kezdeti beszállítói adatok" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Kezdeti beszállítói adatok létrehozása új alkatrész felvételekor" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "Alkatrész név megjelenítés formátuma" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "Formátum az alkatrész név megjelenítéséhez" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "Alkatrész kategória alapértelmezett ikon" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "Alkatrész kategória alapértelmezett ikon (üres ha nincs)" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "Csak választható mértékegységek" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "A megadott mértékegység csak a beállított lehetőségekből legyen elfogadva" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "Áraknál használt tizedesjegyek min. száma" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Tizedejegyek minimális száma az árak megjelenítésekor" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "Áraknál használt tizedesjegyek max. száma" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "Tizedejegyek maximális száma az árak megjelenítésekor" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "Beszállítói árazás használata" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Beszállítói ársávok megjelenítése az általános árkalkulációkban" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "Beszerzési előzmények felülbírálása" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Beszerzési árelőzmények felülírják a beszállítói ársávokat" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "Készlet tétel ár használata" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "A kézzel bevitt készlet tétel árak használata az árszámításokhoz" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "Készlet tétel ár kora" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Az ennyi napnál régebbi készlet tételek kizárása az árszámításból" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "Alkatrészváltozat árak használata" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "Alkatrészváltozat árak megjelenítése az általános árkalkulációkban" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "Csak az aktív változatokat" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "Csak az aktív alkatrészváltozatok használata az árazásban" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "Árazás újraszámítás gyakoriság" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "Árak automatikus frissítése ennyi nap után" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "Belső árak" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "Alkatrészekhez belső ár engedélyezése" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "Belső ár felülbírálása" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "Ha elérhetőek az árkalkulációkban a belső árak lesznek alapul véve" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "Címke nyomtatás engedélyezése" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "Címke nyomtatás engedélyezése a web felületről" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "Címke kép DPI" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "Képek felbontása amik átadásra kerülnek címkenyomtató pluginoknak" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "Riportok engedélyezése" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "Riportok előállításának engedélyezése" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "Debug mód" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "Riportok előállítása HTML formátumban (hibakereséshez)" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "Jelentési hibák naplózása" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "Jelentések generálása közben jelentkező hibák naplózása" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "Lapméret" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "Alapértelmezett lapméret a PDF riportokhoz" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "Teszt riportok engedélyezése" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "Teszt riportok előállításának engedélyezése" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "Teszt riportok hozzáadása" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "Teszt riport nyomtatáskor egy másolat hozzáadása a készlet tételhez" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "Globálisan egyedi sorozatszámok" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "A sorozatszámoknak egyedinek kell lennie a teljes készletre vonatkozóan" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "Sorozatszámok automatikus kitöltése" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "Sorozatszámok automatikus kitöltése a formokon" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "Kimerült készlet törlése" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "Alapértelmezett művelet mikor a készlet tétel elfogy" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "Batch kód sablon" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "Sablon a készlet tételekhez alapértelmezett batch kódok előállításához" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "Készlet lejárata" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "Készlet lejárat kezelésének engedélyezése" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "Lejárt készlet értékesítése" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "Lejárt készlet értékesítésének engedélyezése" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "Álló készlet ideje" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "Napok száma amennyivel a lejárat előtt a készlet tételeket állottnak vesszük" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "Lejárt készlet gyártása" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "Gyártás engedélyezése lejárt készletből" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "Készlet tulajdonosok kezelése" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "Tulajdonosok kezelésének engedélyezése a készlet helyekre és tételekre" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "Hely alapértelmezett ikon" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "Hely alapértelmezett ikon (üres ha nincs)" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "Beépített készlet megjelenítése" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "Beépített készlet tételek megjelenítése a készlet táblákban" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "Tételek telepítésekor a darabjegyzék ellenőrzése" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "A beépített tételeknek a szülő elem darabjegyzékében szerepelniük kell" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "Gyártási utasítás azonosító minta" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "Szükséges minta a gyártási utasítás azonosító mező előállításához" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "Felelős tulajdonos szükséges" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "Minden rendeléshez felelőst kell rendelni" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "Blokkolás a tesztek sikeres végrehajtásáig" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "Nem lehet gyártási tételt befejezni amíg valamennyi kötelező teszt sikeres nem lett" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "Visszavétel engedélyezése" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "Visszavételek engedélyezése a felületen" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "Visszavétel azonosító minta" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "Szükséges minta a visszavétel azonosító mező előállításához" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "Befejezett visszavétel szerkesztése" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "Visszavétel szerkesztésének engedélyezése befejezés után" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "Vevői rendelés azonosító minta" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "Szükséges minta a vevői rendelés azonosító mező előállításához" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "Vevői rendeléshez alapértelmezett szállítmány" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "Szállítmány automatikus létrehozása az új vevő rendelésekhez" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "Befejezett vevői rendelés szerkesztése" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Vevői rendelések szerkesztésének engedélyezése szállítás vagy befejezés után" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "Beszerzési rendelés azonosító minta" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "Szükséges minta a beszerzési rendelés azonosító mező előállításához" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "Befejezett beszerzési rendelés szerkesztése" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Beszérzési rendelések szerkesztésének engedélyezése kiküldés vagy befejezés után" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "Beszerzési rendelések automatikus befejezése" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "A beszerzési rendelés automatikus befejezése ha minden sortétel beérkezett" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "Elfelejtett jelszó engedélyezése" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "Elfelejtett jelszó funkció engedélyezése a bejentkező oldalon" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "Regisztráció engedélyezése" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "Felhaszálók önkéntes regisztrációjának engedélyezése a bejelentkező oldalon" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "SSO engedélyezése" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "SSO engedélyezése a bejelentkező oldalon" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "SSO regisztráció engedélyezése" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Felhaszálók önkéntes regisztrációjának engedélyezése SSO-n keresztül a bejelentkező oldalon" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "Email szükséges" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "Kötelező email megadás regisztrációkor" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "SSO felhasználók automatikus kitöltése" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "Felhasználó adatainak automatikus kitöltése az SSO fiókadatokból" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "Email kétszer" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "Regisztráláskor kétszer kérdezze a felhasználó email címét" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "Jelszó kétszer" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "Regisztráláskor kétszer kérdezze a felhasználó jelszavát" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "Engedélyezett domainek" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Feliratkozás korlátozása megadott domain-ekre (vesszővel elválasztva, @-al kezdve)" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "Csoport regisztráláskor" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "Többfaktoros hitelesítés kényszerítése" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "A felhasználóknak többfaktoros hitelesítést kell használniuk." -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "Pluginok ellenőrzése indításkor" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Ellenőrizze induláskor hogy minden plugin telepítve van - engedélyezd konténer környezetben (docker)" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "Plugin frissítések ellenőrzése" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "Frissítések periódikus ellenőrzésének engedélyezése a telepített pluginokra" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "URL integráció engedélyezése" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "URL útvonalalak hozzáadásának engedélyezése a pluginok számára" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "Navigációs integráció engedélyezése" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "Navigációs integráció engedélyezése a pluginok számára" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "App integráció engedélyezése" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "App hozzáadásának engedélyezése a pluginok számára" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "Ütemezés integráció engedélyezése" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "Háttérben futó feladatok hozzáadásának engedélyezése a pluginok számára" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "Esemény integráció engedélyezése" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "Belső eseményekre reagálás engedélyezése a pluginok számára" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "Projektszámok engedélyezése" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "Projektszámok használatának engedélyezése a projektek követéséhez" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "Leltár funkció" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Leltár funkció engedélyezése a készlet mennyiség és érték számításhoz" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "Külső helyek nélkül" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Külső helyek figyelmen kívül hagyása a leltár számításoknál" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "Automatikus leltár időpontja" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Hány naponta történjen automatikus leltár (nulla egyenlő tiltva)" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "Riport törlési gyakoriság" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Régi leltár riportok törlése hány naponta történjen" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "Felhasználók teljes nevének megjelenítése" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "Felhasználói név helyett a felhasználók teljes neve jelenik meg" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "Teszt állomás adatok engedélyezése" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "Tesztállomás adatok gyűjtésének teszt eredménybe gyűjtésének engedélyezése" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "Beállítások kulcs (egyedinek kell lennie, nem kis- nagybetű érzékeny" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "Inaktív alkatrészek elrejtése" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Nem aktív alkatrészek elrejtése a kezdőlapon" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "Értesítésre beállított alkatrészek megjelenítése" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "Alkatrész értesítések megjelenítése a főoldalon" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "Értesítésre beállított kategóriák megjelenítése" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "Alkatrész kategória értesítések megjelenítése a főoldalon" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "Legújabb alkatrészek megjelenítése" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "Legújabb alkatrészek megjelenítése a főoldalon" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "Hibás alkatrészjegyzékek megjelenítése" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "Jóváhagyásra váró alkatrészjegyzékek megjelenítése a főoldalon" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "Legfrissebb készlet változások megjelenítése" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "Legutóbb megváltozott alkatrészek megjelenítése a főoldalon" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "Alacsony készlet megjelenítése" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "Alacsony készletek megjelenítése a főoldalon" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "Kimerült készlet megjelenítése" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "Kimerült készletek megjelenítése a főoldalon" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "Gyártáshoz szükséges készlet megjelenítése" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "Gyártáshoz szükséges készletek megjelenítése a főoldalon" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "Lejárt készlet megjelenítése" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "Lejárt készletek megjelenítése a főoldalon" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "Állott készlet megjelenítése" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "Álló készletek megjelenítése a főoldalon" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "Függő gyártások megjelenítése" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "Folyamatban lévő gyártások megjelenítése a főoldalon" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "Késésben lévő gyártások megjelenítése" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "Késésben lévő gyártások megjelenítése a főoldalon" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "Kintlévő beszerzési rendelések megjelenítése" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "Kintlévő beszerzési rendelések megjelenítése a főoldalon" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "Késésben lévő megrendelések megjelenítése" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "Késésben lévő megrendelések megjelenítése a főoldalon" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "Függő vevői rendelések megjelenítése" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "Függő vevői rendelések megjelenítése a főoldalon" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "Késésben lévő vevői rendelések megjelenítése" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "Késésben lévő vevői rendelések megjelenítése a főoldalon" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "Függő vevői szállítmányok megjelenítése" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "Folyamatban lévő vevői szállítmányok megjelenítése a főoldalon" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "Hírek megjelenítése" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "Hírek megjelenítése a főoldalon" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "Beágyazott címke megjelenítés" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "PDF címkék megjelenítése a böngészőben letöltés helyett" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "Alapértelmezett címkenyomtató" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "Melyik címkenyomtató legyen az alapértelmezett" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "Beágyazott riport megjelenítés" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "PDF riport megjelenítése a böngészőben letöltés helyett" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "Alkatrészek keresése" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "Alkatrészek megjelenítése a keresési előnézetben" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "Beszállítói alkatrészek keresése" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "Beszállítói alkatrészek megjelenítése a keresési előnézetben" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "Gyártói alkatrészek keresése" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "Gyártói alkatrészek megjelenítése a keresési előnézetben" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "Inaktív alkatrészek elrejtése" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "Inaktív alkatrészek kihagyása a keresési előnézet találataiból" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "Kategóriák keresése" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "Alkatrész kategóriák megjelenítése a keresési előnézetben" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "Készlet keresése" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "Készlet tételek megjelenítése a keresési előnézetben" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "Nem elérhető készlet tételek elrejtése" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "Nem elérhető készlet kihagyása a keresési előnézet találataiból" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "Helyek keresése" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "Készlet helyek megjelenítése a keresési előnézetben" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "Cégek keresése" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "Cégek megjelenítése a keresési előnézetben" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "Gyártási utasítások keresése" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "Gyártási utasítások megjelenítése a keresés előnézet ablakban" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "Beszerzési rendelések keresése" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "Beszerzési rendelések megjelenítése a keresési előnézetben" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "Inaktív beszerzési rendelések kihagyása" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "Inaktív beszerzési rendelések kihagyása a keresési előnézet találataiból" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "Vevői rendelések keresése" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "Vevői rendelések megjelenítése a keresési előnézetben" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "Inaktív vevői rendelések kihagyása" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "Inaktív vevői rendelések kihagyása a keresési előnézet találataiból" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "Visszavétel keresése" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "Visszavételek megjelenítése a keresés előnézet ablakban" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "Inaktív visszavételek kihagyása" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "Inaktív visszavételek kihagyása a keresési előnézet találataiból" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "Keresési előnézet eredményei" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "A keresési előnézetben megjelenítendő eredmények száma szekciónként" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "Regex keresés" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "Reguláris kifejezések engedélyezése a keresésekben" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "Teljes szó keresés" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "A keresések csak teljes szóra egyező találatokat adjanak" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "Mennyiség megjelenítése a formokon" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "Rendelkezésre álló alkatrész mennyiség megjelenítése néhány formon" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "ESC billentyű zárja be a formot" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "ESC billentyű használata a modális formok bezárásához" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "Rögzített menüsor" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "A menü pozíciója mindig rögzítve a lap tetején" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "Dátum formátum" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "Preferált dátum formátum a dátumok kijelzésekor" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Alkatrész ütemezés" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "Alkatrész ütemezési információk megjelenítése" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Alkatrész leltár" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Alkatrész leltár információk megjelenítése (ha a leltár funkció engedélyezett)" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "Táblázati szöveg hossz" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "Maximális szöveg hossz ami megjelenhet a táblázatokban" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "Hibariportok fogadása" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "Értesítések fogadása a rendszerhibákról" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "Utoljára használt nyomtató gépek" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "Az utoljára használt nyomtató tárolása a felhasználóhoz" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "Felhasználó" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "Ársáv mennyiség" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Ár" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "Egységár egy meghatározott mennyiség esetén" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "Végpont" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "Végpont ahol ez a webhook érkezik" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "Webhook neve" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "Aktív-e ez a webhook" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "Token" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "Token a hozzáféréshez" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "Titok" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "Megosztott titok a HMAC-hoz" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "Üzenet azonosító" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "Egyedi azonosító ehhez az üzenethez" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "Kiszolgáló" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "Kiszolgáló ahonnan ez az üzenet érkezett" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "Fejléc" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "Üzenet fejléce" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "Törzs" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "Üzenet törzse" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "Végpont amin ez az üzenet érkezett" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "Dolgozott rajta" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "Befejeződött a munka ezzel az üzenettel?" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "Azonosító" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Cím" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "Link" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "Közzétéve" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Szerző" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "Összefoglaló" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "Elolvasva" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "Elolvasva?" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3761,94 +3769,94 @@ msgstr "Elolvasva?" msgid "Image" msgstr "Kép" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "Képfájl" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "A mértékegységnek valós azonosítónak kell lennie" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "Egység neve" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Szimbólum" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "Opcionális mértékegység szimbólum" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definíció" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "Mértékegység definíció" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Melléklet" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "Hiányzó fájl" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Hiányzó külső link" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Válaszd ki a mellekelni kívánt fájlt" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Megjegyzés" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "Fájl mérete" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "Fájlméret bájtban" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3958,27 +3966,27 @@ msgstr "Modell típusa" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "Üres domain nem engedélyezett." -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Érvénytelen domain név: {domain}" @@ -4229,26 +4237,26 @@ msgstr "Szállítási megjegyzések belső használatra" msgid "Link to address information (external)" msgstr "Link a címinformációkhoz (külső)" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Gyártói alkatrész" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Kiindulási alkatrész" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "Válassz alkatrészt" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4258,125 +4266,125 @@ msgstr "Válassz alkatrészt" msgid "Manufacturer" msgstr "Gyártó" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "Gyártó kiválasztása" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "MPN (Gyártói cikkszám)" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "URL link a gyártói alkatrészhez" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "Gyártói alkatrész leírása" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "Paraméter neve" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "Érték" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "Paraméter értéke" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "Mértékegység" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "Paraméter mértékegység" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "Beszállítói alkatrész" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "A csomagolási egységnek kompatibilisnek kell lennie az alkatrész mértékegységgel" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "Csomagolási mennyiségnek nullánál többnek kell lennie" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "Kapcsolódó gyártói alkatrésznek ugyanarra a kiindulási alkatrészre kell hivatkoznia" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "Beszállító" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "Beszállító kiválasztása" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "Beszállítói cikkszám" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "Ez a szállítói termék aktív?" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "Gyártói alkatrész kiválasztása" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "URL link a beszállítói alkatrészhez" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "Beszállítói alkatrész leírása" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4388,64 +4396,64 @@ msgstr "Beszállítói alkatrész leírása" msgid "Note" msgstr "Megjegyzés" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "alap költség" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimális díj (pl. tárolási díj)" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "Csomagolás" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "Alkatrész csomagolás" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "Csomagolási mennyiség" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Egy csomagban kiszállítható mennyiség, hagyd üresen az egyedi tételeknél." -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "többszörös" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "Többszörös rendelés" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "Beszállítónál elérhető mennyiség" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "Elérhetőség frissítve" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "Utolsó elérhetőségi adat frissítés" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4457,7 +4465,7 @@ msgstr "Beszállító által használt alapértelmezett pénznem" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4468,8 +4476,8 @@ msgstr "Készleten" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "Inaktív" @@ -4527,16 +4535,16 @@ msgstr "Kép letöltése URL-ről" msgid "Delete image" msgstr "Kép törlése" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "Vevő" @@ -4735,7 +4743,7 @@ msgstr "Nincs elérhető gyártói információ" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4760,7 +4768,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "Paraméter hozzáadása" @@ -4826,11 +4834,11 @@ msgid "No supplier information available" msgstr "Nincs elérhető beszállítói információ" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "SKU (leltári azonosító)" @@ -4839,13 +4847,13 @@ msgid "Supplier Part Stock" msgstr "Beszállítói készlet" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "Új készlet tétel létrehozása" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "Új készlet tétel" @@ -4880,16 +4888,16 @@ msgid "Update Part Availability" msgstr "Alkatrész elérhetőség frissítése" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "Készlet tételek" @@ -5003,7 +5011,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "Adat" @@ -5204,7 +5212,7 @@ msgstr "Konfiguráció típusa" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "Teljes ár" @@ -5225,9 +5233,9 @@ msgstr "Van árazás" msgid "No matching purchase order found" msgstr "Nincs egyező beszerzési rendelés" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "Rendelés" @@ -5240,26 +5248,26 @@ msgstr "A rendelés teljesítve" msgid "Order Pending" msgstr "A rendelés függőben" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "Beszerzési rendelés" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "Visszavétel" @@ -5287,7 +5295,7 @@ msgstr "Rendelés leírása (opcionális)" msgid "Select project code for this order" msgstr "Válassz projektszámot ehhez a rendeléshez" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "Link külső weboldalra" @@ -5311,365 +5319,365 @@ msgstr "Kapcsolattartó ehhez a rendeléshez" msgid "Company address for this order" msgstr "Cég címei ehhez a rendeléshez" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "Rendelés azonosító" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "Beszerzési rendelés állapota" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "Cég akitől a tételek beszerzésre kerülnek" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "Beszállítói azonosító" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "Beszállítói rendelés azonosító kód" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "érkeztette" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "Kiállítás dátuma" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "Kiállítás dátuma" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "Rendelés teljesítési dátuma" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "Az alkatrész beszállítója meg kell egyezzen a beszerzési rendelés beszállítójával" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "Mennyiség pozitív kell legyen" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "Cég akinek a tételek értékesítésre kerülnek" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "Vevői azonosító " -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "Megrendelés azonosító kódja a vevőnél" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "Kiszállítás dátuma" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "szállította" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "Csak nyitott rendelés jelölhető késznek" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "A rendelés nem jelölhető késznek mivel függő szállítmányok vannak" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "A rendelés nem jelölhető késznek mivel nem teljesített sortételek vannak" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "Tétel mennyiség" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "Sortétel azonosító" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "Sortétel megjegyzései" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Cél dátuma ennek a sortételnek (hagyd üresen a rendelés céldátum használatához)" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "Sortétel leírása (opcionális)" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "Kontextus" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "További kontextus ehhez a sorhoz" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "Egységár" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "Beszállítói alkatrésznek egyeznie kell a beszállítóval" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "törölve" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "Beszállítói alkatrész" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "Beérkezett" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "Érkezett tételek száma" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "Beszerzési ár" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "Beszerzési egységár" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "Mit szeretne a vevő hol tároljuk ezt az alkatrészt?" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "Virtuális alkatrészt nem lehet vevői rendeléshez adni" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "Csak értékesíthető alkatrészeket lehet vevői rendeléshez adni" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Eladási ár" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "Eladási egységár" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Kiszállítva" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "Szállított mennyiség" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "Szállítás dátuma" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "Szállítási dátum" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "Kézbesítés dátuma" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "Ellenőrizte" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "Felhasználó aki ellenőrizte ezt a szállítmányt" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "Szállítmány" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "Szállítmány száma" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "Nyomkövetési szám" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "Szállítmány nyomkövetési információ" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "Számlaszám" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "Hozzátartozó számla referencia száma" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "Szállítmány már elküldve" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "Szállítmány nem tartalmaz foglalt készlet tételeket" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "Készlet tétel nincs hozzárendelve" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "Nem foglalható készlet egy másik fajta alkatrész sortételéhez" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "Nem foglalható készlet egy olyan sorhoz amiben nincs alkatrész" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "A lefoglalandó mennyiség nem haladhatja meg a készlet mennyiségét" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "Egyedi követésre kötelezett tételeknél a menyiség 1 kell legyen" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "Vevői rendelés nem egyezik a szállítmánnyal" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "Szállítmány nem egyezik a vevői rendeléssel" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "Sor" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "Vevői rendelés szállítmány azonosító" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "Tétel" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "Válaszd ki a foglalásra szánt készlet tételt" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "Készlet foglalási mennyiség megadása" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "Visszavétel azonosító" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "Cég akitől a tételek visszavételre kerülnek" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "Visszavétel állapota" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "Csak szériaszámos tételek rendelhetők visszaszállítási utasításhoz" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "Válaszd ki a vevőtől visszavenni kívánt tételt" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "Visszavétel dátuma" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "Mikor lett visszavéve a tétel" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "Kimenetel" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "Sortétel végső kimenetele" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "Sortétel visszaküldésének vagy javításának költsége" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5713,7 +5721,7 @@ 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:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "Belső cikkszám" @@ -5750,7 +5758,7 @@ msgid "Select destination location for received items" msgstr "Válassz cél helyet a beérkezett tételeknek" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "Írd be a batch kódját a beérkezett tételeknek" @@ -6057,12 +6065,12 @@ msgstr "Kijelöltek másolása" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Sor törlése" @@ -6176,8 +6184,8 @@ msgstr "Vevői azonosító" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6242,7 +6250,7 @@ msgid "Pending Shipments" msgstr "Függő szállítmányok" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "Műveletek" @@ -6273,21 +6281,21 @@ msgstr "A {part} egységára {price}-ra módosítva" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "A {part} alkatrész módosított egységára {price} mennyisége pedig {qty}" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "IPN (Belső Cikkszám)" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "Változat" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "Kulcsszavak" @@ -6299,7 +6307,7 @@ msgstr "Alkatrész ábra" msgid "Category ID" msgstr "Kategória ID" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "Kategória neve" @@ -6312,11 +6320,11 @@ msgstr "Alapértelmezett készlethely ID" msgid "Default Supplier ID" msgstr "Alapértelmezett beszállító ID" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Ebből a sablonból" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Minimális készlet" @@ -6324,19 +6332,19 @@ msgstr "Minimális készlet" msgid "Used In" msgstr "Felhasználva ebben" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "Gyártásban" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "Minimum költség" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "Maximum költség" @@ -6348,19 +6356,19 @@ msgstr "Szülő ID" msgid "Parent Name" msgstr "Szülő neve" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "Kategória elérési út" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "Alkatrészek" @@ -6377,13 +6385,17 @@ msgstr "Alkatrészjegyzék tétel ID" msgid "Parent IPN" msgstr "Szülő IPN" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "Minimum ár" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6421,7 +6433,7 @@ msgstr "Lépcsőzetes" msgid "Include sub-categories in filtered results" msgstr "Szűrt eredmények tartalmazzák az alkategóriákat" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "Szülő" @@ -6477,12 +6489,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "Kategória" @@ -6490,13 +6502,13 @@ msgstr "Kategória" msgid "Uses" msgstr "Használ" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "Alapértelmezett hely" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Teljes készlet" @@ -6505,784 +6517,785 @@ msgstr "Teljes készlet" msgid "Input quantity for price calculation" msgstr "Add meg a mennyiséget az árszámításhoz" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Alkatrész kategória" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Alkatrész kategóriák" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "Ebben a kategóriában lévő alkatrészek helye alapban" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "Szerkezeti" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "A szerkezeti alkatrész kategóriákhoz nem lehet direktben alkatrészeket hozzáadni, csak az alkategóriáikhoz." -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "Alapértelmezett kulcsszavak" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "Ebben a kategóriában évő alkatrészek kulcsszavai alapban" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Ikon" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "Ikon (opcionális)" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "Nem lehet az alkatrészkategóriát szerkezeti kategóriává tenni, mert már vannak itt alkatrészek!" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "Hibás választás a szülő alkatrészre" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "Az '{self}' alkatrész nem használható a '{parent}' alkatrészjegyzékében (mert rekurzív lenne)" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "Az '{parent}' alkatrész szerepel a '{self}' alkatrészjegyzékében (rekurzív)" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "Az IPN belső cikkszámnak illeszkednie kell a {pattern} regex mintára" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "Létezik már készlet tétel ilyen a sorozatszámmal" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "Azonos IPN nem engedélyezett az alkatrészekre, már létezik ilyen" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "Ilyen nevű, IPN-ű és reviziójú alkatrész már létezik." -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "Szerkezeti kategóriákhoz nem lehet alkatrészeket rendelni!" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "Alkatrész neve" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "Sablon-e" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "Ez egy sablon alkatrész?" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "Ez az alkatrész egy másik változata?" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "Alkatrész leírása (opcionális)" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "Alkatrész kulcsszavak amik segítik a megjelenést a keresési eredményekben" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "Alkatrész kategória" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "Alkatrész változat vagy verziószám (pl. szín, hossz, revízió, stb.)" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "Alapban hol tároljuk ezt az alkatrészt?" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "Alapértelmezett beszállító" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "Alapértelmezett beszállítói alkatrész" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "Alapértelmezett lejárat" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "Lejárati idő (napban) ennek az alkatrésznek a készleteire" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "Minimálisan megengedett készlet mennyiség" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "Alkatrész mértékegysége" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "Gyártható-e ez az alkatrész más alkatrészekből?" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "Felhasználható-e ez az alkatrész más alkatrészek gyártásához?" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "Kell-e külön követni az egyes példányait ennek az alkatrésznek?" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "Rendelhető-e ez az alkatrész egy külső beszállítótól?" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "Értékesíthető-e önmagában ez az alkatrész a vevőknek?" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "Aktív-e ez az alkatrész?" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "Ez egy virtuális nem megfogható alkatrész, pl. szoftver vagy licenc?" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "Alkatrészjegyzék ellenőrző összeg" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "Tárolt alkatrészjegyzék ellenőrző összeg" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "Alkatrészjegyzéket ellenőrizte" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "Alkatrészjegyzék ellenőrzési dátuma" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "Létrehozó" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "Alkatrész felelőse" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "Utolsó leltár" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "Több értékesítése" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "Árszámítások gyorstárazásához használt pénznem" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "Minimum alkatrészjegyzék költség" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "Összetevők minimum költsége" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "Maximum alkatrészjegyzék költség" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "Összetevők maximum költsége" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "Minimum beszerzési ár" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "Eddigi minimum beszerzési költség" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "Maximum beszerzési ár" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "Eddigi maximum beszerzési költség" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "Minimum belső ár" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "Minimum költség a belső ársávok alapján" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "Maximum belső ár" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "Maximum költség a belső ársávok alapján" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "Minimum beszállítói ár" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "Minimum alkatrész ár a beszállítóktól" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "Maximum beszállítói ár" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "Maximum alkatrész ár a beszállítóktól" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "Minimum alkatrészváltozat ár" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "Alkatrészváltozatok számolt minimum költsége" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "Maximum alkatrészváltozat ár" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "Alkatrészváltozatok számolt maximum költsége" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "Minimum költség felülbírálása" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "Maximum költség felülbírálása" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "Számított általános minimum költség" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "Számított általános maximum költség" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "Minimum eladási ár" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "Minimum eladási ár az ársávok alapján" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "Maximum eladási ár" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "Maximum eladási ár az ársávok alapján" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "Minimum eladási költség" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "Eddigi minimum eladási ár" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "Maximum eladási költség" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "Eddigi maximum eladási ár" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "Leltározható alkatrész" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "Tételszám" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "Egyedi készlet tételek száma a leltárkor" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "Teljes készlet a leltárkor" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "Dátum" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "Leltározva ekkor" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "További megjegyzések" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "Leltározta" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "Minimum készlet érték" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "Becsült minimum raktárkészlet érték" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "Maximum készlet érték" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "Becsült maximum raktárkészlet érték" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "Riport" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "Leltár riport fájl (generált)" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "Alkatrész szám" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "Leltározott alkatrészek száma" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "Felhasználó aki a leltár riportot kérte" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "Hibás sablon név - legalább egy alfanumerikus karakter kötelező" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "A lehetőségek egyediek kell legyenek" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "Teszt sablont csak követésre kötelezett alkatrészhez lehet csinálni" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "Már létezik ilyen azonosítójú Teszt sablon ehhez az alkatrészhez" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "Teszt név" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "Add meg a teszt nevét" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "Teszt azonosító" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "Egyszerűsített Teszt azonosító" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "Teszt leírása" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "Adj hozzá egy leírást ehhez a teszthez" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "Engedélyezve" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "Teszt engedélyezve?" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "Kötelező" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "Szükséges-e hogy ez a teszt sikeres legyen?" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "Kötelező érték" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "Szükséges-e hogy ennek a tesztnek az eredményéhez kötelezően érték legyen rendelve?" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "Kötelező melléklet" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "Szükséges-e hogy ennek a tesztnek az eredményéhez kötelezően fájl melléklet legyen rendelve?" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "Lehetőségek" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "Jelölőnégyzet paraméternek nem lehet mértékegysége" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "Jelölőnégyzet paraméternek nem lehetnek választási lehetőségei" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "A paraméter sablon nevének egyedinek kell lennie" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "Paraméter neve" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "Paraméter mértékegysége" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "Paraméter leírása" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "Jelölőnégyzet" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "Ez a paraméter egy jelölőnégyzet?" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "Választható lehetőségek (vesszővel elválasztva)" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "Hibás választás a paraméterre" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "Szülő alkatrész" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Paraméter sablon" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "Paraméter értéke" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Alapértelmezett érték" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "Alapértelmezett paraméter érték" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "Alkatrész ID vagy alkatrész név" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "Egyedi alkatrész ID értéke" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "Alkatrész IPN érték" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "Szint" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "Alkatrészjegyzék szint" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "Szülő alkatrész kiválasztása" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "Al alkatrész" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "Válaszd ki az alkatrészjegyzékben használandó alkatrészt" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "Alkatrészjegyzék mennyiség ehhez az alkatrészjegyzék tételhez" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "Ez az alkatrészjegyzék tétel opcionális" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Ez az alkatrészjegyzék tétel fogyóeszköz (készlete nincs követve a gyártásban)" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Többlet" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Becsült gyártási veszteség (abszolút vagy százalékos)" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "Alkatrészjegyzék tétel azonosító" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "Alkatrészjegyzék tétel megjegyzései" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "Ellenőrző összeg" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "Alkatrészjegyzék sor ellenőrző összeg" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "Jóváhagyva" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "Ez a BOM tétel jóvá lett hagyva" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "Öröklődött" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Ezt az alkatrészjegyzék tételt az alkatrész változatok alkatrészjegyzékei is öröklik" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Alkatrészváltozatok készlet tételei használhatók ehhez az alkatrészjegyzék tételhez" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "A mennyiség egész szám kell legyen a követésre kötelezett alkatrészek esetén" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "Al alkatrészt kötelező megadni" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "Alkatrészjegyzék tétel helyettesítő" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "A helyettesítő alkatrész nem lehet ugyanaz mint a fő alkatrész" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "Szülő alkatrészjegyzék tétel" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "Helyettesítő alkatrész" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "1.rész" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "2.rész" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "Válassz kapcsolódó alkatrészt" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "Alkatrész kapcsolat nem hozható létre önmagával" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "Már létezik duplikált alkatrész kapcsolat" @@ -7290,338 +7303,338 @@ msgstr "Már létezik duplikált alkatrész kapcsolat" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "Felsőbb szintű alkatrész kategória" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Alkategóriák" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "Eredmények" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "Eszerint a sablon szerint rögzített eredmények száma" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "Beszerzési pénzneme ennek a készlet tételnek" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "Ennyi alkatrész használja ezt a sablont" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "Nincs kiválasztva alkatrész" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "Válassz kategóriát" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "Eredeti alkatrész" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "Válassz eredeti alkatrészt a másoláshoz" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "Kép másolása" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "Kép másolása az eredeti alkatrészről" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "Alkatrészjegyzék másolása" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "Alkatrészjegyzék másolása az eredeti alkatrészről" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "Paraméterek másolása" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "Paraméterek másolása az eredeti alkatrészről" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "Megjegyzések másolása" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "Megjegyzések másolása az eredeti alkatrészről" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "Kezdeti készlet mennyiség" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Add meg a kezdeti készlet mennyiséget. Ha nulla akkor nem lesz készlet létrehozva." -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "Kezdeti készlet hely" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "Add meg a kezdeti készlet helyét" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "Válassz beszállítót (hagyd üresen ha nem kell létrehozni)" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "Válassz gyártót (hagyd üresen ha nem kell létrehozni)" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "Gyártói cikkszám" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "A kiválasztott cég nem érvényes beszállító" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "A kiválasztott cég nem érvényes gyártó" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "Van már ilyen gyártói alkatrész" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "Van már ilyen beszállítói alkatrész" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "Nem lefoglalt készlet" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "Variánsok Raktárkészlet" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "Alkatrész másolása" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "Kezdeti adatok másolása egy másik alkatrészről" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "Kezdeti készlet" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "Kezdeti készlet mennyiség létrehozása" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "Beszállító információ" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "Kezdeti beszállító adatok hozzáadása" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "Kategória paraméterek másolása" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "Paraméter sablonok másolása a kiválasztott alkatrész kategóriából" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "Meglévő kép" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "A meglévő alkatrész képfájl neve" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "A képfájl nem létezik" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "Leltár riport korlátozása bizonyos alkatrészre és variánsra" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "Leltár riport korlátozása bizonyos alkatrész kategóriára és az alatta lévőkre" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "Leltár riport korlátozása bizonyos készlethelyre és az alatta lévőkre" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "Külső készlet nélkül" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "Külső helyeken lévő készlet nélkül" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "Riport létrehozása" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "Riport fájl létrehozása a számított leltár adatokkal" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "Alaktrészek frissítése" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "Megadott alkatrészek frissítése a számított leltár adatokkal" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "Leltár funkció nincs engedélyezve" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "Számított minimum ár felülbírálása" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "Minimum ár pénzneme" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "Számított maximum ár felülbírálása" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "Maximum ár pénzneme" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "Frissítés" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "Alkatrész árak frissítése" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "Megadott pénznem átváltása {default_currency}-re sikertelen" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "A Minimum ár nem lehet nagyobb mint a Maximum ár" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "A Maximum ár nem lehet kisebb mint a Minimum ár" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "Gyártható" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "Válassz alkatrészt ahonnan az alkatrészjegyzéket másoljuk" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "Létező adat törlése" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "Meglévő alkatrészjegyzék tételek törlése a másolás előtt" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "Örököltekkel együtt" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "Sablon alkatrészektől örökölt alkatrészjegyzék tételek használata" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "Hibás sorok kihagyása" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "Engedély a hibás sorok kihagyására" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "Helyettesítő alkatrészek másolása" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "Helyettesítő alkatrészek másolása az alkatrészjegyzék tételek másolásakor" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "Meglévő alkatrészjegyzék törlése" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "Meglévő alkatrészjegyzék tételek törlése a feltöltés előtt" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "Nincs megadva alkatrész oszlop" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "Több egyező alkatrész is található" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "Nincs egyező alkatrész" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "Az alkatrész nem lett összetevőként jelölve" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "Mennyiség nincs megadva" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "Érvénytelen mennyiség" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "Legalább egy alkatrészjegyzék tétel szükséges" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "Teljes mennyiség" @@ -7667,65 +7680,65 @@ msgstr "Ezt az alkatrészjegyzéket utoljára %(checker)s ellenőrizte %(check_d msgid "This BOM has not been validated." msgstr "Ez az alkatrészjegyzék még nincs jóváhagyva." -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "Alkatrész kategória leltározása" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "Értesítések beállítva erre a kategóriára" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "Értesítések kérése erre a kategóriára" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "Kategória műveletek" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "Kategória szerkesztése" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "Kategória szerkesztése" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "Kategória törlése" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "Kategória törlése" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "Legfelső szintű alkatrész kategória" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "Alkatrészek száma (alkategóriákkal együtt)" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "Alkatrész létrehozása" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "Új alkatrész" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "Alkatrész paraméterek" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "Alkatrész kategória létrehozása" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "Új kategória" @@ -7773,7 +7786,7 @@ msgstr "Leltár információ hozzáadása" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "Leltár" @@ -7871,15 +7884,15 @@ msgstr "Alkatrész beszállítók" msgid "Part Manufacturers" msgstr "Alkatrész gyártók" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "Kapcsolódó alkatrész" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "Kapcsolódó alkatrész hozzáadása" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "Teszt eredmény sablon hozzáadása" @@ -7938,7 +7951,7 @@ msgstr "Értesítések kérése erre az alkatrészre" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "Címke nyomtatása" @@ -7948,7 +7961,7 @@ msgstr "Árinformációk megjelenítése" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "Készlet műveletek" @@ -7960,7 +7973,7 @@ msgstr "Készlet számolása" msgid "Transfer part stock" msgstr "Készlet áthelyezése" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "Készlet műveletek" @@ -8028,7 +8041,7 @@ msgid "Minimum stock level" msgstr "Minimális készlet" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8117,13 +8130,13 @@ msgid "Variants" msgstr "Változatok" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "Készlet" @@ -8159,7 +8172,7 @@ msgstr "Alkatrész árazás felülbírálása" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8169,7 +8182,7 @@ msgstr "Szerkesztés" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "Utoljára módosítva" @@ -8241,9 +8254,9 @@ msgid "Update Pricing" msgstr "Árazás Frissítése" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "Nincs készlet" @@ -8333,100 +8346,108 @@ msgstr "Nincs megadva művelet" msgid "No matching action found" msgstr "Nincs egyező művelet" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "Nincs egyező vonalkód" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "Egyezés vonalkódra" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "Ez a vonalkód már egy másik tételé" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "Nem található megfelelő alkatrész adat" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "Nem található megfelelő beszállítói alkatrész" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "Több beszállítói alkatrész található" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "Beszállítói alkatrész található" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "Ez a termék már bevételezve" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "Beszállítói vonalkód nem található" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "Több egyező sortétel is található" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "Nincs egyező sortétel" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "Vonalkód nem egyezik egy létező készlet tétellel sem" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "Készlet tétel nem egyezik a sortétellel" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "Nincs elegendő" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "Készlet tétel lefoglalva egy vevői rendeléshez" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "Nincs elég információ" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "A vonalkódhoz több beszállítói alkatrész is tartozik" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "A '{order}' rendeléshez több beszerzési rendelés is tartozik" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "A '{order}' rendeléshez nem tartozik beszerzési rendelés" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "A beszerzési rendelés nem egyezik a beszállítóval" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "Nem található függőben levő tétel a beszállítói alkatrészhez" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "A tétel bevételezéséhez további információ szükséges" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "Beszerzési rendelés tétele bevételezve" @@ -8434,51 +8455,59 @@ msgstr "Beszerzési rendelés tétele bevételezve" msgid "Scanned barcode data" msgstr "Beolvasott vonalkód" -#: plugin/base/barcodes/serializers.py:81 +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" +msgstr "" + +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 msgid "Purchase Order to allocate items against" msgstr "Tételekhez rendelendő Beszerzési Rendelés" -#: plugin/base/barcodes/serializers.py:87 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order is not pending" msgstr "Beszerzési rendelés nincs függőben" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:129 msgid "PurchaseOrder to receive items against" msgstr "Bevételezési tételekhez rendelendő Beszerzési Rendelés" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "Beszerzési rendelés nincs elküdve" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "Bevételezés erre a készlet helyre" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "Struktúrális hely nem választható" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "Tételekhez rendelendő Vevői Rendelés" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "Vevői rendelés nincs függőben" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "Tételekhez rendelendő vevői rendelés sortétel" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "Tételekhez rendelendő vevői rendelés szállítmány" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "Szállítmány kiszállítva" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "Lefoglalandó mennyiség" @@ -8498,15 +8527,15 @@ msgstr "A címke HTML nyomtatása sikertelen" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "InventTree vonalkódok" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "Alapvető vonalkód támogatást ad" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8517,6 +8546,30 @@ msgstr "Alapvető vonalkód támogatást ad" msgid "InvenTree contributors" msgstr "InvenTree fejlesztők" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "InvenTree értesítések" @@ -8931,7 +8984,7 @@ msgid "No valid objects provided to template" msgstr "Nincs érvényes objektum megadva a sablonhoz" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9059,7 +9112,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "Haladás" @@ -9161,7 +9214,7 @@ msgstr "Beszállító törölve lett" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "Egységár" @@ -9174,7 +9227,7 @@ msgstr "Egyéb tételek" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "Összesen" @@ -9192,11 +9245,11 @@ msgid "Test Results" msgstr "Teszt eredmények" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "Teszt" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "Eredmény" @@ -9222,24 +9275,24 @@ msgid "Installed Items" msgstr "Beépített tételek" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "Sorozatszám" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "A fájl nem létezik" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "A képfile nem található" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "part_image elem csak alkatrész példánynál használható" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "company_image elem csak cég példánynál használható" @@ -9247,8 +9300,8 @@ msgstr "company_image elem csak cég példánynál használható" msgid "Location ID" msgstr "Hely ID" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "Hely elérési út" @@ -9280,7 +9333,7 @@ msgstr "Beszállító neve" msgid "Customer ID" msgstr "Vevő ID" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "Beépítve ebbe" @@ -9305,9 +9358,9 @@ msgstr "Felülvizsgálat szükséges" msgid "Delete on Deplete" msgstr "Törlés ha kimerül" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "Lejárati dátum" @@ -9373,316 +9426,316 @@ msgstr "A beszállítói alkatrészhez van megadva csomagolási mennyiség, de a msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Sorozatszámot nem lehet megadni nem követésre kötelezett alkatrész esetén" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "Készlethely típus" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "Készlethely típusok" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "Alapértelmezett ikon azokhoz a helyekhez, melyeknek nincs ikonja beállítva (válaszható)" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Készlet hely" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Készlethelyek" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Tulajdonos" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "Tulajdonos kiválasztása" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "A szerkezeti raktári helyekre nem lehet direktben raktározni, csak az al-helyekre." -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "Külső" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "Ez egy külső készlethely" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "Helyszín típusa" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "Tárolóhely típus" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "Nem lehet ezt a raktári helyet szerkezetivé tenni, mert már vannak itt tételek!" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "A szerkezeti raktári helyre nem lehet készletet felvenni!" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "Virtuális alkatrészből nem lehet készletet létrehozni" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "A beszállítói alkatrész típusa ('{self.supplier_part.part}') mindenképpen {self.part} kellene, hogy legyen" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "Mennyiség 1 kell legyen a sorozatszámmal rendelkező tételnél" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Nem lehet sorozatszámot megadni ha a mennyiség több mint egy" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "A tétel nem tartozhat saját magához" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "A tételnek kell legyen gyártási azonosítója ha az is_bulding igaz" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "Gyártási azonosító nem ugyanarra az alkatrész objektumra mutat" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "Szülő készlet tétel" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "Kiindulási alkatrész" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "Válassz egy egyező beszállítói alkatrészt ehhez a készlet tételhez" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "Hol található ez az alkatrész?" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "A csomagolása ennek a készlet tételnek itt van tárolva" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "Ez a tétel be van építve egy másik tételbe?" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "Sorozatszám ehhez a tételhez" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "Batch kód ehhez a készlet tételhez" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "Készlet mennyiség" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "Forrás gyártás" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "Gyártás ehhez a készlet tételhez" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "Felhasználva ebben" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "Felhasználva ebben a gyártásban" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "Forrás beszerzési rendelés" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "Beszerzés ehhez a készlet tételhez" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "Cél vevői rendelés" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Készlet tétel lejárati dátuma. A készlet lejártnak tekinthető ezután a dátum után" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "Törlés ha kimerül" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "Készlet tétel törlése ha kimerül" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "Egy egység beszerzési ára a beszerzés időpontjában" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "Alkatrésszé alakítva" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "Az alkatrész nem követésre kötelezett" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "Mennyiség egész szám kell legyen" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "A mennyiség nem haladhatja meg az elérhető készletet ({self.quantity})" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "A sorozatszám egész számok listája kell legyen" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "A mennyiség nem egyezik a megadott sorozatszámok számával" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "A sorozatszámok már léteznek" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "Ez a Teszt sablon nem létezik" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "Készlet tétel hozzárendelve egy vevői rendeléshez" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "Készlet tétel beépül egy másikba" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "A készlet tétel más tételeket tartalmaz" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "Készlet tétel hozzárendelve egy vevőhöz" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "Készlet tétel gyártás alatt" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "Követésre kötelezett készlet nem vonható össze" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "Duplikált készlet tételek vannak" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "A készlet tétel ugyanarra az alkatrészre kell vonatkozzon" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "A készlet tétel ugyanarra a beszállítói alkatrészre kell vonatkozzon" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "Készlet tételek állapotainak egyeznie kell" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "Készlet tétel nem mozgatható mivel nincs készleten" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "Bejegyzés megjegyzései" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "Ehhez a teszthez meg kell adni értéket" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "Ehhez a teszthez fel kell tölteni mellékletet" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "Teszt eredménye" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "Teszt kimeneti értéke" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "Teszt eredmény melléklet" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "Tesztek megjegyzései" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "Teszt állomás" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "A tesztet elvégző tesztállomás azonosítója" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "Elkezdődött" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "A teszt indításának időpontja" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "Befejezve" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "A teszt befejezésének időpontja" @@ -9866,13 +9919,13 @@ msgid "No stock items selected" msgstr "Nincs készlet tétel kiválasztva" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Alhelyek" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "Felsőbb szintű készlet hely" @@ -9972,7 +10025,7 @@ msgstr "Karanténban" msgid "Legacy stock tracking entry" msgstr "Örökölt készlet követési bejegyzés" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "Készlet tétel létrehozva" @@ -10028,7 +10081,7 @@ msgstr "Szülő tételből szétválasztva" msgid "Split child item" msgstr "Szétválasztott gyermek tétel" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "Összevont készlet tétel" @@ -10048,7 +10101,7 @@ msgstr "Gyártási utasítás kimenete kész" msgid "Build order output rejected" msgstr "Gyártási utasítás kimenete elutasítva" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "Gyártásra felhasználva" @@ -10109,7 +10162,7 @@ msgstr "Készlet tétel megjegyzések" msgid "Installed Stock Items" msgstr "Beépített készlet tételek" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "Készlet tétel beépítése" @@ -10117,7 +10170,7 @@ msgstr "Készlet tétel beépítése" msgid "Delete all test results for this stock item" msgstr "Készlet tétel összes teszt eredményének törlése" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "Teszt eredmény hozzáadása" @@ -10130,7 +10183,7 @@ msgid "Scan to Location" msgstr "Áthelyezés kódolvasással" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "Nyomtatási műveletek" @@ -10140,17 +10193,17 @@ msgid "Stock adjustment actions" msgstr "Készlet módosítási műveletek" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "Leltározás" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "Készlet növelése" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "Készlet csökkentése" @@ -10159,12 +10212,12 @@ msgid "Serialize stock" msgstr "Sorozatszámok előállítása" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "Készlet áthelyezése" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "Vevőhöz rendelése" @@ -10205,7 +10258,7 @@ msgid "Delete stock item" msgstr "Készlet tétel törlése" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "Gyártás" @@ -10218,7 +10271,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "Úgytűnik nem vagy ennek a tételnek a tulajdonosa. Ezt így nem tudod módosítani." #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "Csak olvasható" @@ -10263,7 +10316,7 @@ msgid "Navigate to next serial number" msgstr "Menj a következő sorozatszámhoz" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "Nincs beállítva hely" @@ -10290,7 +10343,7 @@ msgid "No stocktake performed" msgstr "Még nem volt leltározva" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "készlet tétel" @@ -10322,7 +10375,7 @@ msgstr "Ez a művelet nem vonható vissza könnyen" msgid "Convert Stock Item" msgstr "Készlet tétel konvertálása" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "Visszavétel készletre" @@ -10334,84 +10387,84 @@ msgstr "Sorszámozott készletek létrehozása ebből a készlet tételből." msgid "Select quantity to serialize, and unique serial numbers." msgstr "Válassz mennyiséget és egyedi sorozatszámokat a sorozatszámozáshoz." -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "Készlethely leltározása" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "Készlet hely keresése" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "Készlet bevételezése erre a helyre" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "Készlet vonalkódok beolvasása" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "Készlet tároló bevételezése erre a helyre" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "Tároló vonalkód beolvasása" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "Készlethely riport nyomtatása" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "Hely műveletek" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "Hely szerkesztése" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "Hely törlése" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "Legfelső szintű készlet hely" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "Hely tulajdonosa" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "Úgytűnik nem vagy ennek a készlethelynek a tulajdonosa. Ezt így nem tudod módosítani." -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "Új készlet hely létrehozása" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "Új hely" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "készlet hely" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "Készlet tároló bevételezve erre a helyre" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "Készlet hely QR kódja" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "Vonalkód hozzárendelése a készlet helyhez" @@ -10900,8 +10953,8 @@ msgid "Rate" msgstr "Árfolyam" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "Törlés" @@ -10923,7 +10976,7 @@ msgid "No project codes found" msgstr "Nem találhatók projektszámok" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "csoport" @@ -10942,12 +10995,12 @@ msgid "No category parameter templates found" msgstr "Nincs kategória paraméter sablon" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "Sablon szerkesztése" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "Sablon törlése" @@ -10955,40 +11008,40 @@ msgstr "Sablon törlése" msgid "Edit Category Parameter Template" msgstr "Kategória paraméter sablon szerkesztése" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "Kategória paraméter sablon törlése" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "Kategória paraméter sablon létrehozása" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "Alkatrész paraméter sablon létrehozása" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "Nem találhatók készlethely típusok" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "Készlethely mennyiség" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "Készlethely típus szerkesztése" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "Készlethely típus törlése" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "Készlethely típus törlése" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "Új készlethely típus" @@ -11325,7 +11378,7 @@ msgid "Submit Bug Report" msgstr "Hibabejelentés küldése" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "vágólapra másolás" @@ -11580,7 +11633,7 @@ msgid "The following parts are low on required stock" msgstr "A következő alkatrészek szükséges készlete alacsony" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "Szükséges mennyiség" @@ -11594,7 +11647,7 @@ msgid "Click on the following link to view this part" msgstr "Klikk a következő linkre az alkatrész megjelenítéséhez" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "Minimum mennyiség" @@ -11759,7 +11812,7 @@ msgstr "Ez törli a vonalkód hozzárendelést" msgid "Unlink" msgstr "Leválasztás" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "Készlet tétel törlése" @@ -11949,7 +12002,7 @@ msgstr "Alkatrészjegyzék betöltése az al-gyártmányhoz" msgid "Substitutes Available" msgstr "Vannak helyettesítők" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "Készletváltozatok engedélyezve" @@ -11969,30 +12022,30 @@ msgstr "Alkatrészjegyzék árazása nem teljes" msgid "No pricing available" msgstr "Nincsenek árak" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "Külső raktárkészlet" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "Nincs szabad" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "Változatokkal és helyettesítőkkel együtt" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "Változatokkal együtt" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "Helyettesítőkkel együtt" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "Fogyóeszköz tétel" @@ -12024,7 +12077,7 @@ msgstr "Alkatrészjegyzék megtekintése" msgid "No BOM items found" msgstr "Nem találhatók alkatrészjegyzék tételek" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "Szükséges alkatrész" @@ -12072,12 +12125,12 @@ msgstr "Gyártási utasítás befejezetlen" msgid "Complete Build Order" msgstr "Gyártási utasítás befejezése" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "Következő szabad sorozatszám" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "Legutolsó sorozatszám" @@ -12130,13 +12183,13 @@ msgstr "Biztosan szeretnéd a már lefoglalt készlet tételeket felszabadítani msgid "Deallocate Stock Items" msgstr "Készlet tételek felszabadítása" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "Gyártási kimenetek kiválasztása" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "Legalább egy gyártási kimenetet ki kell választani" @@ -12144,288 +12197,288 @@ msgstr "Legalább egy gyártási kimenetet ki kell választani" msgid "Selected build outputs will be marked as complete" msgstr "A kiválasztott gyártási kimenetek késznek lesznek jelölve" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "Kimenet" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "Gyártási kimenetek befejezése" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "A kiválasztott gyártási kimenetek selejtnek lesznek jelölve" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "Selejtezett kimenetek elutasítottnak jelölve" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "A lefoglalt készlet már nem lesz elérhető" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "A befejezési státusza a gyártásnak nem fog változni" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "Gyártási kimenetek selejtezése" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "A kiválasztott gyártási kimenetek törölve lesznek" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "A gyártási kimenet adatai véglegesen törölve lesznek" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "A lefoglalt készlet tételek újra készletre kerülnek" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "Gyártási kimenetek törlése" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "Nincs gyártási utasításhoz történő foglalás" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "Hely nincs megadva" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "Kimenetek befejezése" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "Kimenetek selejtezése" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "Kimenetek törlése" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "gyártás kimenet" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "gyártás kimenetek" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "Gyártási kimenet műveletei" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "Nem található aktív gyártási kimenet" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "Lefoglalt sorok" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "Szükséges tesztek" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "Válassz alkatrészeket" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "Legalább egy alkatrész választása szükséges a foglaláshoz" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "Készlet foglalási mennyiség megadása" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "Minden alkatrész lefoglalva" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "Minden kiválasztott alkatrész teljesen lefoglalva" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "Válassz forrás helyet (vagy hagyd üresen ha bárhonnan)" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "Készlet foglalása a gyártási utasításhoz" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "Nincs egyező készlethely" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "Nincs egyező készlet" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "Automatikus készlet foglalás" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "A készlet automatikusan lefoglalásra kerül ehhez a gyártási utasításhoz, a következő feltételek szerint" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "Ha egy készlet hely meg van adva, akkor készlet csak arról a helyről lesz foglalva" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "Ha a készlet helyettesíthetőnek minősül, akkor az első rendelkezésre álló helyről lesz lefoglalva" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "Ha a helyettesítő készlet engedélyezve van, akkor ott az lesz használva ha az elsődleges alkatrésznek nincs készlete" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "Készlet tételek foglalása" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "Nincs a lekérdezéssel egyező gyártási utasítás" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "Kiválaszt" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "Gyártás késésben van" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "Nincs felhasználói információ" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "Készlet foglalások szerkesztése" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "Készlet foglalások törlése" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "Foglalás szerkesztése" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "Foglalás törlése" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "gyártás sor" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "gyártás sorok" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "Nincsenek gyártási sorok" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "Követésre kötelezett alkatrész" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "Mennyiségi egység" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "Van elegendő" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "Fogyóeszköz tétel" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "Követett tétel" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "Egyedileg nyilvántartott tételek lefoglalása egyedi gyártási kimenetekhez" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "Gyártási készlet" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "Készlet rendelés" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "Lefoglalt készlet" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "Készlet foglalások törlése" @@ -12572,7 +12625,7 @@ msgid "Delete Parameters" msgstr "Paraméterek törlése" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "Alkatrész rendelés" @@ -12589,34 +12642,34 @@ msgid "No manufacturer parts found" msgstr "Nincs gyártói alkatrész" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "Sablon alkatrész" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "Gyártmány alkatrész" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "Nem található paraméter" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "Paraméter szerkesztése" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "Paraméter törlése" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "Paraméter szerkesztése" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "Paraméter törlése" @@ -12750,39 +12803,39 @@ msgstr "Form hibák vannak" msgid "No results found" msgstr "Nincs találat" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "Keresés" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "Bevitel törlése" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "Fájl oszlop" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "Mező név" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "Oszlopok kiválasztása" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "IGEN" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "NEM" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "Igaz" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "Hamis" @@ -12867,7 +12920,7 @@ msgstr "Nem találhatók hírek" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "Azonosító" @@ -12916,7 +12969,7 @@ msgid "Delete Line" msgstr "Sor törlése" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "Nem találhatók sortételek" @@ -12932,358 +12985,359 @@ msgstr "Sor szerkesztése" msgid "Delete line" msgstr "Sor törlése" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "Alkatrész tulajdonságok" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "Alkatrész létrehozási opciók" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "Alkatrész másolási opciók" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "Alkatrész kategória hozzáadása" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "Ikon (opcionális) - Az összes ikon felfedezése itt" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "Alkatrész kategória létrehozása" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "Új kategória létrehozása ez után" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "Alkatrész kategória létrehozva" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "Alkatrész kategória szerkesztése" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "Biztos hogy törölni szeretnéd ezt az alkatrész kategóriát?" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "Áthelyezés fentebbi kategóriába" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "Alkatrész kategória törlése" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "A kategóriában lévő alkatrészek kezelése" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "Alkategóriák kezelése" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "Alkatrész létrehozása" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "Új alkatrész létrehozása ez után" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "Alkatrész sikeresen létrehozva" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "Alkatrész szerkesztése" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "Alkatrész módosítva" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "Alkatrész változat létrehozása" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "Aktív alkatrész" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "Alkatrész nem törölhető mivel még aktív" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "Ezen alkatrész törlése nem vonható vissza" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "Ennek az alkatrésznek a teljes készlete törölve lesz" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "Ez az alkatrész minden alkatrészjegyzékből törölve lesz" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "Ehhez az alkatrészhez rendelt minden beszállítói és gyártói információ törölve lesz" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "Alkatrész törlése" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "Értesítések beállítva erre a tételre" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "Értesítések beállítva erre a tételre" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "Értesítések kérése erre a tételre" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "Értesítések letiltva erre a tételre" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "Az alkatrészjegyzék jóváhagyása minden sortételt jóvá fog hagyni" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "Alkatrészjegyzék jóváhagyása" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "Alkatrészjegyzék jóvá lett hagyva" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "Alkatrészjegyzék másolása" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "Alacsony készlet" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "Nincs elérhető készlet" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "Igény" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "Me" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "Virtuális alkatrész" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "Értesítésre beállított alkatrész" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "Értékesíthető alkatrész" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "Új leltár riport ütemezése." -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "Amint elkészül, az új leltár riport letölthető lesz." -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "Leltár riport létrehozása" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "Leltár riport beütemezve" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "Nincs elérhető leltár előzmény" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "Leltár bejegyzés szerkesztése" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "Leltár bejegyzés törlése" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "Nincs több változat" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "Nincs alkatrész paraméter sablon" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "Alkatrész paraméter sablon módosítása" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "Az összes erre a sablonra hivatkozó paraméter is törlésre kerül" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "Alkatrész paraméter sablon törlése" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "Nem található beszerzési rendelés" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "Ez a sortétel késésben van" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "Sortétel bevételezése" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "Alkatrész kapcsolatok törlése" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "Alkatrész kapcsolatok törlése" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "Nincs alkatrész" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "Kategória beállítása a kiválasztott alkatrészekhez" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "Alkatrész kategória beállítása" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "Kategória beállítása" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "alkatrész" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "alkatrészek" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "Nincs kategória" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "Megjelenítés listaként" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "Megjelenítés rácsnézetként" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "Nem találhatóak alkategóriák" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "Megjelenítés fában" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "Alkategóriák betöltése" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "Értesítésre beállított kategória" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "Nincs a lekérdezéssel egyező teszt sablon" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "találat" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "Ez a teszt a szülő alkatrészhez lett felvéve" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "Teszt eredmény sablon szerkesztése" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "Teszt eredmény sablon törlése" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "Nincs megadva dátum" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "A megadott dátum a múltban van" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "Spekulatív" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "Az alkatrészhez nem áll rendelkezésre ütemezési információ" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "Hiba az alkatrész ütemezési információinak betöltésekor" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "Ütemezett készlet mennyiség" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "Maximum mennyiség" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "Minimális készlet" @@ -13497,7 +13551,7 @@ msgid "Quantity to receive" msgstr "Érkező mennyiség" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13545,73 +13599,73 @@ msgstr "Rendelési kód" msgid "Quantity to Receive" msgstr "Érkező mennyiség" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "Bevételezés megerősítése" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "Beszerzési rendelés tételeinek bevételezése" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "Tétel vonalkód beolvasása" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "Beérkezett tétel vonalkódjának leolvasása (egyik meglévő készlet tétellel sem egyezhet)" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "Érvénytelen vonalkód adat" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "Rendelés késésben" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "Az összes kijelölt sortétel törlésre kerül" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "Töröljük a kiválasztott sortételeket?" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "Sortétel másolása" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "Sortétel szerkesztése" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "Sortétel törlése" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "Sortétel másolása" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "Sortétel szerkesztése" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "Sortétel törlése" @@ -13666,16 +13720,16 @@ msgstr "Nem található visszavétel" msgid "Invalid Customer" msgstr "Érvénytelen vevő" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "Visszavétel tételeinek bevételezése" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "Nincs egyező sortétel" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "Tétel bevételezve" @@ -13834,7 +13888,7 @@ msgstr "Készlet foglalások törlése" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "Vevőnek kiszállítva" @@ -13892,18 +13946,14 @@ msgstr "Eredmények összezárása" msgid "Remove results" msgstr "Eredmények eltávolítása" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "Készlet tétel sorszámozása" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "Készlet sorozatszámozás megerősítése" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "Alapértelmezett ikon minden készlethelyre melyhez nincs ikon rendelve (választható) - Válogass az ikonok közül" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "Készlethely típus hozzáadása" @@ -13952,432 +14002,432 @@ msgstr "Ezt az alkatrészt nem lehet sorozatszámozni" msgid "Add given quantity as packs instead of individual items" msgstr "Mennyiség hozzáadása csomagolási egységenként egyedi tételek helyett" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "Add meg a kezdeti mennyiséget ehhez a készlet tételhez" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Add meg az új készlet tételhez tartozó sorozatszámokat (vagy hagyd üresen)" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "Készlet tétel lemásolva" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "Készlet tétel másolása" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "Biztosan törölni szeretnéd ezt a készlet tételt?" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "Készlet tétel törlése" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "Készlet tétel szerkesztése" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "Új tétel létrehozása ez után" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "Készlet tétel létrehozva" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "Több készlet tétel létre lett hozva" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "Sorozatszám keresése" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "Sorozatszám megadása" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "Adj meg egy sorozatszámot" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "Nincs egyező sorozatszám" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "Több egyező eredmény is van" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "Készlet hozzárendelés jóváhagyása" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "Készlet vevőhöz rendelése" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "Figyelem: az összevonási művelet nem vonható vissza" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "Némi információ elveszik a készlet összevonás során" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "A készlettörténet törölve lesz az összevont tételeknél" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "A beszállítói alkatrész információk törlődnek az összevont tételeknél" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "Készlet összevonás megerősítése" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "Készlet tételek összevonása" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "Készlet áthelyezése" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "Áthelyezés" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "Leltározás" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "Leltár" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "Készlet csökkentése" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "Kivesz" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "Készlet növelése" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "Hozzáad" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "Készlet törlése" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "Egyedi követésre kötelezett tételeknél a menyiség nem módosítható" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "Készlet mennyiség megadása" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "Készlet tételek kiválasztása" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "Válassz legalább egy rendelkezésre álló készlet tételt" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "Készlet módosítás jóváhagyása" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "SIKER" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "SIKERTELEN" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "NINCS EREDMÉNY" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "Teszt sikeres" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "Teszt eredmény hozzáadása" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "Teszt eredmény szerkesztése" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "Teszt eredmény törlése" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "Nincs teszt eredmény" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "Teszt dátuma" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "Teszt elkezdődött" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "Teszt befejezve" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "Teszt eredmény szerkesztése" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "Teszt eredmény törlése" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "Gyártásban" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "Beépítve készlet tételbe" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "Vevő rendeléshez hozzárendelve" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "Nincs hely megadva" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "Készlet állapot módosítása" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "Készlet összevonása" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "Készlet törlése" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "készlet tételek" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "Beolvasás helyre" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "Készlet műveletek" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "Beépített tételek betöltése" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "Készlet tétel gyártás alatt" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "Készlet tétel hozzárendelve egy vevői rendeléshez" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "Készlet tétel hozzárendelve egy vevőhöz" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "Egyedi követésre kötelezett készlet tétel lefoglalva" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "Készlet tétel teljes egészében lefoglalva" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "Készlet tétel részben lefoglalva" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "Készlet tétel beépítve egy másikba" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "Készlet tétel fel lett használva egy gyártásban" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "Készlet tétel lejárt" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "Készlet tétel hamarosan lejár" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "Készlet tétel elutasítva" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "Készlet tétel elveszett" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "Készlet tétel megsemmisült" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "Kimerült" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "Beszállítói alkatrész nincs megadva" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "Készletérték" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "Nincs a lekérdezésnek megfelelő készlet tétel" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "készlethelyek" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "Alhelyek betöltése" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "Részletek" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "Nincs változás" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "Alkatrész információ nem áll rendelkezésre" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "A hely már nem létezik" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "A gyártási utasítás már nem létezik" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "Beszerzési megrendelés már nem létezik" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "Vevői megrendelés már nem létezik" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "Visszavétel már nem létezik" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "Vevő már nem létezik" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "A készlet tétel már nem létezik" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "Hozzáadva" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "Eltávolítva" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "Nincsenek beépített tételek" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "Készlet tétel kiszedése" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "Válaszd ki a kiszedni való készlet tételt" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "Másik tétel beépítése ebbe a készlet tételbe" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "Készlet tételek csak akkor építhetők be ha teljesítik a következő kritériumokat" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "A készlet tétel egy olyan alkatrészre mutat ami alkatrészjegyzéke ennek a készlet tételnek" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "A készlet tétel jelenleg elérhető készleten" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "A készlet tétel még nem épült be egy másik tételbe" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "A készlet tétel követett vagy sorozatszámmal vagy batch kóddal" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "Válaszd ki a beépítendő alkatrészt" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "Válassz ki egy vagy több készlet tételt" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "Kiválasztott készlet tételek" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "Készlet állapot módosítása" diff --git a/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po index 33751e0509..a2ed8d15d2 100644 --- a/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Indonesian\n" "Language: id_ID\n" @@ -56,29 +56,29 @@ msgstr "Detail terkait galat dapat dilihat di panel admin" msgid "Enter date" msgstr "Masukkan tanggal" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "Catatan" @@ -135,74 +135,74 @@ msgstr "Domain surel yang diberikan tidak perbolehkan." msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "Jumlah yang diberikan tidak valid" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Nomor seri kosong" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Tidak ada nomor seri ditemukan" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Hapus tag-tag HTML dari nilai ini" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Ukuran gambar terlalu besar" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "URL yang diberikan bukan file gambar yang valid" @@ -366,158 +366,158 @@ msgstr "" msgid "Email" msgstr "Surel" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Pilihan tidak valid" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "Nama" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "Keterangan" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "Keterangan (opsional)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "Direktori" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Data Barcode" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Data barcode pihak ketiga" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Hash unik data barcode" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Sudah ada barcode yang sama" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Terjadi Kesalahan Server" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "Sebuah kesalahan telah dicatat oleh server." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "Harus berupa angka yang valid" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "URL file gambar external" msgid "Downloading images from remote URL is not enabled" msgstr "Unduhan gambar dari URL external tidak aktif" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,17 +726,17 @@ msgstr "Tentang InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Pesanan harus dibatalkan sebelum dapat dihapus" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "Order Produksi" @@ -789,72 +789,72 @@ msgstr "Order Produksi" msgid "Build Orders" msgstr "Order Produksi" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "Pilihan produksi induk tidak valid" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "Referensi Order Produksi" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Referensi" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Produksi Induk" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "Produksi induk dari produksi ini" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "Produksi induk dari produksi ini" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "Bagian" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "Pilih bagian untuk diproduksi" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Referensi Order Penjualan" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "Order penjualan yang teralokasikan ke pesanan ini" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Lokasi Sumber" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Pilih dari lokasi mana stok akan diambil untuk produksi ini (kosongkan untuk mengambil stok dari mana pun)" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "Lokasi Tujuan" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Pilih lokasi di mana item selesai akan disimpan" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "Jumlah Produksi" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Jumlah item stok yang akan dibuat" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "Item selesai" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Jumlah stok item yang telah diselesaikan" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "Status pembuatan" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "Kode status pembuatan" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "Kode Kelompok" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "Kode kelompok untuk hasil produksi ini" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Tanggal Pembuatan" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "Target tanggal selesai" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Target tanggal selesai produksi. Produksi akan menjadi terlambat setelah tanggal ini." -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "Tanggal selesai" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "diselesaikan oleh" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "Diserahkan oleh" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "Pengguna yang menyerahkan order ini" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "Penanggung Jawab" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Tautan eksternal" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "Tautan menuju URL eksternal" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "Tidak ada hasil produksi yang ditentukan" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "Hasil produksi sudah selesai" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "Hasil produksi tidak sesuai dengan order produksi" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "Jumlah harus lebih besar daripada nol" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "Jumlah" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Item produksi harus menentukan hasil produksi karena bagian utama telah ditandai sebagai dapat dilacak" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "Item stok teralokasikan terlalu banyak" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "Jumlah yang dialokasikan harus lebih dari nol" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "Jumlah harus 1 untuk stok dengan nomor seri" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "Stok Item" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "Sumber stok item" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "Jumlah stok yang dialokasikan ke produksi" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "Pasang ke" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "Tujuan stok item" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "Hasil Produksi" @@ -1260,7 +1260,7 @@ msgstr "Jumlah harus angka bulat karena terdapat bagian yang dapat dilacak dalam #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Nomor Seri" @@ -1270,21 +1270,21 @@ msgstr "Masukkan nomor seri untuk hasil pesanan" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "Lokasi" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "Lokasi hasil pesanan yang selesai" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "" @@ -1508,7 +1508,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1584,13 +1584,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "Item tagihan material" @@ -1600,22 +1600,22 @@ msgstr "Item tagihan material" msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,7 +1633,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" @@ -1684,7 +1684,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "" @@ -1696,7 +1696,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Tampilkan kode QR" @@ -1707,7 +1707,7 @@ msgstr "Tampilkan kode QR" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1786,16 +1786,16 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" @@ -1875,8 +1875,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,11 +1890,11 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -2037,15 +2037,15 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,362 +2103,370 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "" msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "Surel diperlukan" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "Pengguna" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "Tautan" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Lampiran" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "File tidak ditemukan" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Tautan eksternal tidak ditemukan" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Pilih file untuk dilampirkan" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Komentar" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3957,27 +3965,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4228,26 +4236,26 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,16 +4534,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "" @@ -4734,7 +4742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "" @@ -5203,7 +5211,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" @@ -5224,9 +5232,9 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" @@ -5239,26 +5247,26 @@ msgstr "" msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "" @@ -5286,7 +5294,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "" @@ -5310,365 +5318,365 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Dikirim" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6056,12 +6064,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6175,8 +6183,8 @@ msgstr "" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "" @@ -6272,21 +6280,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6306,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6319,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6331,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6355,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,13 +6384,17 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" @@ -6489,13 +6501,13 @@ msgstr "" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6516,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7302,338 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7679,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7785,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7870,15 +7883,15 @@ msgstr "" msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "" @@ -7937,7 +7950,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +7960,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +7972,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8171,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8345,108 @@ msgstr "Tidak ada tindakan yang ditentukan" msgid "No matching action found" msgstr "Aksi tidak ditemukan" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8454,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8526,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9160,7 +9213,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,7 +9226,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9299,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9332,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9357,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9372,316 +9425,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "Lampiran perlu diunggah untuk tes ini" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "" @@ -9971,7 +10024,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "Item stok dibuat" @@ -10027,7 +10080,7 @@ msgstr "Dipisah dari item induk" msgid "Split child item" msgstr "Pisah item dari barang induk" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "Stok item digabungkan" @@ -10047,7 +10100,7 @@ msgstr "Order output produksi selesai" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "Terpakai oleh order produksi" @@ -10108,7 +10161,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10169,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "Produksi" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "" @@ -10321,7 +10374,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10386,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11007,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11811,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "" @@ -11948,7 +12001,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12021,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12076,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,12 +12124,12 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "" @@ -12129,13 +12182,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12196,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12749,39 +12802,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +12919,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12931,358 +12984,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13719,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13887,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "" @@ -13891,18 +13945,14 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "" @@ -13951,432 +14001,432 @@ msgstr "" msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "" diff --git a/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po index a0feab49b5..9233297e16 100644 --- a/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -56,29 +56,29 @@ msgstr "I dettagli dell'errore possono essere trovati nel pannello di amministra msgid "Enter date" msgstr "Inserisci la data" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "Note" @@ -135,74 +135,74 @@ msgstr "L'indirizzo di posta elettronica fornito non è approvato." msgid "Registration is disabled." msgstr "La registrazione è disabilitata." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "Quantità inserita non valida" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Numero seriale vuoto" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Seriale Duplicato" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Intervallo di gruppo non valido: {group}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "L'intervallo di gruppo {group} supera la quantità consentita ({expected_quantity})" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Sequenza di gruppo non valida: {group}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Nessun numero di serie trovato" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Il numero di numeri di serie univoci ({len(serials)}) deve corrispondere alla quantità ({expected_quantity})" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Rimuovi i tag HTML da questo valore" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Errore di connessione" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Il server ha risposto con un codice di stato non valido" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Si è verificata un'eccezione" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Il server ha risposto con valore Content-Length non valido" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Immagine troppo grande" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Il download dell'immagine ha superato la dimensione massima" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Il server remoto ha restituito una risposta vuota" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "L'URL fornito non è un file immagine valido" @@ -366,158 +366,158 @@ msgstr "[{site_name}] Accedi all'app" msgid "Email" msgstr "Email" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "Errore nell'eseguire la convalida del plugin" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "I metadati devono essere un oggetto python dict" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "Metadati Plugin" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "Campo di metadati JSON, da utilizzare con plugin esterni" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Schema formattato impropriamente" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "Formato chiave sconosciuta" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "Formato chiave mancante" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Il campo di riferimento non può essere vuoto" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "Il campo deve corrispondere al modello richiesto" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Numero di riferimento troppo grande" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "Nomi duplicati non possono esistere sotto lo stesso genitore" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Scelta non valida" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "Nome" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "Descrizione" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "Descrizione (opzionale)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "Percorso" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "Note di Markdown (opzionale)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Dati del Codice a Barre" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Dati Codice a Barre applicazioni di terze parti" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "Codice a Barre" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Codice univoco del codice a barre" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Trovato codice a barre esistente" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Errore del server" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "Un errore è stato loggato dal server." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "Deve essere un numero valido" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "Superuser" msgid "Is this user a superuser" msgstr "Questo utente è un superutente" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "URL del file immagine remota" msgid "Downloading images from remote URL is not enabled" msgstr "Il download delle immagini da URL remoto non è abilitato" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "Controllo in background non riuscito" @@ -726,17 +726,17 @@ msgstr "Informazioni Su InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "La produzione deve essere annullata prima di poter essere eliminata" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "Consumabile" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "Opzionale" msgid "Tracked" msgstr "Monitorato" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "Allocato" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "Disponibile" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "Ordine di Produzione" @@ -789,72 +789,72 @@ msgstr "Ordine di Produzione" msgid "Build Orders" msgstr "Ordini di Produzione" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "Assembly BOM non è stato convalidato" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "L'ordine di generazione non può essere creato per una parte inattiva" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "L'ordine di compilazione non può essere creato per una parte sbloccata" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "Scelta non valida per la produzione genitore" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "L'utente o il gruppo responsabile deve essere specificato" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "L'ordine di costruzione della parte non può essere cambiata" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "Riferimento Ordine Di Produzione" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Riferimento" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "Breve descrizione della build (facoltativo)" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Produzione Genitore" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "Ordine di produzione a cui questa produzione viene assegnata" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "Ordine di produzione a cui questa produzione viene assegnata" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "Articolo" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "Selezionare parte da produrre" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Numero di riferimento ordine di vendita" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "Ordine di vendita a cui questa produzione viene assegnata" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Posizione Di Origine" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Seleziona la posizione da cui prelevare la giacenza (lasciare vuoto per prelevare da qualsiasi posizione di magazzino)" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "Posizione Della Destinazione" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Seleziona il luogo in cui gli articoli completati saranno immagazzinati" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "Quantità Produzione" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Numero di articoli da costruire" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "Articoli completati" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Numero di articoli di magazzino che sono stati completati" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "Stato Produzione" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "Codice stato di produzione" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "Codice Lotto" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "Codice del lotto per questa produzione" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Data di creazione" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "Data completamento obiettivo" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Data di completamento della produzione. Dopo tale data la produzione sarà in ritardo." -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "Data di completamento" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "Completato da" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "Rilasciato da" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "Utente che ha emesso questo ordine di costruzione" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "Responsabile" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "Utente o gruppo responsabile di questo ordine di produzione" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Collegamento esterno" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "Link a URL esterno" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "Priorità di produzione" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "Priorità di questo ordine di produzione" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "Priorità di questo ordine di produzione" msgid "Project Code" msgstr "Codice del progetto" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "Codice del progetto per questo ordine di produzione" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "L'ordine di produzione {build} è stato completato" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "L'ordine di produzione è stato completato" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "Nessun output di produzione specificato" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "La produzione è stata completata" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "L'output della produzione non corrisponde all'ordine di compilazione" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "La quantità deve essere maggiore di zero" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "La quantità non può essere maggiore della quantità in uscita" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "Crea oggetto" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "Crea oggetto" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "Quantità" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "Quantità richiesta per l'ordine di costruzione" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "L'elemento di compilazione deve specificare un output poiché la parte principale è contrassegnata come rintracciabile" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "La quantità assegnata ({q}) non deve essere maggiore della quantità disponibile ({a})" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "L'articolo in giacenza è sovrallocato" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "La quantità di assegnazione deve essere maggiore di zero" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "La quantità deve essere 1 per lo stock serializzato" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "L'articolo in stock selezionato non corrisponde alla voce nella BOM" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "Articoli in magazzino" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "Origine giacenza articolo" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "Quantità di magazzino da assegnare per la produzione" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "Installa in" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "Destinazione articolo in giacenza" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "Nome Articolo" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "Genera Output" @@ -1260,7 +1260,7 @@ msgstr "Quantità totale richiesta, poiché la fattura dei materiali contiene ar #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Codice Seriale" @@ -1270,21 +1270,21 @@ msgstr "Inserisci i numeri di serie per gli output di compilazione (build option #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "Posizione" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "Posizione per gli output di build completati" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "Stato" @@ -1508,7 +1508,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "Codice articolo produttore" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "Codice Articolo" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "IPN Articolo" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "Numero Seriale" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1584,13 +1584,13 @@ msgstr "Tracciabile" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "Consenti Le Varianti" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "Distinta base (Bom)" @@ -1600,22 +1600,22 @@ msgstr "Distinta base (Bom)" msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "Ordinato" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,7 +1633,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" @@ -1684,7 +1684,7 @@ msgstr "Anteprima parte" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "Azioni Barcode" @@ -1696,7 +1696,7 @@ msgstr "Azioni Barcode" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Mostra QR Code" @@ -1707,7 +1707,7 @@ msgstr "Mostra QR Code" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "Scollega Codice a Barre" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "Collega Codice a Barre" @@ -1786,16 +1786,16 @@ msgstr "Lo stock non è stato completamente assegnato a questo ordine di produzi #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "Outputs Completati" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "Outputs Completati" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "Ordini di Vendita" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "Inviato da" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "Priorità" @@ -1875,8 +1875,8 @@ msgstr "Risorse di magazzino" msgid "Stock can be taken from any available location." msgstr "Lo stock può essere prelevato da qualsiasi posizione disponibile." -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "Destinazione" @@ -1890,11 +1890,11 @@ msgstr "Articoli Assegnati" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "Lotto" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "Creato" @@ -2037,15 +2037,15 @@ msgstr "Elementi Riga" msgid "Incomplete Outputs" msgstr "Output Incompleti" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,362 +2103,370 @@ msgstr "" msgid "Select {name} file to upload" msgstr "Seleziona il file {name} da caricare" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "Aggiornato" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "Orario dell'ultimo aggiornamento" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "Codice unico del progetto" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "Descrizione del progetto" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "Tasto impostazioni (deve essere univoco - maiuscole e minuscole)" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "Valore impostazioni" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "Il valore specificato non è un opzione valida" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "Il valore deve essere un valore booleano" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "Il valore deve essere un intero" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "La stringa chiave deve essere univoca" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "Nessun gruppo" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "Riavvio richiesto" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "È stata modificata un'impostazione che richiede un riavvio del server" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "Nome Istanza Del Server" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "Descrittore stringa per l'istanza del server" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "Utilizza nome istanza" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "Usa il nome dell'istanza nella barra del titolo" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "Limita visualizzazione `Informazioni`" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "Mostra la modalità `Informazioni` solo ai superusers" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "Nome azienda" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "Nome interno dell'azienda" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "URL Base" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "URL di base per l'istanza del server" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "Valuta predefinita" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "giorni" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "Scarica dall'URL" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "Consenti il download di immagini e file remoti da URL esterno" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "Limite Dimensione Download" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "Dimensione massima consentita per il download dell'immagine remota" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "User-agent utilizzato per scaricare dall'URL" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Consenti di sovrascrivere l'user-agent utilizzato per scaricare immagini e file da URL esterno (lasciare vuoto per il predefinito)" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "Richiesta conferma" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "Richiede una conferma esplicita dell'utente per una determinata azione." -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "Profondità livelli" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Profondità predefinita per la visualizzazione ad albero. I livelli più in alto possono essere caricati più lentamente quando necessari." -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "Aggiorna intervallo di controllo" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "Quanto spesso controllare gli aggiornamenti (impostare a zero per disabilitare)" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "Backup automatico" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "Abilita il backup automatico di database e file multimediali" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "Intervallo Di Backup Automatico" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "Definisci i giorni intercorrenti tra un backup automatico e l'altro" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "I risultati delle attività in background verranno eliminati dopo un determinato numero di giorni" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "I log di errore verranno eliminati dopo il numero specificato di giorni" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "Le notifiche dell'utente verranno eliminate dopo il numero di giorni specificato" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Supporto Codice A Barre" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "Codice a barre inserito scaduto" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "Tempo di ritardo di elaborazione codice a barre" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "Codice a Barre Supporto Webcam" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "Consenti la scansione del codice a barre tramite webcam nel browser" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "Abilita il campo revisione per l'articolo" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "Abilita il campo revisione per l'articolo" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "Schema di espressione regolare per l'articolo corrispondente IPN" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "Consenti duplicati IPN" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "Permetti a più articoli di condividere lo stesso IPN" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "Permetti modifiche al part number interno (IPN)" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "Consenti di modificare il valore del part number durante la modifica di un articolo" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "Copia I Dati Della distinta base dell'articolo" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "Copia i dati della Distinta Base predefinita quando duplichi un articolo" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "Copia I Dati Parametro dell'articolo" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "Copia i dati dei parametri di default quando si duplica un articolo" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "Copia I Dati dell'Articolo Test" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "Copia i dati di prova di default quando si duplica un articolo" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "Copia Template Parametri Categoria" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "Copia i modelli dei parametri categoria quando si crea un articolo" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "Copia i modelli dei parametri categoria quando si crea un articolo" msgid "Template" msgstr "Modello" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "Gli articoli sono modelli per impostazione predefinita" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "Assemblaggio" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "Gli articoli possono essere assemblate da altri componenti per impostazione predefinita" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "Componente" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "Gli articoli possono essere assemblati da altri componenti per impostazione predefinita" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "Acquistabile" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "Gli articoli sono acquistabili per impostazione predefinita" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "Vendibile" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "Gli articoli sono acquistabili per impostazione predefinita" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "Gli articoli sono tracciabili per impostazione predefinita" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "Virtuale" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "Gli articoli sono virtuali per impostazione predefinita" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "Mostra l'importazione nelle viste" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "Mostra la procedura guidata di importazione in alcune viste articoli" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "Mostra articoli correlati" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "Visualizza parti correlate per ogni articolo" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "Dati iniziali dello stock" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "Consentire la creazione di uno stock iniziale quando si aggiunge una nuova parte" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "Dati iniziali del fornitore" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Consentire la creazione dei dati iniziali del fornitore quando si aggiunge una nuova parte" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "Formato di visualizzazione del nome articolo" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "Formato per visualizzare il nome dell'articolo" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "Icona predefinita Categoria Articolo" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "Icona predefinita Categoria Articolo (vuoto significa nessuna icona)" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "Usa Prezzi Fornitore" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Includere le discontinuità di prezzo del fornitore nei calcoli generali dei prezzi" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "Ignora la Cronologia Acquisti" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Cronologia dei prezzi dell'ordine di acquisto del fornitore superati con discontinuità di prezzo" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "Utilizzare i prezzi degli articoli in stock" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Utilizzare i prezzi dei dati di magazzino inseriti manualmente per il calcolo dei prezzi" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "Età dei prezzi degli articoli in stock" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Escludere dal calcolo dei prezzi gli articoli in giacenza più vecchi di questo numero di giorni" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "Utilizza Variazione di Prezzo" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "Includi la variante dei prezzi nei calcoli dei prezzi complessivi" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "Solo Varianti Attive" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "Utilizza solo articoli di varianti attive per calcolare i prezzi delle varianti" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "Numero di giorni prima che il prezzo dell'articolo venga aggiornato automaticamente" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "Prezzi interni" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "Abilita prezzi interni per gli articoli" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "Sovrascrivi Prezzo Interno" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "Se disponibile, i prezzi interni sostituiscono i calcoli della fascia di prezzo" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "Abilita stampa etichette" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "Abilita la stampa di etichette dall'interfaccia web" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "Etichetta Immagine DPI" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "Risoluzione DPI quando si generano file di immagine da fornire ai plugin di stampa per etichette" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "Abilita Report di Stampa" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "Abilita generazione di report di stampa" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "Modalità Debug" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "Genera report in modalità debug (output HTML)" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "Dimensioni pagina" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "Dimensione predefinita della pagina per i report PDF" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "Abilita Rapporto di Prova" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "Abilita generazione di stampe di prova" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "Allega Rapporto di Prova" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "Quando si stampa un rapporto di prova, allegare una copia del rapporto di prova all'elemento di magazzino associato" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "Seriali Unici Globali" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "I numeri di serie per gli articoli di magazzino devono essere univoci" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "Auto Riempimento Numeri Seriali" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "Auto riempimento numeri nel modulo" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "Elimina scorte esaurite" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "Modello Codice a Barre" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "Modello per la generazione di codici batch predefiniti per gli elementi stock" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "Scadenza giacenza" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "Abilita funzionalità di scadenza della giacenza" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "Vendi giacenza scaduta" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "Consenti la vendita di stock scaduti" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "Tempo di Scorta del Magazzino" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "Numero di giorni in cui gli articoli in magazzino sono considerati obsoleti prima della scadenza" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "Crea giacenza scaduta" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "Permetti produzione con stock scaduto" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "Controllo della proprietà della giacenza" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "Abilita il controllo della proprietà sulle posizioni e gli oggetti in giacenza" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "Icona Predefinita Ubicazione di Magazzino" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "Icona Predefinita Ubicazione di Magazzino (vuoto significa nessuna icona)" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "Modello Di Riferimento Ordine Di Produzione" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "Modello richiesto per generare il campo di riferimento ordine di produzione" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "Modello Di Riferimento Ordine Di Vendita" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "Modello richiesto per generare il campo di riferimento ordine di vendita" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "Spedizione Predefinita Ordine Di Vendita" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "Abilita la creazione di spedizioni predefinite con ordini di vendita" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "Modifica Ordini Di Vendita Completati" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Consenti la modifica degli ordini di vendita dopo che sono stati spediti o completati" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "Modello di Riferimento Ordine D'Acquisto" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "Modello richiesto per generare il campo di riferimento ordine di acquisto" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "Modifica Ordini Di Acquisto Completati" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Consenti la modifica degli ordini di acquisto dopo che sono stati spediti o completati" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "Abilita password dimenticata" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "Abilita la funzione password dimenticata nelle pagine di accesso" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "Abilita registrazione" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "Abilita auto-registrazione per gli utenti nelle pagine di accesso" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "SSO abilitato" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "Abilita SSO nelle pagine di accesso" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "Abilita registrazione SSO" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Abilita l'auto-registrazione tramite SSO per gli utenti nelle pagine di accesso" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "Email richiesta" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "Richiedi all'utente di fornire una email al momento dell'iscrizione" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "Riempimento automatico degli utenti SSO" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "Compila automaticamente i dettagli dell'utente dai dati dell'account SSO" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "Posta due volte" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "Al momento della registrazione chiedere due volte all'utente l'indirizzo di posta elettronica" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "Password due volte" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "Al momento della registrazione chiedere agli utenti due volte l'inserimento della password" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "Domini consentiti" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "Gruppo iscrizione" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "Applica MFA" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "Gli utenti devono utilizzare la sicurezza a due fattori." -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "Controlla i plugin all'avvio" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Controlla che tutti i plugin siano installati all'avvio - abilita in ambienti contenitore" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "Abilita l'integrazione URL" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "Attiva plugin per aggiungere percorsi URL" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "Attiva integrazione navigazione" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "Abilita i plugin per l'integrazione nella navigazione" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "Abilita l'app integrata" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "Abilita plugin per aggiungere applicazioni" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "Abilita integrazione pianificazione" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "Abilita i plugin per eseguire le attività pianificate" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "Abilita eventi integrati" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "Abilita plugin per rispondere agli eventi interni" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "Funzionalità Dell'Inventario" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Abilita la funzionalità d'inventario per la registrazione dei livelli di magazzino e il calcolo del valore di magazzino" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "Inventario periodico automatico" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Numero di giorni tra la registrazione automatica dell'inventario (imposta 0 per disabilitare)" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "I rapporti d'inventario verranno eliminati dopo il numero specificato di giorni" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "Tasto impostazioni (deve essere univoco - maiuscole e minuscole" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "Nascondi Articoli Inattivi" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "Mostra articoli sottoscritti" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "Mostra gli articoli sottoscritti nella homepage" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "Mostra le categorie sottoscritte" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "Mostra le categorie dei componenti sottoscritti nella homepage" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "Mostra ultimi articoli" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "Mostra gli ultimi articoli sulla homepage" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "Mostra le distinte base che attendono la convalida sulla homepage" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "Mostra le modifiche recenti alle giacenze" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "Mostra le giacenze modificate di recente nella homepage" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "Mostra disponibilità scarsa delle giacenze" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "Mostra disponibilità scarsa degli articoli sulla homepage" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "Mostra scorte esaurite" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "Mostra disponibilità scarsa delle scorte degli articoli sulla homepage" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "Mostra scorte necessarie" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "Mostra le scorte degli articoli necessari per la produzione sulla homepage" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "Mostra scorte esaurite" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "Mostra gli articoli stock scaduti nella home page" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "Mostra scorte obsolete" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "Mostra gli elementi obsoleti esistenti sulla home page" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "Mostra produzioni in attesa" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "Mostra produzioni in attesa sulla homepage" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "Mostra produzioni in ritardo" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "Mostra produzioni in ritardo sulla home page" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "Mostra ordini di produzione inevasi" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "Mostra ordini di produzione inevasi sulla home page" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "Mostra Ordini di Produzione in ritardo" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "Mostra Ordini di Produzione in ritardo sulla home page" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "Mostra Ordini di Vendita inevasi" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "Mostra Ordini di Vendita inevasi sulla home page" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "Mostra Ordini di Vendita in ritardo" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "Mostra Ordini di Vendita in ritardo sulla home page" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "Mostra Notizie" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "Mostra notizie sulla home page" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "Visualizzazione dell'etichetta in linea" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "Stampante per etichette predefinita" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "Configura quale stampante di etichette deve essere selezionata per impostazione predefinita" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "Visualizzazione dell'etichetta in linea" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "Cerca Articoli" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "Mostra articoli della ricerca nella finestra di anteprima" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "Mostra articoli del fornitore nella finestra di anteprima" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "Cerca Articoli Produttore" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "Mostra articoli del produttore nella finestra di anteprima" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "Nascondi Articoli Inattivi" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "Escludi articoli inattivi dalla finestra di anteprima della ricerca" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "Cerca Categorie" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "Mostra categorie articolo nella finestra di anteprima di ricerca" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "Cerca Giacenze" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "Mostra articoli in giacenza nella finestra di anteprima della ricerca" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "Nascondi elementi non disponibili" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "Escludi gli elementi stock che non sono disponibili dalla finestra di anteprima di ricerca" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "Cerca Ubicazioni" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "Mostra ubicazioni delle giacenze nella finestra di anteprima di ricerca" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "Cerca Aziende" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "Mostra le aziende nella finestra di anteprima di ricerca" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "Cerca Ordini Di Produzione" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "Mostra gli ordini di produzione nella finestra di anteprima di ricerca" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "Cerca Ordini di Acquisto" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "Mostra gli ordini di acquisto nella finestra di anteprima di ricerca" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "Escludi Ordini D'Acquisto Inattivi" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "Escludi ordini di acquisto inattivi dalla finestra di anteprima di ricerca" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "Cerca Ordini Di Vendita" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "Visualizzazione degli ordini di vendita nella finestra di anteprima della ricerca" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "Escludi Ordini Di Vendita Inattivi" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "Escludi ordini di vendita inattivi dalla finestra di anteprima di ricerca" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "Cerca Ordini Di Reso" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "Risultati Dell'Anteprima Di Ricerca" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "Numero di risultati da visualizzare in ciascuna sezione della finestra di anteprima della ricerca" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "Ricerca con regex" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "Mostra quantità nei moduli" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "Visualizzare la quantità di pezzi disponibili in alcuni moduli" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "Il tasto Esc chiude i moduli" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "Utilizzare il tasto Esc per chiudere i moduli modali" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "Barra di navigazione fissa" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "La posizione della barra di navigazione è fissata nella parte superiore dello schermo" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "Formato Data" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "Formato predefinito per visualizzare le date" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Programmazione Prodotto" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "Mostra informazioni sulla pianificazione del prodotto" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Inventario Prodotto" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Visualizza le informazioni d'inventario dell'articolo (se la funzionalità d'inventario è abilitata)" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "Lunghezza Stringa Tabella" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "Utente" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "Quantità prezzo limite" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Prezzo" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "Prezzo unitario in quantità specificata" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "Scadenza" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "Scadenza in cui questa notifica viene ricevuta" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "Nome per questa notifica" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "È questa notifica attiva" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "Token per l'accesso" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "Segreto" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "Segreto condiviso per HMAC" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "ID Messaggio" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "Identificatore unico per questo messaggio" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "Host da cui questo messaggio è stato ricevuto" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "Intestazione" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "Intestazione di questo messaggio" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "Contenuto" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "Contenuto di questo messaggio" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "Scadenza in cui questo messaggio è stato ricevuto" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "Lavorato il" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "Il lavoro su questo messaggio è terminato?" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Titolo" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "Collegamento" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "Pubblicato" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Autore" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "Riepilogo" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "Letto" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "Queste notizie sull'elemento sono state lette?" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "Queste notizie sull'elemento sono state lette?" msgid "Image" msgstr "Immagine" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "File immagine" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Allegato" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "File mancante" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Link esterno mancante" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Seleziona file da allegare" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Commento" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3957,27 +3965,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "Un dominio vuoto non è consentito." -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Nome dominio non valido: {domain}" @@ -4228,26 +4236,26 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Codice articolo produttore" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Articolo di base" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "Seleziona articolo" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "Seleziona articolo" msgid "Manufacturer" msgstr "Produttore" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "Seleziona Produttore" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "Codice articolo produttore (MPN)" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "URL dell'articolo del fornitore" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "Descrizione articolo costruttore" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "Nome parametro" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "Valore" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "Valore del parametro" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "Unità" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "Unità parametri" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "Articolo Fornitore" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "L'articolo del costruttore collegato deve riferirsi alla stesso articolo" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "Fornitore" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "Seleziona fornitore" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "Unità di giacenza magazzino fornitore" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "Selezionare un produttore" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "URL dell'articolo del fornitore" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "Descrizione articolo fornitore" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "Descrizione articolo fornitore" msgid "Note" msgstr "Nota" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "costo base" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "Onere minimo (ad esempio tassa di stoccaggio)" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "Confezionamento" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "Imballaggio del pezzo" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "Quantità Confezione" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "multiplo" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "Ordine multiplo" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "Quantità disponibile dal fornitore" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "Disponibilità Aggiornata" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "Data dell’ultimo aggiornamento dei dati sulla disponibilità" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "Valuta predefinita utilizzata per questo fornitore" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "In magazzino" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "Inattivo" @@ -4526,16 +4534,16 @@ msgstr "Scarica immagine dall'URL" msgid "Delete image" msgstr "Elimina immagine" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "Cliente" @@ -4734,7 +4742,7 @@ msgstr "Nessuna informazione sul produttore disponibile" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "Nessuna informazione sul fornitore disponibile" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "Fornitore articolo in giacenza" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "Crea nuova allocazione magazzino" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "Nuovo Elemento in giacenza" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "Articoli in magazzino" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "Dati" @@ -5203,7 +5211,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "Prezzo Totale" @@ -5224,9 +5232,9 @@ msgstr "" msgid "No matching purchase order found" msgstr "Nessun ordine di acquisto corrispondente trovato" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "Ordine" @@ -5239,26 +5247,26 @@ msgstr "" msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "Ordine D'Acquisto" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "Restituisci ordine" @@ -5286,7 +5294,7 @@ msgstr "Descrizione dell'ordine (opzionale)" msgid "Select project code for this order" msgstr "Seleziona il codice del progetto per questo ordine" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "Collegamento a un sito web esterno" @@ -5310,365 +5318,365 @@ msgstr "Punto di contatto per questo ordine" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "Riferimento ordine" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "Stato ordine d'acquisto" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "Azienda da cui sono stati ordinati gli articoli" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "Riferimento fornitore" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "Codice di riferimento ordine fornitore" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "ricevuto da" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "Data di emissione" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "Data di emissione ordine" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "Data ordine completato" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "Il fornitore dell'articolo deve corrispondere al fornitore dell'ordine di produzione" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "La quantità deve essere un numero positivo" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "Azienda da cui sono stati ordinati gli elementi" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "Riferimento Cliente " -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "Codice di riferimento Ordine del Cliente" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "Data di spedizione" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "spedito da" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "Solo un ordine aperto può essere contrassegnato come completo" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "L'ordine non può essere completato in quanto ci sono spedizioni incomplete" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "L'ordine non può essere completato perché ci sono elementi di riga incompleti" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "Quantità Elementi" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "Riferimento Linea Elemento" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "Note linea elemento" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Data di destinazione per questa voce di riga (lasciare vuoto per utilizzare la data di destinazione dall'ordine)" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "Contesto" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "Contesto aggiuntivo per questa voce" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "Prezzo unitario" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "L'articolo del fornitore deve corrispondere al fornitore" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "eliminato" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "Articolo Fornitore" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "Ricevuto" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "Numero di elementi ricevuti" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "Prezzo di Acquisto" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "Prezzo di acquisto unitario" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "Dove l'Acquirente desidera che questo elemento venga immagazzinato?" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "Un articolo virtuale non può essere assegnato ad un ordine di vendita" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "Solo gli articoli vendibili possono essere assegnati a un ordine di vendita" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Prezzo di Vendita" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "Prezzo unitario di vendita" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Spedito" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "Quantità spedita" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "Data di spedizione" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "Verificato Da" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "Utente che ha controllato questa spedizione" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "Spedizione" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "Numero di spedizione" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "Numero di monitoraggio" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "Informazioni di monitoraggio della spedizione" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "Numero Fattura" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "Numero di riferimento per la fattura associata" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "La spedizione è già stata spedita" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "La spedizione non ha articoli di stock assegnati" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "L'elemento di magazzino non è stato assegnato" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "Impossibile allocare l'elemento stock a una linea con un articolo diverso" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "Impossibile allocare stock a una riga senza un articolo" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "La quantità di ripartizione non puo' superare la disponibilità della giacenza" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "La quantità deve essere 1 per l'elemento serializzato" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "L'ordine di vendita non corrisponde alla spedizione" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "La spedizione non corrisponde all'ordine di vendita" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "Linea" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "Riferimento della spedizione ordine di vendita" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "Elemento" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "Seleziona elemento stock da allocare" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "Inserisci la quantità assegnata alla giacenza" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "Seleziona l'elemento da restituire dal cliente" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "Data di ricezione" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "Risultati" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "Numero Dell'articolo Interno" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "Seleziona la posizione di destinazione per gli elementi ricevuti" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "Inserisci il codice univoco per gli articoli in arrivo" @@ -6056,12 +6064,12 @@ msgstr "Duplica selezionati" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Elimina riga" @@ -6175,8 +6183,8 @@ msgstr "Riferimento Cliente" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "Spedizione in sospeso" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "Azioni" @@ -6272,21 +6280,21 @@ msgstr "Aggiornato {part} prezzo unitario a {price}" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "Aggiornato {part} unità prezzo a {price} e quantità a {qty}" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "IPN - Numero di riferimento interno" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "Revisione" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "Parole Chiave" @@ -6298,7 +6306,7 @@ msgstr "" msgid "Category ID" msgstr "Id Categoria" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "Nome Categoria" @@ -6311,11 +6319,11 @@ msgstr "Posizione Predefinita ID" msgid "Default Supplier ID" msgstr "ID Fornitore Predefinito" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Variante Di" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Scorta Minima" @@ -6323,19 +6331,19 @@ msgstr "Scorta Minima" msgid "Used In" msgstr "Utilizzato In" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "In Costruzione" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "Costo Minimo" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "Costo Massimo" @@ -6347,19 +6355,19 @@ msgstr "ID principale" msgid "Parent Name" msgstr "Nome Principale" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "Percorso Categoria" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "Articoli" @@ -6376,13 +6384,17 @@ msgstr "ID Elemento Distinta Base" msgid "Parent IPN" msgstr "IPN Principale" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "Prezzo Minimo" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "Categoria" @@ -6489,13 +6501,13 @@ msgstr "Categoria" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "Posizione Predefinita" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Giacenze Totali" @@ -6504,784 +6516,785 @@ msgstr "Giacenze Totali" msgid "Input quantity for price calculation" msgstr "Digita la quantità per il calcolo del prezzo" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Categoria Articoli" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Categorie Articolo" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "Posizione predefinita per gli articoli di questa categoria" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "Strutturale" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "Le parti non possono essere assegnate direttamente a una categoria strutturale, ma possono essere assegnate a categorie subordinate." -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "Keywords predefinite" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "Parole chiave predefinite per gli articoli in questa categoria" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Icona" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "Icona (facoltativa)" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "Non puoi rendere principale questa categoria di articoli perché alcuni articoli sono già assegnati!" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "Scelta non valida per l'articolo principale" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "Esiste già un elemento stock con questo numero seriale" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "Non è consentito duplicare IPN nelle impostazioni dell'articolo" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "Un articolo con questo Nome, IPN e Revisione esiste già." -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "Gli articoli non possono essere assegnati a categorie articolo principali!" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "Nome articolo" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "È Template" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "Quest'articolo è un articolo di template?" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "Questa parte è una variante di un altro articolo?" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "Parole chiave per migliorare la visibilità nei risultati di ricerca" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "Categoria articolo" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "Numero di revisione o di versione" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "Dove viene normalmente immagazzinato questo articolo?" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "Fornitore predefinito" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "Articolo fornitore predefinito" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "Scadenza Predefinita" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "Scadenza (in giorni) per gli articoli in giacenza di questo pezzo" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "Livello minimo di giacenza consentito" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "Unita di misura per questo articolo" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "Questo articolo può essere costruito da altri articoli?" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "Questo articolo può essere utilizzato per costruire altri articoli?" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "Questo articolo ha il tracciamento per gli elementi unici?" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "Quest'articolo può essere acquistato da fornitori esterni?" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "Questo pezzo può essere venduto ai clienti?" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "Quest'articolo è attivo?" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "È una parte virtuale, come un prodotto software o una licenza?" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "Somma di controllo Distinta Base" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "Somma di controllo immagazzinata Distinta Base" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "Distinta Base controllata da" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "Data di verifica Distinta Base" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "Creazione Utente" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "Ultimo Inventario" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "Vendita multipla" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "Valuta utilizzata per calcolare i prezzi" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "Costo Minimo Distinta Base" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "Costo minimo dei componenti dell'articolo" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "Costo Massimo Distinta Base" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "Costo massimo dei componenti dell'articolo" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "Importo Acquisto Minimo" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "Costo minimo di acquisto storico" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "Importo massimo acquisto" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "Costo massimo di acquisto storico" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "Prezzo Interno Minimo" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "Costo minimo basato su interruzioni di prezzo interne" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "Prezzo Interno Massimo" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "Costo massimo basato su interruzioni di prezzo interne" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "Prezzo Minimo Fornitore" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "Prezzo minimo articolo da fornitori esterni" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "Prezzo Massimo Fornitore" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "Prezzo massimo dell'articolo proveniente da fornitori esterni" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "Variazione di costo minimo" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "Costo minimo calcolato di variazione dell'articolo" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "Massima variazione di costo" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "Costo massimo calcolato di variazione dell'articolo" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "Costo minimo totale calcolato" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "Costo massimo totale calcolato" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "Prezzo Di Vendita Minimo" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "Prezzo minimo di vendita basato sulle interruzioni di prezzo" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "Prezzo Di Vendita Massimo" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "Prezzo massimo di vendita basato sulle interruzioni di prezzo" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "Costo Di Vendita Minimo" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "Prezzo storico minimo di vendita" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "Costo Di Vendita Minimo" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "Prezzo storico massimo di vendita" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "Articolo per l'inventario" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "Contatore Elemento" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "Numero di scorte individuali al momento dell'inventario" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "Totale delle scorte disponibili al momento dell'inventario" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "Data" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "Data in cui è stato effettuato l'inventario" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "Note aggiuntive" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "Utente che ha eseguito questo inventario" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "Costo Minimo Scorta" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "Costo minimo stimato di magazzino a disposizione" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "Costo Massimo Scorte" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "Costo massimo stimato di magazzino a disposizione" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "File Report Inventario (generato internamente)" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "Conteggio Articolo" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "Numero di articoli oggetto d'inventario" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "Utente che ha richiesto questo report inventario" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "Il modello di prova può essere creato solo per gli articoli rintracciabili" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "Nome Test" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "Inserisci un nome per la prova" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "Descrizione Di Prova" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "Inserisci descrizione per questa prova" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "Abilitato" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "Richiesto" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "Questa prova è necessaria per passare?" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "Valore richiesto" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "Questa prova richiede un valore quando si aggiunge un risultato di prova?" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "Allegato Richiesto" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "Questa prova richiede un file allegato quando si aggiunge un risultato di prova?" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "Il nome del modello del parametro deve essere univoco" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "Nome Parametro" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "Descrizione del parametro" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "Articolo principale" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Modello Parametro" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "Valore del Parametro" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Valore Predefinito" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "Valore Parametro Predefinito" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "ID articolo o nome articolo" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "Valore ID articolo univoco" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "Valore IPN articolo" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "Livello" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "Livello distinta base" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "Seleziona articolo principale" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "Articolo subordinato" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "Seleziona l'articolo da utilizzare nella Distinta Base" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "Quantità Distinta Base per questo elemento Distinta Base" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "Questo elemento della Distinta Base è opzionale" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Questo elemento della Distinta Base è consumabile (non è tracciato negli ordini di produzione)" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Eccedenza" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Quantità stimata scarti di produzione (assoluta o percentuale)" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "Riferimento Elemento Distinta Base" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "Note Elemento Distinta Base" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "Codice di controllo" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "Codice di controllo Distinta Base" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "Convalidato" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Questo elemento della Distinta Base viene ereditato dalle Distinte Base per gli articoli varianti" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Gli elementi in giacenza per gli articoli varianti possono essere utilizzati per questo elemento Distinta Base" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "La quantità deve essere un valore intero per gli articoli rintracciabili" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "L'articolo subordinato deve essere specificato" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "Elemento Distinta Base Sostituito" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "La parte sostituita non può essere la stessa dell'articolo principale" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "Elemento principale Distinta Base" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "Sostituisci l'Articolo" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "Articolo 1" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "Articolo 2" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "Seleziona Prodotto Relativo" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "Non si può creare una relazione tra l'articolo e sé stesso" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "La relazione duplicata esiste già" @@ -7289,338 +7302,338 @@ msgstr "La relazione duplicata esiste già" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Sottocategorie" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "Valuta di acquisto di questo articolo in stock" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "Articolo Originale" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "Seleziona l'articolo originale da duplicare" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "Copia immagine" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "Copia immagine dall'articolo originale" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "Copia Distinta Base" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "Copia fattura dei materiali dall'articolo originale" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "Copia parametri" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "Copia i dati dei parametri dall'articolo originale" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "Quantità iniziale" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Specificare la quantità iniziale disponibile per questo Articolo. Se la quantità è zero, non viene aggiunta alcuna quantità." -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "Ubicazione Iniziale Magazzino" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "Specificare l'ubicazione iniziale del magazzino per questo Articolo" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "Seleziona il fornitore (o lascia vuoto per saltare)" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "Seleziona il produttore (o lascia vuoto per saltare)" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "Codice articolo Produttore" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "L'azienda selezionata non è un fornitore valido" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "L'azienda selezionata non è un produttore valido" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "L'articolo del produttore che corrisponde a questo MPN esiste già" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "L'articolo del fornitore che corrisponde a questo SKU esiste già" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "Duplica articolo" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "Copia i dati iniziali da un altro Articolo" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "Stock iniziale" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "Crea Articolo con quantità di scorta iniziale" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "Informazioni Fornitore" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "Aggiungi le informazioni iniziali del fornitore per questo articolo" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "Copia Parametri Categoria" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "Copia i parametri dai modelli della categoria articolo selezionata" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "Limitare il report d'inventario ad un articolo particolare e a eventuali articoli varianti" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "Limita il report d'inventario ad una particolare categoria articolo, e a eventuali categorie secondarie" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "Limita il report d'inventario ad una particolare ubicazione di magazzino, e a eventuali ubicazioni secondarie" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "Genera Report" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "Genera file di report contenente dati di inventario calcolati" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "Aggiorna Articoli" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "Aggiorna gli articoli specificati con i dati calcolati di inventario" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "La funzione Inventario non è abilitata" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "Aggiorna" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "Aggiorna i prezzi per questo articolo" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "Puoi produrre" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "Seleziona l'articolo da cui copiare la distinta base" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "Rimuovi Dati Esistenti" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "Rimuovi elementi distinta base esistenti prima di copiare" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "Includi Ereditato" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "Includi gli elementi Distinta Base ereditati da prodotti template" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "Salta Righe Non Valide" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "Abilita questa opzione per saltare le righe non valide" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "Copia Articoli sostitutivi" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "Copia articoli sostitutivi quando duplichi gli elementi distinta base" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "Cancella Distinta Base esistente" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "Rimuovi elementi distinta base esistenti prima del caricamento" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "Nessuna colonna articolo specificata" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "Trovati più articoli corrispondenti" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "Nessun articolo corrispondente trovato" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "L'articolo non è indicato come componente" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "Quantità non fornita" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "Quantità non valida" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "Almeno un elemento della distinta base è richiesto" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "Quantità Totale" @@ -7666,65 +7679,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "Esegui inventario per questa categoria articolo" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "Sei iscritto alle notifiche di questa categoria" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "Sottoscrivi notifiche per questa categoria" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "Azioni Categoria" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "Modifica categoria" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "Modifica Categoria" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "Elimina la categoria" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "Cancella categoria" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "Categoria articolo di livello superiore" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "Articoli (incluse le sottocategorie)" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "Crea nuovo articolo" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "Nuovo articolo" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "Parametri articolo" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "Crea nuova categoria articoli" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "Nuova categoria" @@ -7772,7 +7785,7 @@ msgstr "Aggiungi informazioni inventario" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "Inventario" @@ -7870,15 +7883,15 @@ msgstr "Fornitori articoli" msgid "Part Manufacturers" msgstr "Componenti Produttori" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "" @@ -7937,7 +7950,7 @@ msgstr "Sottoscrivi le notifiche per questo articolo" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "Stampa Etichetta" @@ -7947,7 +7960,7 @@ msgstr "Mostra informazioni sui prezzi" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "Azioni magazzino" @@ -7959,7 +7972,7 @@ msgstr "Conta articoli magazzino" msgid "Transfer part stock" msgstr "Trasferisci giacenza" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "Azioni articolo" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "Livello minimo di giacenza" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "Varianti" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "Magazzino" @@ -8158,7 +8171,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "Modifica" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "Ultimo aggiornamento" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "Nessuna giacenza" @@ -8332,100 +8345,108 @@ msgstr "Nessuna azione specificata" msgid "No matching action found" msgstr "Nessuna azione corrispondente trovata" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "Nessuna corrispondenza trovata per i dati del codice a barre" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "Corrispondenza trovata per i dati del codice a barre" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "Il codice a barre corrisponde a un elemento esistente" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "Scorte insufficienti disponibili" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8454,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8526,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "InvenTree Codice a Barre" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "Fornisce supporto nativo per codici a barre" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "Fornisce supporto nativo per codici a barre" msgid "InvenTree contributors" msgstr "Contributi d'InvenTree" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "InvenTree Notifiche" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "Nessun oggetto valido fornito nel modello" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9160,7 +9213,7 @@ msgstr "Il fornitore è stato eliminato" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "Prezzo Unitario" @@ -9173,7 +9226,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "Totale" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "Risultati Test" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "Risultato" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "Elementi installati" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "Seriale" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9299,8 @@ msgstr "" msgid "Location ID" msgstr "ID Posizione" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "Percorso Ubicazione" @@ -9279,7 +9332,7 @@ msgstr "Nome Fornitore" msgid "Customer ID" msgstr "ID Cliente" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "Installato In" @@ -9304,9 +9357,9 @@ msgstr "Revisione Necessaria" msgid "Delete on Deplete" msgstr "Elimina al esaurimento" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "Data di Scadenza" @@ -9372,316 +9425,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "I numeri di serie non possono essere forniti per un articolo non tracciabile" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Ubicazione magazzino" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Posizioni magazzino" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Proprietario" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "Seleziona Owner" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Gli elementi di magazzino non possono essere direttamente situati in un magazzino strutturale, ma possono essere situati in ubicazioni secondarie." -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "Esterno" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "Si tratta di una posizione esterna al magazzino" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "Non puoi rendere strutturale questa posizione di magazzino perché alcuni elementi di magazzino sono già posizionati al suo interno!" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "Gli articoli di magazzino non possono essere ubicati in posizioni di magazzino strutturali!" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "Non è possibile creare un elemento di magazzino per articoli virtuali" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "La quantità deve essere 1 per elementi con un numero di serie" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Il numero di serie non può essere impostato se la quantità è maggiore di 1" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "L'elemento non può appartenere a se stesso" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "L'elemento deve avere un riferimento di costruzione se is_building=True" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "Il riferimento di costruzione non punta allo stesso oggetto dell'articolo" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "Elemento di magazzino principale" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "Articolo base" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "Seleziona un fornitore articolo corrispondente per questo elemento di magazzino" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "Dove si trova questo articolo di magazzino?" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "Imballaggio di questo articolo di magazzino è collocato in" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "Questo elemento è stato installato su un altro elemento?" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "Numero di serie per questo elemento" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "Codice lotto per questo elemento di magazzino" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "Quantità disponibile" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "Genera Costruzione" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "Costruisci per questo elemento di magazzino" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "Origina Ordine di Acquisto" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "Ordine d'acquisto per questo articolo in magazzino" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "Destinazione Ordine di Vendita" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Data di scadenza per l'elemento di magazzino. Le scorte saranno considerate scadute dopo questa data" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "Elimina al esaurimento" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "Cancella questo Elemento di Magazzino quando la giacenza è esaurita" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "Prezzo di acquisto unitario al momento dell’acquisto" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "Convertito in articolo" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "L'articolo non è impostato come tracciabile" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "La quantità deve essere un numero intero" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "I numeri di serie devono essere numeri interi" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "La quantità non corrisponde ai numeri di serie" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "Numeri di serie già esistenti" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "L'elemento di magazzino è stato assegnato a un ordine di vendita" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "L'elemento di magazzino è installato in un altro elemento" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "L'elemento di magazzino contiene altri elementi" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "L'elemento di magazzino è stato assegnato a un cliente" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "L'elemento di magazzino è attualmente in produzione" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "Il magazzino serializzato non può essere unito" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "Duplica elementi di magazzino" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "Gli elementi di magazzino devono riferirsi allo stesso articolo" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "Gli elementi di magazzino devono riferirsi allo stesso articolo fornitore" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "I codici di stato dello stock devono corrispondere" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "Le giacenze non possono essere spostate perché non disponibili" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "Note d'ingresso" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "Il valore deve essere fornito per questo test" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "L'allegato deve essere caricato per questo test" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "Risultato Test" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "Test valore output" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "Risultato della prova allegato" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "Note del test" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Sottoallocazioni" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "" @@ -9971,7 +10024,7 @@ msgstr "In quarantena" msgid "Legacy stock tracking entry" msgstr "Voce di tracciamento stock preesistente" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "Elemento stock creato" @@ -10027,7 +10080,7 @@ msgstr "Diviso dall'elemento genitore" msgid "Split child item" msgstr "Dividi elemento figlio" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "Elemento stock raggruppato" @@ -10047,7 +10100,7 @@ msgstr "Build order output completato" msgid "Build order output rejected" msgstr "Ordine di costruzione rifiutato" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "Impegnato dall'ordine di costruzione" @@ -10108,7 +10161,7 @@ msgstr "Note Elemento di magazzino" msgid "Installed Stock Items" msgstr "Elementi di magazzino installati" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "Installa Elemento Magazzino" @@ -10116,7 +10169,7 @@ msgstr "Installa Elemento Magazzino" msgid "Delete all test results for this stock item" msgstr "Elimina tutti i risultati del test per questo elemento di magazzino" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "Scansiona nella posizione" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "Impostazioni di stampa" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "Azioni adeguamento giacenza" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "Conta giacenza" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "Aggiungi giacenza" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "Rimuovi giacenza" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "Serializza magazzino" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "Trasferisci giacenza" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "Assegna al cliente" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "Cancella elemento di magazzino" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "Produzione" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "Non sei nell'elenco dei proprietari di questo elemento. Questo elemento di magazzino non può essere modificato." #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "Sola lettura" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "Vai al numero di serie successivo" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "Nessuna posizione impostata" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "Nessun inventario eseguito" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "" @@ -10321,7 +10374,7 @@ msgstr "Questa azione non può essere facilmente annullata" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10386,84 @@ msgstr "Crea elementi serializzati da questo elemento di magazzino." msgid "Select quantity to serialize, and unique serial numbers." msgstr "Seleziona la quantità da serializzare e i numeri di serie univoci." -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "Esegui inventario per questa ubicazione di magazzino" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "Individua ubicazione di magazzino" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "Scansiona gli elementi in magazzino in questa ubicazione" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "Scansiona Elementi Stock" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "Scansiona il contenitore magazzino in questa posizione" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "Scansiona container" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "Azioni posizione" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "Modifica la posizione" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "Elimina la posizione" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "Posizione stock di livello superiore" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "Proprietario Posizione" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "Non sei nell'elenco dei proprietari di questa posizione. Questa posizione di giacenza non può essere modificata." -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "Crea nuova posizione di magazzino" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "Nuova Posizione" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "Elimina" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11007,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "Invia Segnalazione Bug" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "copia negli appunti" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "I seguenti articoli sono pochi nel magazzino richiesto" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "Quantità richiesta" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "Clicca il seguente link per visualizzare questo articolo" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "Quantità minima" @@ -11758,7 +11811,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "" @@ -11948,7 +12001,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12021,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12076,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,12 +12124,12 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "" @@ -12129,13 +12182,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12196,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12749,39 +12802,39 @@ msgstr "Esistono errori nel modulo" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +12919,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12931,358 +12984,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13719,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13887,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "" @@ -13891,18 +13945,14 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "" @@ -13951,432 +14001,432 @@ msgstr "" msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "Aggiungi" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "" diff --git a/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po index 87cd537ffb..d10d697831 100644 --- a/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -56,29 +56,29 @@ msgstr "エラーの詳細は管理者パネルで確認できます" msgid "Enter date" msgstr "日付を入力する" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "メモ" @@ -135,74 +135,74 @@ msgstr "指定されたメールドメインは承認されていません。" msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "数量コードが無効です" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "シリアル番号は空です" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "シリアル番号が見つかりません" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "この値からHTMLタグを削除" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "接続エラー" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "サーバは無効なステータスコードで応答しました" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "例外が発生しました" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "サーバーが無効なContent-Length値で応答しました" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "画像サイズが大きすぎます" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "画像のダウンロードが最大サイズを超えました" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "リモートサーバーが空のレスポンスを返しました" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "指定されたURLは有効な画像ファイルではありません" @@ -366,158 +366,158 @@ msgstr "" msgid "Email" msgstr "メールアドレス" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "プラグインメタデータ" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "外部プラグインで使用するためのJSONメタデータフィールド" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "無効な選択です" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "お名前" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "説明" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "説明 (オプション)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "マークダウンメモ (オプション)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "バーコード情報" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "サードパーティ製バーコードデータ" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "有効な数字でなければなりません" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "外部画像ファイルのURL" msgid "Downloading images from remote URL is not enabled" msgstr "外部URLからの画像ダウンロードは許可されていません" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "バックグラウンドワーカーのチェックに失敗しました" @@ -726,17 +726,17 @@ msgstr "InvenTree について" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "オプション" msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "組立注文" @@ -789,72 +789,72 @@ msgstr "組立注文" msgid "Build Orders" msgstr "組立注文" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "パーツ" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "組立状況" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "作成日時" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "外部リンク" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "外部 サイト へのリンク" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "組立優先度" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "数量" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "在庫商品" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" @@ -1260,7 +1260,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "シリアル番号" @@ -1270,21 +1270,21 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "ステータス" @@ -1508,7 +1508,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "シリアル番号" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1584,13 +1584,13 @@ msgstr "追跡可能" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "" @@ -1600,22 +1600,22 @@ msgstr "" msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,7 +1633,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" @@ -1684,7 +1684,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "" @@ -1696,7 +1696,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1707,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1786,16 +1786,16 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" @@ -1875,8 +1875,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,11 +1890,11 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -2037,15 +2037,15 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,362 +2103,370 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "外部URLからの画像ダウンロードを許可する" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "外部URL画像の最大サイズ" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "" msgid "Template" msgstr "テンプレート" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "パーツはデフォルトのテンプレートです" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "アセンブリ" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "パーツはデフォルトで他のコンポーネントから組み立てることができます" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "コンポーネント" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "パーツはデフォルトでサブコンポーネントとして使用できます" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "購入可能" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "パーツはデフォルトで購入可能です" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "販売可能" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "パーツはデフォルトで販売可能です" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "パーツはデフォルトで追跡可能です" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "デバッグモード" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "シリアル番号を自動入力" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "メールアドレスは必須です" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "非アクティブな部品を非表示" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "購読中の部品を表示" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "購読中のカテゴリを表示" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "ユーザー" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "メッセージ ID:" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "リンク" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "添付ファイル" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "ファイルがありません" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "外部リンクが見つかりません。" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "添付ファイルを選択" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "コメント:" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3957,27 +3965,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4228,26 +4236,26 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "メーカー・パーツ" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "" msgid "Manufacturer" msgstr "製造元" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "仕入先" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,16 +4534,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "顧客" @@ -4734,7 +4742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "在庫商品" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "" @@ -5203,7 +5211,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" @@ -5224,9 +5232,9 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" @@ -5239,26 +5247,26 @@ msgstr "" msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "" @@ -5286,7 +5294,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "外部ページへのリンク" @@ -5310,365 +5318,365 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "購入金額" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "発送済み" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6056,12 +6064,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6175,8 +6183,8 @@ msgstr "" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "" @@ -6272,21 +6280,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "キーワード" @@ -6298,7 +6306,7 @@ msgstr "" msgid "Category ID" msgstr "カテゴリID" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "カテゴリ名" @@ -6311,11 +6319,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6331,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6355,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "パーツ" @@ -6376,13 +6384,17 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "カテゴリ" @@ -6489,13 +6501,13 @@ msgstr "カテゴリ" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6516,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "パーツカテゴリ" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "パーツカテゴリ" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "パーツカテゴリ" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7302,338 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "サブカテゴリ" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "カテゴリを選択" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7679,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "このカテゴリの通知を受け取る" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "カテゴリを編集" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "カテゴリを編集" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "カテゴリを削除" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "カテゴリを削除" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "トップレベルのパーツカテゴリ" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "パーツ (サブカテゴリを含む)" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "新規パーツを作成" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "新規パーツ" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "パーツパラメータ" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "新しいパーツカテゴリを作成" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "新規カテゴリ" @@ -7772,7 +7785,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7870,15 +7883,15 @@ msgstr "" msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "" @@ -7937,7 +7950,7 @@ msgstr "このパーツの通知を受け取る" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +7960,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +7972,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "在庫" @@ -8158,7 +8171,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "在庫切れ" @@ -8332,100 +8345,108 @@ msgstr "アクションが指定されていません" msgid "No matching action found" msgstr "一致するアクションが見つかりませんでした" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8454,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8526,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9160,7 +9213,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,7 +9226,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9299,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9332,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9357,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9372,316 +9425,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "シリアル番号が既に存在します" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "" @@ -9971,7 +10024,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "在庫商品を作成しました" @@ -10027,7 +10080,7 @@ msgstr "親アイテムから分割する" msgid "Split child item" msgstr "子項目を分割" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "商品在庫をマージしました" @@ -10047,7 +10100,7 @@ msgstr "組立注文の出力が完了しました" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10161,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10169,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "組立" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "" @@ -10321,7 +10374,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10386,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11007,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "このパーツを表示するには、次のリンクをクリックしてください" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "最小在庫" @@ -11758,7 +11811,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "" @@ -11948,7 +12001,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12021,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12076,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,12 +12124,12 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "" @@ -12129,13 +12182,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12196,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12749,39 +12802,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +12919,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12931,358 +12984,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13719,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13887,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "" @@ -13891,18 +13945,14 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "" @@ -13951,432 +14001,432 @@ msgstr "" msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "" diff --git a/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po index e31d462652..7c74b1cf9f 100644 --- a/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Korean\n" "Language: ko_KR\n" @@ -56,29 +56,29 @@ msgstr "" msgid "Enter date" msgstr "" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "" @@ -135,74 +135,74 @@ msgstr "" msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "" @@ -366,158 +366,158 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,17 +726,17 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "" @@ -789,72 +789,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" @@ -1260,7 +1260,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "" @@ -1270,21 +1270,21 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "" @@ -1508,7 +1508,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1584,13 +1584,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "" @@ -1600,22 +1600,22 @@ msgstr "" msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,7 +1633,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" @@ -1684,7 +1684,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "" @@ -1696,7 +1696,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1707,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1786,16 +1786,16 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" @@ -1875,8 +1875,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,11 +1890,11 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -2037,15 +2037,15 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,362 +2103,370 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "" msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3957,27 +3965,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4228,26 +4236,26 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,16 +4534,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "" @@ -4734,7 +4742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "" @@ -5203,7 +5211,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" @@ -5224,9 +5232,9 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" @@ -5239,26 +5247,26 @@ msgstr "" msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "" @@ -5286,7 +5294,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "" @@ -5310,365 +5318,365 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6056,12 +6064,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6175,8 +6183,8 @@ msgstr "" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "" @@ -6272,21 +6280,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6306,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6319,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6331,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6355,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,13 +6384,17 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" @@ -6489,13 +6501,13 @@ msgstr "" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6516,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7302,338 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7679,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7785,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7870,15 +7883,15 @@ msgstr "" msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "" @@ -7937,7 +7950,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +7960,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +7972,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8171,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8345,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8454,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8526,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9160,7 +9213,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,7 +9226,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9299,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9332,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9357,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9372,316 +9425,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "" @@ -9971,7 +10024,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "" @@ -10027,7 +10080,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "" @@ -10047,7 +10100,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10161,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10169,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "" @@ -10321,7 +10374,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10386,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11007,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11811,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "" @@ -11948,7 +12001,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12021,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12076,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,12 +12124,12 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "" @@ -12129,13 +12182,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12196,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12749,39 +12802,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +12919,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12931,358 +12984,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13719,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13887,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "" @@ -13891,18 +13945,14 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "" @@ -13951,432 +14001,432 @@ msgstr "" msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "" diff --git a/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po index 74db2b7b39..0785f85b88 100644 --- a/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:39\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:37\n" "Last-Translator: \n" "Language-Team: Latvian\n" "Language: lv_LV\n" @@ -56,29 +56,29 @@ msgstr "" msgid "Enter date" msgstr "Ievadiet datumu" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "Piezīmes" @@ -135,74 +135,74 @@ msgstr "Norādītais e-pasta domēns nav apstiprināts." msgid "Registration is disabled." msgstr "Reģistrācija ir izslēgta." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "Norādītais daudzums nav derīgs" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Tukša sērijas numura rinda" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Atkārtojas sērijas numurs" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Nederīgs grupas diapazons: {group}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Grupas diapazons {group} pārsniedz pieļaujamo daudzumu ({expected_quantity})" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Nederīga grupas secība: {group}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Netika atrasts neviens sērijas numurs" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Unikālo sērijas numuru skaitam ({len(serials)}) jāatbilst daudzumam ({expected_quantity})" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Noņemiet HTML tagus no šīs vērtības" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Savienojuma kļūda" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Serveris atbildēja ar nederīgu statusa kodu" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Radās izņēmums" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Serveris atbildēja ar nederīgu Content-Length vērtību" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Attēla izmērs ir pārāk liels" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Attēla lejupielāde pārsniedz maksimālo izmēru" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Attālais serveris atgrieza tukšu atbildi" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "Norādītajā URL nav derīgs attēla fails" @@ -366,158 +366,158 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,17 +726,17 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "" @@ -789,72 +789,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" @@ -1260,7 +1260,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "" @@ -1270,21 +1270,21 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "" @@ -1508,7 +1508,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1584,13 +1584,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "" @@ -1600,22 +1600,22 @@ msgstr "" msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,7 +1633,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" @@ -1684,7 +1684,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "" @@ -1696,7 +1696,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1707,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1786,16 +1786,16 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" @@ -1875,8 +1875,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,11 +1890,11 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -2037,15 +2037,15 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,362 +2103,370 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "" msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3957,27 +3965,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4228,26 +4236,26 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,16 +4534,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "" @@ -4734,7 +4742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "" @@ -5203,7 +5211,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" @@ -5224,9 +5232,9 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" @@ -5239,26 +5247,26 @@ msgstr "" msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "" @@ -5286,7 +5294,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "" @@ -5310,365 +5318,365 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6056,12 +6064,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6175,8 +6183,8 @@ msgstr "" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "" @@ -6272,21 +6280,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6306,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6319,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6331,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6355,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,13 +6384,17 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" @@ -6489,13 +6501,13 @@ msgstr "" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6516,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7302,338 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7679,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7785,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7870,15 +7883,15 @@ msgstr "" msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "" @@ -7937,7 +7950,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +7960,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +7972,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8171,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8345,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8454,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8526,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9160,7 +9213,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,7 +9226,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9299,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9332,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9357,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9372,316 +9425,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "" @@ -9971,7 +10024,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "" @@ -10027,7 +10080,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "" @@ -10047,7 +10100,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10161,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10169,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "" @@ -10321,7 +10374,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10386,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11007,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11811,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "" @@ -11948,7 +12001,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12021,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12076,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,12 +12124,12 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "" @@ -12129,13 +12182,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12196,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12749,39 +12802,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +12919,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12931,358 +12984,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13719,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13887,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "" @@ -13891,18 +13945,14 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "" @@ -13951,432 +14001,432 @@ msgstr "" msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "" diff --git a/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po index 24a42c0386..3f66da9e20 100644 --- a/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Language: nl_NL\n" @@ -56,29 +56,29 @@ msgstr "Error details kunnen worden gevonden in het admin scherm" msgid "Enter date" msgstr "Voer datum in" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "Opmerkingen" @@ -135,74 +135,74 @@ msgstr "Het ingevoerde e-maildomein is niet goedgekeurd." msgid "Registration is disabled." msgstr "Registratie is uitgeschakeld." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "Ongeldige hoeveelheid ingevoerd" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Leeg serienummer" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Duplicaat serienummer" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Geen serienummers gevonden" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Verwijder HTML tags van deze waarde" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Verbindingsfout" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Server reageerde met ongeldige statuscode" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Uitzondering opgetreden" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Server reageerde met ongeldige Content-Length waarde" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Afbeeldingsformaat is te groot" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Beelddownload overschrijdt de maximale grootte" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Externe server heeft lege reactie teruggegeven" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "Opgegeven URL is geen geldig afbeeldingsbestand" @@ -366,158 +366,158 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "Metadata moeten een python dict object zijn" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "JSON metadata veld, voor gebruik door externe plugins" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Onjuist opgemaakt patroon" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "Onbekende opmaaksleutel gespecificeerd" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "Vereiste opmaaksleutel ontbreekt" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Referentieveld mag niet leeg zijn" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "Referentie moet overeenkomen met verplicht patroon" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Referentienummer is te groot" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "Dubbele namen kunnen niet bestaan onder hetzelfde bovenliggende object" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Ongeldige keuze" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "Naam" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "Omschrijving" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "Omschrijving (optioneel)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "Pad" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "Markdown notitie (optioneel)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Streepjescode gegevens" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Streepjescode van derden" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "Hash van Streepjescode" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Unieke hash van barcode gegevens" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Bestaande barcode gevonden" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Serverfout" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "Er is een fout gelogd door de server." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "Moet een geldig nummer zijn" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "URL van extern afbeeldingsbestand" msgid "Downloading images from remote URL is not enabled" msgstr "Afbeeldingen van externe URL downloaden is niet ingeschakeld" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "Achtergrondwerker check is gefaald" @@ -726,17 +726,17 @@ msgstr "Over InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Productie moet geannuleerd worden voordat het kan worden verwijderd" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "Verbruiksartikelen" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "Optioneel" msgid "Tracked" msgstr "Gevolgd" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "Toegewezen" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "Beschikbaar" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "Productieorder" @@ -789,72 +789,72 @@ msgstr "Productieorder" msgid "Build Orders" msgstr "Productieorders" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "Ongeldige keuze voor bovenliggende productie" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "Productieorderreferentie" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Referentie" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "Korte beschrijving van de build (optioneel)" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Bovenliggende Productie" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "Productieorder waar deze productie aan is toegewezen" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "Productieorder waar deze productie aan is toegewezen" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "Onderdeel" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "Selecteer onderdeel om te produceren" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Verkooporder Referentie" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "Verkooporder waar deze productie aan is toegewezen" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Bronlocatie" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Selecteer de locatie waar de voorraad van de productie vandaan moet komen (laat leeg om vanaf elke standaard locatie te nemen)" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "Bestemmings Locatie" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Selecteer locatie waar de voltooide items zullen worden opgeslagen" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "Productiehoeveelheid" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Aantal voorraaditems om te produceren" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "Voltooide voorraadartikelen" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Aantal voorraadartikelen die zijn voltooid" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "Productiestatus" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "Productiestatuscode" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "Batchcode" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "Batchcode voor deze productieuitvoer" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Aanmaakdatum" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "Verwachte opleveringsdatum" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Doeldatum voor productie voltooiing. Productie zal achterstallig zijn na deze datum." -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "Opleveringsdatum" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "voltooid door" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "Uitgegeven door" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "Gebruiker die de productieorder heeft gegeven" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "Verantwoordelijke" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "Gebruiker of groep verantwoordelijk voor deze bouwopdracht" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Externe Link" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "Link naar externe URL" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "Bouw prioriteit" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "Prioriteit van deze bouwopdracht" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "Prioriteit van deze bouwopdracht" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "Project code voor deze build order" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "Productieorder {build} is voltooid" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "Een productieorder is voltooid" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "Geen productie uitvoer opgegeven" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "Productie uitvoer is al voltooid" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "Productuitvoer komt niet overeen met de Productieorder" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "Hoeveelheid moet groter zijn dan nul" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "Hoeveelheid kan niet groter zijn dan aantal" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "Bouw object" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "Bouw object" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "Hoeveelheid" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "Vereiste hoeveelheid voor bouwopdracht" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Productieartikel moet een productieuitvoer specificeren, omdat het hoofdonderdeel gemarkeerd is als traceerbaar" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Toegewezen hoeveelheid ({q}) mag de beschikbare voorraad ({a}) niet overschrijden" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "Voorraad item is te veel toegewezen" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "Toewijzing hoeveelheid moet groter zijn dan nul" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "Hoeveelheid moet 1 zijn voor geserialiseerde voorraad" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "Geselecteerde voorraadartikelen komen niet overeen met de BOM-regel" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "Voorraadartikel" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "Bron voorraadartikel" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "Voorraad hoeveelheid toe te wijzen aan productie" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "Installeren in" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "Bestemming voorraadartikel" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "Onderdeel naam" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "Productieuitvoer" @@ -1260,7 +1260,7 @@ msgstr "Geheel getal vereist omdat de stuklijst traceerbare onderdelen bevat" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Serienummers" @@ -1270,21 +1270,21 @@ msgstr "Voer serienummers in voor productieuitvoeren" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "Locatie" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "Locatie van voltooide productieuitvoeren" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "" @@ -1508,7 +1508,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "Fabrikant artikel nummer (MPN)" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "Onderdeel-id" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "Serienummer" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1584,13 +1584,13 @@ msgstr "Volgbaar" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "Stuklijstartikel" @@ -1600,22 +1600,22 @@ msgstr "Stuklijstartikel" msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "In bestelling" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,7 +1633,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" @@ -1684,7 +1684,7 @@ msgstr "Miniatuurweergave van onderdeel" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "Barcode acties" @@ -1696,7 +1696,7 @@ msgstr "Barcode acties" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "QR-code weergeven" @@ -1707,7 +1707,7 @@ msgstr "QR-code weergeven" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "Barcode loskoppelen" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "Koppel Barcode" @@ -1786,16 +1786,16 @@ msgstr "Voorraad is niet volledig toegewezen aan deze productieorder" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "Voltooide Uitvoeren" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "Voltooide Uitvoeren" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "Verkooporder" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "Uitgegeven door" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "Prioriteit" @@ -1875,8 +1875,8 @@ msgstr "Voorraadbron" msgid "Stock can be taken from any available location." msgstr "Voorraad kan worden genomen van elke beschikbare locatie." -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "Bestemming" @@ -1890,11 +1890,11 @@ msgstr "Toegewezen Onderdelen" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "Gecreëerd" @@ -2037,15 +2037,15 @@ msgstr "Artikelen" msgid "Incomplete Outputs" msgstr "Onvolledige Productieuitvoeren" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,362 +2103,370 @@ msgstr "{name.title()} Bestand" msgid "Select {name} file to upload" msgstr "Kies {name} bestand om te uploaden" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "Bijgewerkt" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "Tijdstempel van laatste update" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "Unieke projectcode" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "Projectbeschrijving" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "Instellingssleutel (moet uniek zijn - hoofdletter ongevoelig)" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "Instellingswaarde" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "Gekozen waarde is geen geldige optie" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "Waarde moet een booleaanse waarde zijn" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "Waarde moet een geheel getal zijn" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "Sleutelreeks moet uniek zijn" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "Geen groep" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "Opnieuw opstarten vereist" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "Een instelling is gewijzigd waarvoor een herstart van de server vereist is" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "Migraties in behandeling" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "ID Serverinstantie" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "Stringbeschrijving voor de server instantie" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "Gebruik de instantie naam" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "Gebruik de naam van de instantie in de titelbalk" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "Tonen `over` beperken" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "Toon de `over` modal alleen aan superusers" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "Bedrijfsnaam" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "Interne bedrijfsnaam" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "Basis-URL" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "Basis URL voor serverinstantie" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "Standaard Valuta" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "Selecteer basisvaluta voor de berekening van prijzen" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "dagen" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "Download van URL" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "Download van afbeeldingen en bestanden vanaf een externe URL toestaan" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "Download limiet" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "Maximale downloadgrootte voor externe afbeelding" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "User-agent gebruikt om te downloaden van URL" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Sta toe om de user-agent te overschrijven die gebruikt wordt om afbeeldingen en bestanden van externe URL te downloaden (laat leeg voor de standaard)" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "Bevestiging vereist" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "Vereis expliciete bevestiging van de gebruiker voor bepaalde actie." -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "Boomstructuur Diepte" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Standaard diepte voor treeview. Diepere niveaus kunnen geladen worden wanneer ze nodig zijn." -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "Interval voor update" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "Hoe vaak te controleren op updates (nul om uit te schakelen)" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "Automatische backup" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "Automatische back-up van database- en mediabestanden inschakelen" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "Automatische backup interval" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "Geef het aantal dagen op tussen geautomatiseerde backup" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "Interval Taak Verwijderen" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "Resultaten van achtergrondtaken worden verwijderd na het opgegeven aantal dagen" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "Error Log Verwijderings Interval" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "Resultaten van achtergrondtaken worden verwijderd na het opgegeven aantal dagen" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "Interval Verwijderen Notificatie" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "Meldingen van gebruikers worden verwijderd na het opgegeven aantal dagen" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Streepjescodeondersteuning" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "Barcode Invoer Vertraging" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "Barcode invoerverwerking vertraging" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "Barcode Webcam Ondersteuning" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "Barcode via webcam scannen in browser toestaan" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "Herzieningen onderdeel" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "Revisieveld voor onderdeel inschakelen" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "Herzieningen onderdeel" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "Revisieveld voor onderdeel inschakelen" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "Regulier expressiepatroon voor het overeenkomende Onderdeel IPN" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "Duplicaat IPN toestaan" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "Toestaan dat meerdere onderdelen dezelfde IPN gebruiken" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "Bewerken IPN toestaan" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "Sta het wijzigen van de IPN toe tijdens het bewerken van een onderdeel" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "Kopieer Onderdeel Stuklijstgegevens" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "Kopieer standaard stuklijstgegevens bij het dupliceren van een onderdeel" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "Kopieer Onderdeel Parametergegevens" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "Parametergegevens standaard kopiëren bij het dupliceren van een onderdeel" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "Kopieer Onderdeel Testdata" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "Testdata standaard kopiëren bij het dupliceren van een onderdeel" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "Kopiëer Categorieparameter Sjablonen" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "Kopieer categorieparameter sjablonen bij het aanmaken van een onderdeel" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "Kopieer categorieparameter sjablonen bij het aanmaken van een onderdeel" msgid "Template" msgstr "Sjabloon" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "Onderdelen zijn standaard sjablonen" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "Samenstelling" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "Onderdelen kunnen standaard vanuit andere componenten worden samengesteld" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "Onderdelen kunnen standaard worden gebruikt als subcomponenten" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "Koopbaar" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "Onderdelen kunnen standaard gekocht worden" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "Verkoopbaar" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "Onderdelen kunnen standaard verkocht worden" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "Onderdelen kunnen standaard gevolgd worden" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "Virtueel" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "Onderdelen zijn standaard virtueel" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "Toon Import in Weergaven" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "Toon de importwizard in sommige onderdelenweergaven" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "Verwante onderdelen tonen" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "Verwante onderdelen voor een onderdeel tonen" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "Initiële voorraadgegevens" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "Aanmaken van eerste voorraad toestaan bij het toevoegen van een nieuw onderdeel" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "Initiële leveranciergegevens" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Aanmaken van eerste leveranciersgegevens toestaan bij het toevoegen van een nieuw onderdeel" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "Onderdelennaam Weergaveopmaak" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "Opmaak om de onderdeelnaam weer te geven" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "Standaardicoon voor onderdeel catagorie" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "Standaardicoon voor onderdeel catagorie (leeg betekent geen pictogram)" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "Forceer Parameter Eenheden" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "Als er eenheden worden opgegeven, moeten parameterwaarden overeenkomen met de opgegeven eenheden" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "Minimaal aantal prijs decimalen" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Minimaal aantal decimalen om weer te geven bij het weergeven van prijsgegevens" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "Maximum prijs decimalen" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "Maximum aantal decimalen om weer te geven bij het weergeven van prijsgegevens" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "Gebruik leveranciersprijzen" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Prijsvoordelen leveranciers opnemen in de totale prijsberekening" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "Aankoopgeschiedenis overschrijven" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Historische order prijzen overschrijven de prijzen van de leverancier" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "Gebruik voorraaditem prijzen" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Gebruik prijzen van handmatig ingevoerde voorraadgegevens voor prijsberekeningen" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "Voorraad artikelprijs leeftijd" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Voorraaditems ouder dan dit aantal dagen uitsluiten van prijsberekeningen" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "Gebruik variantprijzen" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "Variantenprijzen opnemen in de totale prijsberekening" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "Alleen actieve varianten" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "Gebruik alleen actieve variantonderdelen voor het berekenen van variantprijzen" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "Prijzen Herbouw interval" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "Aantal dagen voordat de prijzen voor onderdelen automatisch worden bijgewerkt" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "Interne Prijzen" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "Inschakelen van interne prijzen voor onderdelen" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "Interne prijs overschrijven" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "Indien beschikbaar, interne prijzen overschrijven berekeningen van prijsbereik" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "Printen van labels Inschakelen" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "Printen van labels via de webinterface inschakelen" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "Label Afbeelding DPI" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "DPI resolutie bij het genereren van afbeelginsbestanden voor label printer plugins" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "Activeer Rapportages" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "Activeer het genereren van rapporten" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "Foutopsporingsmodus" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "Rapporten genereren in debug modus (HTML uitvoer)" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "Paginagrootte" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "Standaard paginagrootte voor PDF rapporten" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "Activeer Testrapporten" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "Activeer het genereren van testrapporten" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "Testrapporten Toevoegen" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "Bij het afdrukken van een Testrapport, voeg een kopie van het Testrapport toe aan het bijbehorende Voorraadartikel" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "Globaal unieke serienummers" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "Serienummers voor voorraaditems moeten globaal uniek zijn" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "Serienummers automatisch invullen" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "Automatisch invullen van serienummer in formulieren" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "Verwijder uitgeputte voorraad" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "Batchcode Sjabloon" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "Sjabloon voor het genereren van standaard batchcodes voor voorraadartikelen" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "Verlopen Voorraad" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "Verlopen voorraad functionaliteit inschakelen" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "Verkoop Verlopen Voorraad" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "Verkoop verlopen voorraad toestaan" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "Voorraad Vervaltijd" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "Aantal dagen voordat voorraadartikelen als verouderd worden beschouwd voor ze verlopen" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "Produceer Verlopen Voorraad" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "Sta productie met verlopen voorraad toe" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "Voorraad Eigenaar Toezicht" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "Eigenaarstoezicht over voorraadlocaties en items inschakelen" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "Voorraadlocatie standaard icoon" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "Standaard locatie pictogram (leeg betekent geen icoon)" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "Geïnstalleerde voorraad items weergeven" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "Geïnstalleerde voorraadartikelen in voorraadtabellen tonen" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "Productieorderreferentiepatroon" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "Vereist patroon voor het genereren van het Bouworderreferentieveld" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "Retourorders inschakelen" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "Retourorder functionaliteit inschakelen in de gebruikersinterface" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "Retourorder referentie patroon" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "Bewerk voltooide retourorders" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "Bewerken van retourorders toestaan nadat deze zijn voltooid" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "Verkooporderreferentiepatroon" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "Vereist patroon voor het genereren van het Verkooporderreferentieveld" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "Standaard Verzending Verkooporder" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "Aanmaken standaard verzending bij verkooporders inschakelen" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "Bewerk voltooide verkooporders" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Bewerken van verkooporders toestaan nadat deze zijn verzonden of voltooid" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "Inkooporderreferentiepatroon" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "Vereist patroon voor het genereren van het Inkooporderreferentieveld" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "Bewerk voltooide verkooporders" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Bewerken van inkooporders toestaan nadat deze zijn verzonden of voltooid" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "Wachtwoord vergeten functie inschakelen" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "Wachtwoord vergeten functie inschakelen op de inlogpagina's" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "Registratie inschakelen" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "Zelfregistratie voor gebruikers op de inlogpagina's inschakelen" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "SSO inschakelen" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "SSO inschakelen op de inlogpagina's" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "Schakel gebruikersregistratie met SSO in" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Zelfregistratie voor gebruikers middels SSO op de inlogpagina's inschakelen" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "E-mailadres verplicht" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "Vereis gebruiker om e-mailadres te registreren bij aanmelding" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "SSO-gebruikers automatisch invullen" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "Gebruikersdetails van SSO-accountgegevens automatisch invullen" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "E-mail twee keer" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "Bij inschrijving gebruikers twee keer om hun e-mail vragen" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "Wachtwoord tweemaal" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "Laat gebruikers twee keer om hun wachtwoord vragen tijdens het aanmelden" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "Toegestane domeinen" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Inschrijven beperken tot bepaalde domeinen (komma-gescheiden, beginnend met @)" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "Groep bij aanmelding" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "MFA afdwingen" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "Gebruikers moeten multifactor-beveiliging gebruiken." -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "Controleer plugins bij het opstarten" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Controleer of alle plug-ins zijn geïnstalleerd bij het opstarten - inschakelen in container-omgevingen" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "Activeer URL-integratie" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "Plugins toestaan om URL-routes toe te voegen" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "Activeer navigatie integratie" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "Plugins toestaan om te integreren in navigatie" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "Activeer app integratie" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "Activeer plug-ins om apps toe te voegen" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "Activeer planning integratie" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "Activeer plugin om periodiek taken uit te voeren" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "Activeer evenement integratie" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "Activeer plugin om op interne evenementen te reageren" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "Activeer project codes" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "Activeer project codes voor het bijhouden van projecten" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "Voorraadcontrole functionaliteit" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Schakel voorraadfunctionaliteit in voor het opnemen van voorraadniveaus en het berekenen van voorraadwaarde" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "Externe locaties uitsluiten" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Voorraadartikelen op externe locaties uitsluiten van voorraadberekeningen" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "Automatische Voorraadcontrole Periode" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Aantal dagen tussen automatische voorraadopname (ingesteld op nul om uit te schakelen)" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "Rapport Verwijdering Interval" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Voorraadrapportage zal worden verwijderd na het opgegeven aantal dagen" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "Instellingssleutel (moet uniek zijn - hoofdletter ongevoelig" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "Inactieve Onderdelen Verbergen" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Verberg inactieve delen bij items op de homepage" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "Toon geabonneerde onderdelen" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "Toon geabonneerde onderdelen op de homepage" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "Toon geabonneerde categorieën" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "Toon geabonneerde onderdeel categorieën op de startpagina" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "Toon laatste onderdelen" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "Toon laatste onderdelen op de startpagina" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "Laat BOMs zien die wachten op validatie op de startpagina" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "Toon recente voorraadwijzigingen" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "Toon recent aangepaste voorraadartikelen op de startpagina" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "Toon lage voorraad" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "Toon lage voorraad van artikelen op de startpagina" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "Toon lege voorraad" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "Toon lege voorraad van artikelen op de startpagina" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "Toon benodigde voorraad" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "Toon benodigde voorraad van artikelen voor productie op de startpagina" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "Toon verlopen voorraad" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "Toon verlopen voorraad van artikelen op de startpagina" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "Toon verouderde voorraad" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "Toon verouderde voorraad van artikelen op de startpagina" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "Toon openstaande producties" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "Toon openstaande producties op de startpagina" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "Toon achterstallige productie" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "Toon achterstallige producties op de startpagina" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "Toon uitstaande PO's" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "Toon uitstaande PO's op de startpagina" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "Toon achterstallige PO's" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "Toon achterstallige PO's op de startpagina" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "Toon uitstaande SO's" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "Toon uitstaande SO's op de startpagina" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "Toon achterstallige SO's" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "Toon achterstallige SO's op de startpagina" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "Toon in behandeling SO verzendingen" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "Toon in behandeling zijnde SO verzendingen op de startpagina" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "Nieuws tonen" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "Nieuws op de startpagina weergeven" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "Inline labelweergave" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "PDF-labels in browser weergeven, in plaats van als bestand te downloaden" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "Standaard label printer" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "Instellen welke label printer standaard moet worden geselecteerd" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "Inline rapport weergeven" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "PDF-rapporten in de browser weergeven, in plaats van als bestand te downloaden" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "Zoek Onderdelen" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "Onderdelen weergeven in zoekscherm" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "Zoek leveranciersonderdelen" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "Leveranciersonderdelen weergeven in zoekscherm" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "Fabrikant onderdelen zoeken" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "Fabrikant onderdelen weergeven in zoekscherm" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "Inactieve Onderdelen Verbergen" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "Inactieve verkooporders weglaten in het zoekvenster" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "Zoek categorieën" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "Toon onderdeelcategorieën in zoekvenster" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "Zoek in Voorraad" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "Toon voorraad items in zoekvenster" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "Verberg niet beschikbare voorraad items" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "Voorraadartikelen die niet beschikbaar zijn niet in het zoekvenster weergeven" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "Locaties doorzoeken" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "Toon voorraadlocaties in zoekvenster" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "Zoek bedrijven" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "Toon bedrijven in zoekvenster" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "Zoek Bouworders" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "Toon bouworders in zoekvenster" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "Inkooporders Zoeken" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "Toon inkooporders in het zoekvenster" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "Inactieve Inkooporders Weglaten" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "Inactieve inkooporders weglaten in het zoekvenster" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "Verkooporders zoeken" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "Toon verkooporders in het zoekvenster" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "Inactieve Verkooporders Weglaten" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "Inactieve verkooporders weglaten in het zoekvenster" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "Zoek retourorders" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "Toon bouworders in zoekvenster" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "Inactieve retourbestellingen weglaten" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "Inactieve retourorders uitsluiten in zoekvenster" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "Zoekvoorbeeld resultaten" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "Aantal resultaten om weer te geven in elk gedeelte van het zoekvenster" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "Regex zoeken" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "Schakel reguliere expressies in zoekopdrachten in" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "Hele woorden zoeken" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "Zoekopdrachten geven resultaat voor hele woord overeenkomsten" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "Toon hoeveelheid in formulieren" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "Hoeveelheid beschikbare onderdelen in sommige formulieren weergeven" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "Escape-toets sluit formulieren" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "Gebruik de Escape-toets om standaard formulieren te sluiten" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "Vaste navigatiebalk" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "De navigatiebalk positie is gefixeerd aan de bovenkant van het scherm" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "Datum formaat" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "Voorkeursindeling voor weergave van datums" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Onderdeel planning" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "Toon informatie voor het plannen van onderdelen" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Voorraadcontrole onderdeel" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Toon voorraadinformatie van onderdeel (als voorraadcontrole functionaliteit is ingeschakeld)" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "Tabel tekenreekslengte" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "Foutrapportages ontvangen" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "Meldingen ontvangen van systeemfouten" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "Gebruiker" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Prijs" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "Eindpunt" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "Eindpunt waarop deze webhook wordt ontvangen" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "Naam van deze webhook" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "Is deze webhook actief" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "Token voor toegang" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "Geheim" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "Gedeeld geheim voor HMAC" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "Bericht ID" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "Koptekst" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "Koptekst van dit bericht" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "Berichtinhoud" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "Inhoud van dit bericht" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "Aan gewerkt" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Titel" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "Gepubliceerd" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "Samenvatting" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "Gelezen" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "" msgid "Image" msgstr "Afbeelding" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "Afbeelding" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Symbool" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definitie" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Bijlage" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "Ontbrekend bestand" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Externe link ontbreekt" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Bestand als bijlage selecteren" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Opmerking" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3957,27 +3965,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "Een leeg domein is niet toegestaan." -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Ongeldige domeinnaam: {domain}" @@ -4228,26 +4236,26 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Fabrikant onderdeel" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Basis onderdeel" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "Onderdeel selecteren" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "Onderdeel selecteren" msgid "Manufacturer" msgstr "Fabrikant" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "Fabrikant selecteren" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "URL voor externe link van het fabrikant onderdeel" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "Omschrijving onderdeel fabrikant" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "Parameternaam" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "Waarde" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "Parameterwaarde" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "Eenheden" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "Parameter eenheden" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "Leveranciersonderdeel" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "Gekoppeld fabrikant onderdeel moet verwijzen naar hetzelfde basis onderdeel" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "Leverancier" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "Leverancier selecteren" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "Selecteer fabrikant onderdeel" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "" msgid "Note" msgstr "Opmerking" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "basisprijs" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimale kosten (bijv. voorraadkosten)" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "meerdere" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "Order meerdere" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,16 +4534,16 @@ msgstr "Afbeelding downloaden van URL" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "Klant" @@ -4734,7 +4742,7 @@ msgstr "Geen fabrikanten informatie beschikbaar" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "Geen leveranciersinformatie beschikbaar" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "Nieuw voorraadartikel aanmaken" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "Nieuw Voorraadartikel" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "Voorraadartikelen" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "" @@ -5203,7 +5211,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "Totaalprijs" @@ -5224,9 +5232,9 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" @@ -5239,26 +5247,26 @@ msgstr "" msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "Inkooporder" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "" @@ -5286,7 +5294,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "Link naar externe pagina" @@ -5310,365 +5318,365 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "Orderreferentie" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "Inkooporder status" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "Bedrijf waar de artikelen van worden besteld" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "Leveranciersreferentie" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "Order referentiecode van leverancier" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "ontvangen door" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "Datum van uitgifte" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "Order uitgegeven op datum" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "Order voltooid op datum" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "Onderdeelleverancier moet overeenkomen met de Inkooporderleverancier" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "Hoeveelheid moet een positief getal zijn" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "Bedrijf waaraan de artikelen worden verkocht" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "Klantreferentie " -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "Klant order referentiecode" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "Verzenddatum" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "verzonden door" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Bestelling kan niet worden voltooid omdat er onvolledige verzendingen aanwezig zijn" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "Order kan niet worden voltooid omdat er onvolledige artikelen aanwezig zijn" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "Hoeveelheid artikelen" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "Artikelregel referentie" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "Artikel notities" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "Additionele context voor deze regel" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "Stukprijs" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "Leveranciersonderdeel moet overeenkomen met leverancier" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "verwijderd" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "Leveranciersonderdeel" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "Ontvangen" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "Aantal ontvangen artikelen" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "Inkoopprijs" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "Aankoopprijs per stuk" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "Waar wil de inkoper dat dit artikel opgeslagen wordt?" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "Virtueel onderdeel kan niet worden toegewezen aan een verkooporder" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "Alleen verkoopbare onderdelen kunnen aan een verkooporder worden toegewezen" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Verkoopprijs" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "Prijs per stuk" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Verzonden" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "Verzonden hoeveelheid" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "Datum van verzending" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "Gecontroleerd door" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "Gebruiker die deze zending gecontroleerd heeft" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "Zending" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "Zendingsnummer" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "Volgnummer" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "Zending volginformatie" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "Factuurnummer" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "Referentienummer voor bijbehorende factuur" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "Verzending is al verzonden" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "Zending heeft geen toegewezen voorraadartikelen" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "Voorraadartikel is niet toegewezen" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "Kan het voorraadartikel niet toewijzen aan een regel met een ander onderdeel" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "Kan voorraad niet toewijzen aan een regel zonder onderdeel" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Toewijzingshoeveelheid kan niet hoger zijn dan de voorraadhoeveelheid" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "Hoeveelheid moet 1 zijn voor geserialiseerd voorraadartikel" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "Verkooporder komt niet overeen met zending" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "Verzending komt niet overeen met verkooporder" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "Regel" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "Verzendreferentie verkooporder" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "Artikel" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "Selecteer voorraadartikel om toe te wijzen" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "Voer voorraadtoewijzingshoeveelheid in" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "Intern Onderdeelnummer" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "Selecteer bestemmingslocatie voor ontvangen artikelen" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6056,12 +6064,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Rij verwijderen" @@ -6175,8 +6183,8 @@ msgstr "Klantreferentie" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "Verzendingen in behandeling" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "Acties" @@ -6272,21 +6280,21 @@ msgstr "{part} stukprijs bijgewerkt naar {price}" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "{part} stukprijs bijgewerkt naar {price} en aantal naar {qty}" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6306,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6319,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6331,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6355,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "Onderdelen" @@ -6376,13 +6384,17 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" @@ -6489,13 +6501,13 @@ msgstr "" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "Standaard locatie" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Totale Voorraad" @@ -6504,784 +6516,785 @@ msgstr "Totale Voorraad" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Onderdeel Categorie" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Onderdeel Categorieën" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "Standaard locatie voor onderdelen in deze categorie" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "Onderdelen mogen niet rechtstreeks aan een structurele categorie worden toegewezen, maar kunnen worden toegewezen aan subcategorieën." -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "Onderdeel naam" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "Onderdeel Categorie" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "Standaardleverancier" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "Eenheden voor dit onderdeel" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "Onderdeel voor voorraadcontrole" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "Datum" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "Aantal onderdelen" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "Ingeschakeld" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "De template van de parameter moet uniek zijn" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "Parameternaam" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "Parameterwaarde" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "Standaard Parameter Waarde" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7302,338 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "Geen onderdelen geselecteerd" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "Afbeelding kopiëren" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "Afbeelding kopiëren van het oorspronkelijke onderdeel" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "Parameters kopiëren" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "Parameter data kopiëren van het originele onderdeel" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "Ongeldige hoeveelheid" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7679,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "Categorie bewerken" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "Categorie bewerken" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "Categorie verwijderen" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "Categorie verwijderen" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "Onderdeel Parameters" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "Nieuwe Categorie" @@ -7772,7 +7785,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7870,15 +7883,15 @@ msgstr "" msgid "Part Manufacturers" msgstr "Onderdeelfabrikanten" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "" @@ -7937,7 +7950,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "Label afdrukken" @@ -7947,7 +7960,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "Voorraad acties" @@ -7959,7 +7972,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "Voorraad" @@ -8158,7 +8171,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8345,108 @@ msgstr "Geen actie gespecificeerd" msgid "No matching action found" msgstr "Geen overeenkomende actie gevonden" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "Geen overeenkomst gevonden voor streepjescodegegevens" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "Overeenkomst gevonden voor streepjescodegegevens" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "Onvoldoende voorraad beschikbaar" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8454,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8526,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9160,7 +9213,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "Stukprijs" @@ -9173,7 +9226,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "Totaal" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9299,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9332,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9357,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9372,316 +9425,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Voorraadlocatie" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Voorraadlocaties" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "Inkooporder Bron" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "Inkooporder voor dit voorraadartikel" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "Bestemming Verkooporder" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "Voorraadartikel is toegewezen aan een verkooporder" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Sublocaties" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "" @@ -9971,7 +10024,7 @@ msgstr "In quarantaine geplaatst" msgid "Legacy stock tracking entry" msgstr "Verouderde volgcode" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "Voorraaditem gemaakt" @@ -10027,7 +10080,7 @@ msgstr "Splits van bovenliggend item" msgid "Split child item" msgstr "Splits onderliggende item" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "Samengevoegde voorraadartikelen" @@ -10047,7 +10100,7 @@ msgstr "Product voltooid" msgid "Build order output rejected" msgstr "Build order uitvoer afgewezen" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "Verbruikt door productieorder" @@ -10108,7 +10161,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10169,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "Scan naar Locatie" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "Voorraad tellen" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "Voorraad overzetten" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "Product" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "Geen locatie ingesteld" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "" @@ -10321,7 +10374,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10386,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "Locatie acties" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "Bewerk locatie" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "Verwijder locatie" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "U staat niet in de lijst van eigenaars van deze locatie. Deze voorraadlocatie kan niet worden bewerkt." -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "Maak nieuwe voorraadlocatie" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "Nieuwe Locatie" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "Verwijderen" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11007,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "De volgende onderdelen hebben een lage vereiste voorraad" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "Vereiste Hoeveelheid" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11811,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "" @@ -11948,7 +12001,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12021,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12076,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,12 +12124,12 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "" @@ -12129,13 +12182,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12196,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12749,39 +12802,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +12919,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12931,358 +12984,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13719,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13887,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "" @@ -13891,18 +13945,14 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "" @@ -13951,432 +14001,432 @@ msgstr "" msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "" diff --git a/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po index 30dc19509d..1ce0e4ff7d 100644 --- a/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Norwegian\n" "Language: no_NO\n" @@ -56,29 +56,29 @@ msgstr "Feildetaljer kan finnes i admin-panelet" msgid "Enter date" msgstr "Oppgi dato" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "Notater" @@ -135,74 +135,74 @@ msgstr "Det oppgitte e-postdomenet er ikke godkjent." msgid "Registration is disabled." msgstr "Registrering er deaktivert." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "Ugyldig mengde oppgitt" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Tom serienummerstreng" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Duplisert serienummer" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Ugyldig gruppesekvens: {group}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Gruppesekvens {group} overskrider tillatt antall ({expected_quantity})" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Ugyldig gruppesekvens: {group}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Ingen serienummer funnet" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Antall unike serienumre ({len(serials)}) må samsvare med antallet ({expected_quantity})" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Fjern HTML-tagger fra denne verdien" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Tilkoblingsfeil" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Serveren svarte med ugyldig statuskode" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Det har oppstått et unntak" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Serveren svarte med ugyldig \"Content-Length\"-verdi" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Bildestørrelsen er for stor" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Bildenedlasting overskred maksimal størrelse" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Ekstern server returnerte tomt svar" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "Angitt URL er ikke en gyldig bildefil" @@ -366,158 +366,158 @@ msgstr "[{site_name}] Logg inn på appen" msgid "Email" msgstr "E-post" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "Feil under validering av utvidelse" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "Metadata må være et python dict-objekt" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "Utvidelse-metadata" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "JSON-metadatafelt, for bruk av eksterne utvidelser" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Uriktig formatert mønster" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "Ukjent formatnøkkel spesifisert" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "Mangler nødvendig formatnøkkel" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Referansefeltet kan ikke være tomt" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "Referansen må samsvare påkrevd mønster" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Referansenummeret er for stort" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "Duplikatnavn kan ikke eksistere under samme overordnede" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Ugyldig valg" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "Navn" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "Beskrivelse" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "Beskrivelse (valgfritt)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "Sti" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "Markdown-notater (valgfritt)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Strekkodedata" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Tredjeparts strekkodedata" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "Strekkode-hash" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Unik hash av strekkodedata" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Eksisterende strekkode funnet" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Serverfeil" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "En feil har blitt logget av serveren." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "Må være et gyldig tall" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "URLtil ekstern bildefil" msgid "Downloading images from remote URL is not enabled" msgstr "Nedlasting av bilder fra ekstern URL er ikke aktivert" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "Sjekk av bakgrunnsarbeider mislyktes" @@ -726,17 +726,17 @@ msgstr "Om InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Produksjonen må avbrytes før den kan slettes" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "Forbruksvare" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "Valgfritt" msgid "Tracked" msgstr "Spores" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "Tildelt" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "Tilgjengelig" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "Produksjonsordre" @@ -789,72 +789,72 @@ msgstr "Produksjonsordre" msgid "Build Orders" msgstr "Produksjonsordrer" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "Ugyldig valg for overordnet produksjon" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "Produksjonsordrens del kan ikke endres" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "Produksjonsordre-referanse" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Referanse" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "Kort beskrivelse av produksjonen (valgfritt)" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Overordnet produksjon" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "Produksjonsordre som denne produksjonen er tildelt" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "Produksjonsordre som denne produksjonen er tildelt" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "Del" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "Velg del å produsere" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Salgsordrereferanse" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "Salgsordren denne produksjonen er tildelt til" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Kildeplassering" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Velg plassering å ta lagerbeholdning fra for denne produksjonen (la stå tomt for a ta fra alle lagerplasseringer)" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "Fullført plassering" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Velg plassering der fullførte artikler vil bli lagret" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "Produksjonsmengde" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Antall lagervarer å produsere" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "Fullførte artikler" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Antall lagervarer som er fullført" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "Produksjonsstatus" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "Produksjonsstatuskode" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "Batchkode" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "Batchkode for denne produksjonsartikkelen" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Opprettelsesdato" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "Forventet sluttdato" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Måldato for ferdigstillelse. Produksjonen vil være forfalt etter denne datoen." -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "Fullført dato" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "fullført av" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "Utstedt av" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "Brukeren som utstedte denne produksjonsordren" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "Ansvarlig" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "Bruker eller gruppe ansvarlig for produksjonsordren" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Ekstern lenke" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "Lenke til ekstern URL" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "Produksjonsprioritet" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "Produksjonsordrens prioritet" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "Produksjonsordrens prioritet" msgid "Project Code" msgstr "Prosjektkode" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "Prosjektkode for denne produksjonsordren" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "Produksjonsordre {build} er fullført" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "En produksjonsordre er fullført" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "Ingen produksjonsartikkel spesifisert" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "Produksjonsartikkelen er allerede fullført" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "Produksjonsartikkelen samsvarer ikke med produksjonsordren" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "Mengden må være større enn null" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "Kvantitet kan ikke være større enn utgangsantallet" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "Produksjonsobjekt" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "Produksjonsobjekt" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "Antall" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "Påkrevd antall for produksjonsordre" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Produksjonselement må spesifisere en produksjonsartikkel, da master-del er merket som sporbar" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Tildelt antall ({q}) kan ikke overstige tilgjengelig lagerbeholdning ({a})" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "Lagervaren er overtildelt" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "Tildelingsantall må være større enn null" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "Mengden må være 1 for serialisert lagervare" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "Valgt lagervare samsvarer ikke med BOM-linjen" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "Lagervare" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "Kildelagervare" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "Lagerantall å tildele til produksjonen" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "Monteres i" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "Lagervare for montering" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "Delnavn" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "Produksjonsartikkel" @@ -1260,7 +1260,7 @@ msgstr "Heltallsverdi kreves, da stykklisten inneholder sporbare deler" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Serienummer" @@ -1270,21 +1270,21 @@ msgstr "Angi serienummer for produksjonsartikler" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "Plassering" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "Plassering for ferdige produksjonsartikler" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "" @@ -1508,7 +1508,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "Produsentens varenummer" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "Del-ID" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "Del -IPN" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "Serienummer" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1584,13 +1584,13 @@ msgstr "Sporbar" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "Tillat Varianter" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "BOM-artikkel" @@ -1600,22 +1600,22 @@ msgstr "BOM-artikkel" msgid "Allocated Stock" msgstr "Tildelt lagerbeholdning" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "I bestilling" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "I produksjon" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,7 +1633,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" @@ -1684,7 +1684,7 @@ msgstr "Miniatyrbilde for del" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "Strekkodehandlinger" @@ -1696,7 +1696,7 @@ msgstr "Strekkodehandlinger" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Vis QR-kode" @@ -1707,7 +1707,7 @@ msgstr "Vis QR-kode" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "Fjern strekkodekobling" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "Koble mot strekkode" @@ -1786,16 +1786,16 @@ msgstr "Lagerbeholdning er ikke fullt tildelt til denne Produksjonsordren" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "Fullførte byggeresultater" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "Fullførte byggeresultater" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "Salgsordre" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "Utstedt av" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "Prioritet" @@ -1875,8 +1875,8 @@ msgstr "Lagerkilde" msgid "Stock can be taken from any available location." msgstr "Lagervare kan hentes fra alle tilgengelige plasseringer." -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "Destinasjon" @@ -1890,11 +1890,11 @@ msgstr "Tildelte deler" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "Opprettet" @@ -2037,15 +2037,15 @@ msgstr "Linjeelementer" msgid "Incomplete Outputs" msgstr "Ufullstendige artikler" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,362 +2103,370 @@ msgstr "{name.title()} Fil" msgid "Select {name} file to upload" msgstr "Velg {name} fil som skal lastes opp" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "Oppdatert" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "Tidsstempel for forrige oppdatering" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "Unik prosjektkode" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "Prosjektbeskrivelse" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "Bruker eller gruppe ansvarlig for dette prosjektet" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "Innstillingsnøkkel (må være unik - ufølsom for store of små bokstaver)" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "Innstillings verdi" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "Valgt verdi er ikke et gyldig alternativ" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "Verdien må være en boolsk verdi" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "Verdien må være et heltall" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "Nøkkelstreng må være unik" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "Ingen gruppe" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "Omstart kreves" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "En innstilling har blitt endret som krever en omstart av serveren" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "Ventende migrasjoner" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "Antall ventende databasemigreringer" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "Navn på serverinstans" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "Strengbeskrivelse for serverinstansen" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "Bruk instansnavn" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "Bruk instansnavnet på tittellinjen" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "Begrens visning av 'om'" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "Vis `about`-modal kun til superbrukere" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "Firmanavn" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "Internt firmanavn" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "Base-URL" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "Base-URL for serverinstans" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "Standardvaluta" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "Velg grunnvalutaen for prisberegninger" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "Oppdateringsintervall for valuta" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "Hvor ofte valutakurser skal oppdateres (sett til null for å deaktiverere)" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "dager" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "Valutaoppdaterings-plugin" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "Valgt valutaoppdaterings-plugin" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "Last ned fra URL" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "Tillat nedlastning av eksterne bilder og filer fra ekstern URL" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "Nedlastingsgrense" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "Maksimal tillatt nedlastingsstørrelse for eksternt bilde" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "User-Agent brukt for å laste ned fra URL" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Tillat overstyring av User-Agent brukt for å laste ned bilder og filer fra eksterne URLer (lå stå blank for standard)" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "Streng URL-validering" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "Krev skjemaspesifikasjon ved validering av URLer" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "Krev bekreftelse" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "Krev eksplisitt brukerbekreftelse for visse handlinger." -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "Tredybde" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Standard tredybde for trevisning. Dypere nivåer kan lastes inn ved behov." -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "Intervall for oppdateringssjekk" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "Tidsintervall for å se etter oppdateringer(sett til null for å skru av)" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "Automatisk sikkerhetskopiering" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "Aktiver automatisk sikkerhetskopiering av database og mediafiler" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "Automatisk sikkerhetskopieringsintervall" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "Angi antall dager mellom automatiske sikkerhetskopieringshendelser" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "Slettingsintervall for oppgaver" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "Bakgrunnsoppgaveresultater vil bli slettet etter antall angitte dager" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "Slettingsintervall for feillogg" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "Feilloggene vil bli slettet etter et angitt antall dager" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "Slettingsintervall for varsler" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "Brukervarsler slettes etter angitt antall dager" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Strekkodestøtte" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "Aktiver støtte for strekkodeleser i webgrensesnittet" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "Innlesingsforsinkelse for strekkode" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "Tidsforsinkelse for behandling av strekkode" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "Støtte for strekkodewebkamera" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "Tillat strekkodelesning via webkamera i nettleseren" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 +#: common/models.py:1419 +msgid "Barcode Generation Plugin" +msgstr "" + +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" +msgstr "" + +#: common/models.py:1425 msgid "Part Revisions" msgstr "Delrevisjoner" -#: common/models.py:1407 +#: common/models.py:1426 msgid "Enable revision field for Part" msgstr "Aktiver revisjonsfeltet for Del" -#: common/models.py:1412 +#: common/models.py:1431 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1413 +#: common/models.py:1432 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1418 +#: common/models.py:1437 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1419 +#: common/models.py:1438 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1424 +#: common/models.py:1443 msgid "IPN Regex" msgstr "IPN regex" -#: common/models.py:1425 +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "Regulært uttrykksmønster for matching av internt delnummer" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "Tilat duplikat av internt delnummer" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "Tillat flere deler å dele samme interne delnummer" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "Tillat redigering av internt delnummer" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "Tillat endring av IPN-verdien mens du redigerer en del" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "Kopier BOM-data fra del" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "Kopier BOM-data som standard når du dupliserer en del" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "Kopier parameterdata fra del" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "Kopier parameterdata som standard ved duplisering av en del" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "Kopier testdata fra del" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "Kopier testdata som standard ved duplisering av en del" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "Kopier designmaler for kategoriparametere" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "Kopier parametermaler for kategori ved oppretting av en del" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "Kopier parametermaler for kategori ved oppretting av en del" msgid "Template" msgstr "Mal" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "Deler er maler som standard" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "Sammenstilling" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "Deler kan settes sammen fra andre komponenter som standard" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "Komponent" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "Deler kan bli brukt som underkomponenter som standard" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "Kjøpbar" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "Deler er kjøpbare som standard" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "Salgbar" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "Deler er salgbare som standard" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "Deler er sporbare som standard" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "Virtuelle" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "Deler er virtuelle som standard" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "Vis import i visninger" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "Vis importveiviseren i noen deler visninger" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "Vis relaterte deler" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "Vis relaterte deler i en del" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "Innledende lagerbeholdningsdata" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "Tillat oppretting av innledende lagerbeholdning når en ny del opprettes" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "Innledende leverandørdata" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Tillat oppretting av innledende leverandørdata når en ny del opprettes" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "Visningsformat for delnavn" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "Format for å vise delnavnet" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "Standardikon for delkategorier" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "Standardikon for delkategorier (tomt betyr ingen ikon)" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "Tving parameterenheter" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "Hvis det er angitt en enhet, skal parameterverdiene samsvare med de angitte enhetene" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "Minimum antall desimalplasser for priser" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Minimum antall desimalplasser som skal vises når man gjengir prisdata" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "Maksimalt antall desimalplasser for priser" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "Maksimalt antall desimalplasser som skal vises når man gjengir prisdata" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "Bruk leverandørpriser" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Inkluder leverandørprisbrudd i beregninger av totalpriser" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "Innkjøpshistorikkoverstyring" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Historiske innkjøpspriser overstyrer leverandørprisnivåer" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "Bruk lagervarepriser" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Bruk priser fra manuelt innlagte lagervarer for prisberegninger" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "Lagervare prisalder" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Unnta lagervarer som er eldre enn dette antall dager fra prisberegninger" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "Bruk Variantpriser" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "Inkluder variantpriser i beregninger av totale priser" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "Kun aktive varianter" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "Bruk kun aktive variantdeler til beregning av variantprising" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "Intervall for rekalkulering av priser" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "Antall dager før delpriser blir automatisk oppdatert" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "Interne Priser" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "Aktiver interne priser for deler" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "Intern prisoverstyring" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "Hvis tilgjengelig, overstyrer interne priser kalkulering av prisområde" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "Aktiver etikettutskrift" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "Aktiver utskrift av etiketter fra nettleseren" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "Etikettbilde-DPI" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "DPI-oppløsning når når det genereres bildefiler for sending til utvidelser for etikettutskrift" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "Aktiver Rapporter" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "Aktiver generering av rapporter" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "Feilsøkingsmodus" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "Generer rapporter i feilsøkingsmodus (HTML-output)" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "Sidestørrelse" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "Standard sidestørrelse for PDF-rapporter" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "Aktiver Testrapporter" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "Aktiver generering av testrapporter" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "Legg ved testrapporter" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "Når det skrives ut en Testrapport, legg ved en kopi av Testrapporten på den assosierte Lagervaren" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "Globalt Unike Serienummer" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "Serienummer for lagervarer må være globalt unike" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "Automatisk tildeling av Serienummer" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "Aumatisk fyll ut serienummer i skjemaer" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "Slett oppbrukt lagerbeholdning" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "Batchkodemal" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "Mal for generering av standard batchkoder for lagervarer" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "Lagerbeholdning utløper" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "Aktiver funksjonalitet for utløp av lagerbeholdning" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "Selg utløpt lagerbeholdning" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "Tillat salg av utgått lagerbeholdning" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "Foreldet lagerbeholdning tidsintervall" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "Antall dager før lagervarer er ansett som foreldet før utløp" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "Produsér Utløpt Lagerbeholdning" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "Tillat produksjon med utløpt lagerbeholdning" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "Kontroll over eierskap av lagerbeholdning" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "Aktiver eierskap over lagerplasseringer og -varer" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "Lagerplassering standard ikon" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "Lagerplassering standard ikon (tomt betyr ingen ikon)" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "Vis installerte lagervarer" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "Vis installerte lagervarer i lagertabeller" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "Produksjonsordre-referansemønster" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "Nødvendig mønster for å generere Produksjonsordre-referansefeltet" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "Aktiver returordrer" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "Aktiver returordrefunksjonalitet i brukergrensesnittet" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "Returordre-referansemønster" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "Rediger fullførte returordrer" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "Tillat redigering av returordrer etter de er fullført" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "Salgsordre-referansemønster" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "Påkrevd mønster for å generere salgsordrereferansefelt" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "Salgsordre standard fraktmetode" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "Aktiver opprettelse av standard forsendelse med salgsordrer" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "Rediger fullførte salgsordrer" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Tillat redigering av salgsordrer etter de har blitt sendt eller fullført" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "Referansemønster for innkjøpsordre" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "Obligatorisk mønster for generering av referansefelt for innkjøpsordre" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "Rediger fullførte innkjøpsordre" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Tillat redigering av innkjøpsordre etter at de har blitt sendt eller fullført" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "Autofullfør innkjøpsordrer" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "Automatisk merk innkjøpsordre som fullført når alle ordrelinjer er mottatt" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "Aktiver passord glemt" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "Ativer funskjon for glemt passord på innloggingssidene" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "Aktiver registrering" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "Aktiver egenregistrerting for brukerer på påloggingssidene" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "Aktiver SSO" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "Aktiver SSO på innloggingssidene" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "Aktiver SSO-registrering" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Aktiver selvregistrering via SSO for brukere på innloggingssiden" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "E-postadresse kreves" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "Krevt at brukere angir e-post ved registrering" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "Auto-utfyll SSO-brukere" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "Fyll automatisk ut brukeropplysninger fra SSO-kontodata" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "E-post to ganger" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "Spør brukeren om e-post to ganger ved registrering" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "Passord to ganger" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "Spør brukeren om passord to ganger ved registrering" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "Tillatte domener" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Begrens registrering til bestemte domener (kommaseparert, begynner med @)" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "Gruppe ved registrering" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "Krev MFA" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "Brukere må bruke flerfaktorsikkerhet." -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "Sjekk utvidelser ved oppstart" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Sjekk at alle utvidelser er installert ved oppstart - aktiver i containermiljøer" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "Aktiver URL-integrasjon" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "Tillat utvidelser å legge til URL-ruter" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "Aktiver navigasjonsintegrasjon" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "Tillat utvidelser å integrere mot navigasjon" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "Aktiver app-integrasjon" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "Tillat utvidelser å legge til apper" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "Aktiver tidsplanintegrasjon" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "Tillat utvidelser å kjøre planlagte oppgaver" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "Aktiver hendelsesintegrasjon" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "Tillat utvidelser å reagere på interne hendelser" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "Aktiver prosjektkoder" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "Aktiver prosjektkoder for å spore prosjekter" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "Varetellingsfunksjonalitet" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Aktiver varetellingsfunksjonalitet for å registrere lagernivåer og regne ut lagerverdi" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "Ekskluder eksterne plasseringer" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Eksluder lagervarer i eksterne plasseringer fra varetellinger" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "Automatisk varetellingsperiode" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Antall dager mellom automatisk varetellingsregistrering (sett til null for å deaktivere)" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "Rapportslettingsintervall" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Varetellingsrapporter vil slettes etter angitt antall dager" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "Vis brukernes fulle navn" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "Vis brukernes fulle navn istedet for brukernavn" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "Innstillingsnøkkel (må være unik - ufølsom for store og små bokstaver" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "Skjul inaktive elementer" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Skjul inaktive deler i resultater som vises på hjemmesiden" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "Vis abonnerte deler" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "Vis abonnerte deler på startsiden" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "Vis abonnerte kategorier" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "Vis abonnerte delkatekorier på startsiden" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "Vis nyeste deler" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "Vis nyeste deler på startsiden" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "Vis stykklister som venter på validering på startsiden" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "Vis nylige lagerendringer" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "Vis nylig endrede lagervarer på startsiden" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "Vis lav lagerbeholdning" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "Vis lave lagervarer på startsiden" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "Vis tomme lagervarer" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "Vis tom lagerbeholdning på startsiden" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "Vis nødvendig lagerbeholdning" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "Vis lagervarer som trengs for produksjon på startsiden" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "Vis utløpt lagerbeholdning" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "Vis utløpte lagervarer på startsiden" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "Vis foreldet lagerbeholdning" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "Vis foreldet lagerbeholdning på startsiden" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "Vis ventende produksjoner" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "Vi ventende produksjoner på startsiden" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "Vis forfalte produksjoner" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "Vis forfalte produksjoner på startsiden" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "Vis utestående Innkjøpsordrer" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "Vis utestående Innkjøpsordrer på startsiden" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "Vis forfalte Innkjøpsordrer" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "Vis forfalte Innkjøpsordrer på startsiden" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "Vis utestående Salgsordrer" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "Vis utestående Salgsordrer på startsiden" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "Vis forfalte SOer" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "Vis forfalte SOer på startsiden" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "Vis ventende SO-forsendelser" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "Vis ventende SO-forsendelser på startsiden" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "Vis Nyheter" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "Vis nyheter på startsiden" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "Innebygd etikettvisning" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Vis PDF-etiketter i nettleseren fremfor å lastes ned som en fil" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "Standard etikettskriver" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "Konfigurer hvilken etikettskriver som skal være valgt som standard" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "Innebygd rapportvisning" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Vis PDF-rapporter i nettleseren fremfor å lastes ned som en fil" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "Søk i Deler" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "Vis deler i forhåndsvsningsvinduet for søk" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "Søk i Leverandørdeler" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "Vis leverandørdeler i forhåndsvisningsvinduet for søk" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "Søk i Produsentdeler" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "Vis produsentdeler i forhåndsvisningsvinduet for søk" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "Skjul Inaktive Deler" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "Ekskluder inaktive deler fra forhåndsvisningsvinduet for søk" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "Søk i kategorier" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "Vis delkategorier i forhåndsvisningsvinduet for søk" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "Søk i lagerbeholdning" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "Vis lagervarer i forhåndsvisningsvinduet for søk" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "Skjul utilgjengelige Lagervarer" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "Ekskluder lagervarer som ikke er tilgjengelige fra forhåndsvisningsvinduet for søk" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "Søk i Plasseringer" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "Vis lagerplasseringer i forhåndsvisningsvinduet for søk" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "Søk i Firma" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "Vis firma i forhåndsvsningsvinduet for søk" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "Søk i Produksjonsordrer" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "Vis produksjonsordrer i forhåndsvisningsvinduet for søk" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "Søk i Innkjøpsordrer" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "Vis innkjøpsordrer i forhåndsvisningsvinduet for søk" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "Ekskluder inaktive Innkjøpsordrer" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "Ekskluder inaktive innkjøpsordrer fra forhåndsvisningsvinduet for søk" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "Søk i Salgsordrer" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "Vis salgsordrer i forhåndsvisningsvinduet for søk" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "Ekskluder Inaktive Salgsordrer" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "Ekskluder inaktive salgsordrer fra forhåndsvisningsvinduet for søk" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "Søk i Returordrer" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "Vis returordrer i forhåndsvisningsvinduet for søk" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "Ekskluder Inaktive Returordrer" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "Ekskluder inaktive returordrer fra forhåndsvisningsvinduet for søk" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "Forhåndsvisning av søkeresultater" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "Antall resultater å vise i hver seksjon av søkeresultatsforhåndsvisningen" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "Regex-søk" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "Aktiver regulære uttrykk i søkeord" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "Helordsøk" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "Søk returnerer resultater for treff med hele ord" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "Vis antall i skjemaer" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "Vis antall tilgjengelige deler i noen skjemaer" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "Escape-knappen lukker skjemaer" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "Bruk Escape-knappen for å lukke modal-skjemaer" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "Fast navigasjonsbar" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "Navigasjonsbarens posisjon er fast på toppen av skjermen" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "Datoformat" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "Foretrukket format for å vise datoer" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Delplanlegging" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "Vis delplanleggingsinformasjon" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Lagertelling for Del" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Vis lagertellingsinformasjon for del (om lagertellingsfunksjonalitet er aktivert)" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "Tabellstrenglengde" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "Maksimal lengdegrense for tekst vist i tabeller" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "Motta feilrapporter" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "Motta varsler om systemfeil" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "Bruker" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "Antall for prisbrudd" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Pris" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "Enhetspris på spesifisert antall" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "Endepunkt" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "Endepunktet hvor denne webhooken er mottatt" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "Navn for webhooken" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "Er webhooken aktiv" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "Sjetong" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "Nøkkel for tilgang" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "Hemmelig" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "Delt hemmlighet for HMAC" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "Melding ID" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "Unik Id for denne meldingen" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "Vert" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "Verten denne meldingen ble mottatt fra" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "Tittel" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "Overskrift for denne meldingen" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "Brødtekst" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "Innholdet i meldingen" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "Endepunktet meldingen ble mottatt fra" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "Arbeidet med" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "Var arbeidet med denne meldingen ferdig?" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Tittel" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "Lenke" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "Publisert" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Forfatter" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "Sammendrag" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "Les" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "Er dette nyhetselementet lest?" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "Er dette nyhetselementet lest?" msgid "Image" msgstr "Bilde" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "Bildefil" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "Enhetsnavn må være en gyldig identifikator" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "Enhetsnavn" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "Valgfritt enhetssymbol" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definisjon" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "Enhetsdefinisjon" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Vedlegg" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "Fil mangler" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Mangler eksternlenke" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Velg fil å legge ved" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Kommentar" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3957,27 +3965,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "Et tomt domene er ikke tillatt." -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Ugyldig domenenavn: {domain}" @@ -4228,26 +4236,26 @@ msgstr "Fraktnotater for internt bruk" msgid "Link to address information (external)" msgstr "Lenke til adresseinformasjon (ekstern)" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Produsentdeler" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Basisdel" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "Velg del" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "Velg del" msgid "Manufacturer" msgstr "Produsent" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "Velg produsent" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "URL for ekstern produsentdel-lenke" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "Produsentens delbeskrivelse" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "Parameternavn" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "Verdi" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "Parameterverdi" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "Enheter" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "Parameterenheter" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "Leverandørdel" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "Pakkeenhetene må være komptible med delens basisenhet" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "Pakkeenhet må være mer enn null" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "Den sammenkoblede produsentdelen må referere til samme basisdel" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "Leverandør" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "Velg leverandør" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "Leverandørens lagerbeholdningsenhet" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "Velg produsentdel" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "URL for ekstern leverandørdel-lenke" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "Leverandørens delbeskrivelse" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "Leverandørens delbeskrivelse" msgid "Note" msgstr "Notat" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "grunnkostnad" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimum betaling (f.eks. lageravgift)" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "Emballasje" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "Delemballasje" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "Pakkeantall" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Totalt antall i en enkelt pakke. La være tom for enkeltenheter." -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "flere" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "Bestill flere" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "Antall tilgjengelig fra leverandør" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "Tilgjengelighet oppdatert" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "Dato for siste oppdatering av tilgjengelighetsdata" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "Standardvaluta brukt for denne leverandøren" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "På lager" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "Inaktiv" @@ -4526,16 +4534,16 @@ msgstr "Last ned bilde fra URL" msgid "Delete image" msgstr "Slett bilde" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "Kunde" @@ -4734,7 +4742,7 @@ msgstr "Ingen produsentinformasjon tilgjengelig" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "Ingen leverandørinformasjon tilgjengelig" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "SKU-kode" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "Leverandørs lagerbeholdning" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "Opprett ny lagervare" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "Ny Lagervare" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "Lagervarer" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "" @@ -5203,7 +5211,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "Total pris" @@ -5224,9 +5232,9 @@ msgstr "" msgid "No matching purchase order found" msgstr "Ingen samsvarende innkjøpsordre funnet" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "Ordre" @@ -5239,26 +5247,26 @@ msgstr "" msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "Innkjøpsordre" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "Returordre" @@ -5286,7 +5294,7 @@ msgstr "Ordrebeskrivelse (valgfritt)" msgid "Select project code for this order" msgstr "Velg prosjektkode for denne ordren" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "Lenke til ekstern side" @@ -5310,365 +5318,365 @@ msgstr "Kontaktpunkt for denne ordren" msgid "Company address for this order" msgstr "Selskapsadresse for denne ordren" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "Ordrereferanse" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "Status for innkjøpsordre" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "Firma som varene blir bestilt fra" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "Leverandørreferanse" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "Leverandørens ordrereferanse" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "mottatt av" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "Sendt dato" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "Dato bestillingen ble sendt" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "Dato ordre ble fullført" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "Delleverandør må matche PO-leverandør" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "Mengde må være positiv" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "Firma som varene selges til" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "Kundereferanse " -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "Kundens ordrereferanse" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "Forsendelsesdato" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "sendt av" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "Kun en åpen ordre kan merkes som fullført" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Bestillingen kan ikke fullføres da det finnes ufullstendige forsendelser" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "Denne ordren kan ikke fullføres da det fortsatt er ufullstendige artikler" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "Antall" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "Linjereferanse" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "Linjenotater" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Måldato for denne linjen (la stå tomt for å bruke måldatoen fra ordren)" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "Linjeelementbeskrivelse (valgfritt)" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "Kontekst" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "Ytterligere kontekst for denne linjen" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "Enhetspris" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "Delens leverandør må samsvare med leverandør" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "slettet" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "Leverandørdel" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "Mottatt" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "Antall enheter mottatt" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "Innkjøpspris" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "Enhet-innkjøpspris" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "Hvor vil innkjøper at artikkelen skal lagres?" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "Virtuell del kan ikke tildeles salgsordre" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "Kun salgbare deler kan tildeles en salgsordre" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Salgspris" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "Enhets-salgspris" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Sendt" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "Sendt antall" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "Dato for forsendelse" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "Leveringsdato" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "Dato for levering av forsendelse" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "Sjekket Av" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "Brukeren som sjekket forsendelsen" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "Forsendelse" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "Forsendelsesnummer" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "Sporingsnummer" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "Sporingsinformasjon for forsendelse" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "Fakturanummer" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "Referansenummer for tilknyttet faktura" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "Forsendelsen er allerede sendt" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "Forsendelsen har ingen tildelte lagervarer" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "Lagervarer er ikke blitt tildelt" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "Kan ikke tildele lagervare til en linje med annen del" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "Kan ikke tildele lagerbeholdning til en linje uten en del" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Tildelingsantall kan ikke overstige tilgjengelig lagerbeholdning" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "Antall må være 1 for serialisert lagervare" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "Salgsordre samsvarer ikke med forsendelse" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "Forsendelsen samsvarer ikke med salgsordre" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "Linje" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "Forsendelsesreferanse for salgsordre" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "Artikkel" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "Velg lagervare å tildele" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "Angi lagertildelingsmengde" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "Returordre-referanse" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "Firmaet delen skal returneres fra" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "Returordrestatus" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "Kun serialiserte artikler kan tilordnes en Returordre" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "Velg artikkel som skal returneres fra kunde" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "Mottatt Dato" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "Datoen denne returartikkelen ble mottatt" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "Utfall" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "Utfall for dette linjeelementet" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "Kostnad forbundet med retur eller reparasjon for dette linjeelementet" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "Internt delnummer" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "Velg lagerplassering for mottatte enheter" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "Angi batchkode for innkommende lagervarer" @@ -6056,12 +6064,12 @@ msgstr "Duplikatvalg" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Fjern rad" @@ -6175,8 +6183,8 @@ msgstr "Kundereferanse" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "Ventende forsendelser" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "Handlinger" @@ -6272,21 +6280,21 @@ msgstr "Oppdaterte {part} enhetspris to {price}" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "Oppdaterte {part} enhetspris til {price} og antall til {qty}" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "Revisjon" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "Nøkkelord" @@ -6298,7 +6306,7 @@ msgstr "Del-bilde" msgid "Category ID" msgstr "Kategori-ID" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "Kategorinavn" @@ -6311,11 +6319,11 @@ msgstr "Standard plasserings-ID" msgid "Default Supplier ID" msgstr "Standard leverandør-ID" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Variant av" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Minimal lagerbeholdning" @@ -6323,19 +6331,19 @@ msgstr "Minimal lagerbeholdning" msgid "Used In" msgstr "Brukt i" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "Produseres" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "Minimal kostnad" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "Maksimal kostnad" @@ -6347,19 +6355,19 @@ msgstr "Overordnet ID" msgid "Parent Name" msgstr "Overordnet navn" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "Sti til kategori" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "Deler" @@ -6376,13 +6384,17 @@ msgstr "BOM artikkel-ID" msgid "Parent IPN" msgstr "Overodnet IPN" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "Minstepris" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "Kategori" @@ -6489,13 +6501,13 @@ msgstr "Kategori" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "Standard plassering" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Total lagerbeholdning" @@ -6504,784 +6516,785 @@ msgstr "Total lagerbeholdning" msgid "Input quantity for price calculation" msgstr "Sett inn antall for prisberegning" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Delkategori" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Delkategorier" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "Standardplassering for deler i denne kategorien" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "Strukturell" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "Deler kan ikke tilordnes direkte til en strukturell kategori, men kan tilordnes til underkategorier." -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "Standard nøkkelord" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "Standard nøkkelord for deler i denne kategorien" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Ikon" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "Ikon (valgfritt)" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "Du kan ikke gjøre denne delkategorien strukturell fordi noen deler allerede er tilordnet den!" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "Ugyldig valg for overordnet del" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "Delen '{self}' kan ikke brukes i BOM for '{parent}' (rekursiv)" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "Delen '{parent}' er brukt i BOM for '{self}' (rekursiv)" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "IPN må samsvare med regex-mønsteret {pattern}" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "Lagervare med dette serienummeret eksisterer allerede" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "Duplikat av internt delnummer er ikke tillatt i delinnstillinger" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "Del med dette Navnet, internt delnummer og Revisjon eksisterer allerede." -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "Deler kan ikke tilordnes strukturelle delkategorier!" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "Delnavn" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "Er Mal" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "Er delen en maldel?" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "Er delen en variant av en annen del?" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "Delbeskrivelse (valgfritt)" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "Del-nøkkelord for å øke synligheten i søkeresultater" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "Delkategori" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "Delrevisjon eller versjonsnummer" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "Hvor er denne artikkelen vanligvis lagret?" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "Standard leverandør" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "Standard leverandørdel" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "Standard utløp" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "Utløpstid (i dager) for lagervarer av denne delen" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "Minimum tillatt lagernivå" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "Måleenheter for denne delen" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "Kan denne delen bygges fra andre deler?" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "Kan denne delen brukes til å bygge andre deler?" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "Har denne delen sporing av unike artikler?" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "Kan denne delen kjøpes inn fra eksterne leverandører?" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "Kan denne delen selges til kunder?" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "Er denne delen aktiv?" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "Er dette en virtuell del, som et softwareprodukt eller en lisens?" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "Kontrollsum for BOM" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "Lagret BOM-kontrollsum" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "Stykkliste sjekket av" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "Stykkliste sjekket dato" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "Opprettingsbruker" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "Eier ansvarlig for denne delen" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "Siste lagertelling" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "Selg flere" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "Valuta som brukes til å bufre prisberegninger" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "Minimal BOM-kostnad" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "Minste kostnad for komponentdeler" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "Maksimal BOM-kostnad" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "Maksimal kostnad for komponentdeler" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "Minimal innkjøpskostnad" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "Minimal historisk innkjøpskostnad" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "Maksimal innkjøpskostnad" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "Maksimal historisk innkjøpskostnad" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "Minimal intern pris" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "Minimal kostnad basert på interne prisbrudd" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "Maksimal intern pris" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "Maksimal kostnad basert på interne prisbrudd" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "Minimal leverandørpris" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "Minimumspris for del fra eksterne leverandører" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "Maksimal leverandørpris" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "Maksimalpris for del fra eksterne leverandører" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "Minimal Variantkostnad" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "Beregnet minimal kostnad for variantdeler" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "Maksimal Variantkostnad" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "Beregnet maksimal kostnad for variantdeler" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "Overstyr minstekostnad" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "Overstyr maksimal kostnad" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "Beregnet samlet minimal kostnad" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "Beregnet samlet maksimal kostnad" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "Minimal salgspris" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "Minimal salgspris basert på prisbrudd" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "Maksimal Salgspris" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "Maksimal salgspris basert på prisbrudd" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "Minimal Salgskostnad" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "Minimal historisk salgspris" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "Maksimal Salgskostnad" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "Maksimal historisk salgspris" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "Del for varetelling" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "Antall" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "Antall individuelle lagerenheter på tidspunkt for varetelling" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "Total tilgjengelig lagerbeholdning på tidspunkt for varetelling" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "Dato" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "Dato for utført lagertelling" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "Flere notater" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "Bruker som utførte denne lagertellingen" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "Minimal lagerkostnad" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "Estimert minimal kostnad for lagerbeholdning" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "Maksimal lagerkostnad" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "Estimert maksimal kostnad for lagerbeholdning" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "Rapport" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "Lagertellingsrapportfil (generert internt)" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "Antall deler" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "Antall deler dekket av varetellingen" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "Bruker som forespurte varetellingsrapporten" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "Valg må være unike" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "Testmaler kan bare bli opprettet for sporbare deler" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "Testnavn" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "Angi et navn for testen" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "Testbeskrivelse" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "Legg inn beskrivelse for denne testen" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "Aktivert" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "Påkrevd" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "Er det påkrevd at denne testen bestås?" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "Krever verdi" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "Krever denne testen en verdi når det legges til et testresultat?" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "Krever vedlegg" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "Krever denne testen et filvedlegg når du legger inn et testresultat?" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "Valg" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "Sjekkboksparameter kan ikke ha enheter" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "Sjekkboksparameter kan ikke ha valg" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "Navn på parametermal må være unikt" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "Parameternavn" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "Fysisk enheter for denne parameteren" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "Parameterbeskrivelse" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "Sjekkboks" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "Er dette parameteret en sjekkboks?" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "Gyldige valg for denne parameteren (kommaseparert)" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "Ugyldig valg for parameterverdi" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "Overordnet del" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Parametermal" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "Parameterverdi" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Standardverdi" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "Standard Parameterverdi" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "Del-ID eller delnavn" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "Unik del-ID-verdi" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "Delens interne delnummerverdi" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "Nivå" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "BOM-nivå" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "Velg overordnet del" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "Underordnet del" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "Velg del som skal brukes i BOM" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "BOM-antall for denne BOM-artikkelen" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "Denne BOM-artikkelen er valgfri" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Denne BOM-artikkelen er forbruksvare (den spores ikke i produksjonsordrer)" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Svinn" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Forventet produksjonssvinn (absolutt eller prosent)" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "BOM-artikkelreferanse" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "BOM-artikkelnotater" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "Kontrollsum" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "BOM-linje kontrollsum" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "Godkjent" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "Denne BOM-artikkelen er godkjent" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "Arves" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Denne BOM-artikkelen er arvet fra stykkliste for variantdeler" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Lagervarer for variantdeler kan brukes for denne BOM-artikkelen" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "Antall må være heltallsverdi for sporbare deler" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "Underordnet del må angis" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "BOM-artikkel erstatning" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "Erstatningsdel kan ikke være samme som hoveddelen" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "Overordnet BOM-artikkel" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "Erstatningsdel" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "Del 1" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "Del 2" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "Velg relatert del" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "Del-forhold kan ikke opprettes mellom en del og seg selv" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "Duplikatforhold eksisterer allerede" @@ -7289,338 +7302,338 @@ msgstr "Duplikatforhold eksisterer allerede" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Underkategorier" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "Innkjøpsvaluta for lagervaren" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "Ingen deler valgt" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "Velg kategori" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "Original Del" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "Velg original del å duplisere" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "Kopier Bilde" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "Kopier bilde fra originaldel" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "Kopier Stykkliste" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "Kopier stykkliste fra original del" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "Kopier parametere" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "Kopier parameterdata fra originaldel" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "Kopier notater" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "Kopier notater fra originaldel" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "Innledende lagerbeholdning" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Angi initiell lagermengde for denne delen. Hvis antall er null, er ingen lagerbeholdning lagt til." -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "Innledende lagerplassering" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "Angi initiell lagerplasering for denne delen" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "Velg leverandør (eller la stå tom for å hoppe over)" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "Velg produsent (eller la stå tom for å hoppe over)" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "Produsentens delenummer" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "Valgt firma er ikke en gyldig leverandør" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "Valgt firma er ikke en gyldig produsent" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "Produsentdel som matcher dette MPN-et, finnes allerede" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "Leverandørdel som matcher denne SKU-en, finnes allerede" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "Dupliser del" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "Kopier innledende data fra en annen del" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "Innledende lagerbeholdning" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "Lag en del med innledende lagermengde" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "Leverandøropplysninger" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "Legg til innledende leverandørinformasjon for denne delen" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "Kopier kategoriparametre" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "Kopier parametermaler fra valgt delkategori" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "Eksisterende bilde" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "Filnavn for et eksisterende del-bilde" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "Bildefilen finnes ikke" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "Begrens lagerbeholdningsrapport til en bestemt del og enhver variant av delen" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "Begrens lagerbeholdningsrapport til en bestemt delkategori og alle underkategorier" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "Begrens lagerbeholdningsrapport til en bestemt plasering og eventuelle underplasseringer" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "Ekskluder ekstern lagerbeholdning" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "Ekskluder lagervarer i eksterne lokasjoner" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "Generer rapport" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "Genererer rapport som inneholder beregnede lagerdata" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "Oppdater deler" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "Oppdater spesifiserte deler med beregnede lagerbeholdningsdata" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "Lagerbeholdningsfunksjonalitet er ikke aktivert" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "Overstyr beregnet verdi for minimumspris" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "Valuta for minstepris" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "Overstyr beregnet verdi for maksimal pris" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "Valuta for maksimal pris" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "Oppdater" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "Oppdater priser for denne delen" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "Kan ikke konvertere fra gitte valutaer til {default_currency}" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "Minsteprisen kan ikke være større enn maksimal pris" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "Maksimal pris kan ikke være mindre enn minstepris" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "Kan Produsere" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "Velg del å kopiere BOM fra" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "Fjern eksisterende data" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "Fjern eksisterende BOM-artikler før kopiering" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "Inkluder arvede" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "Inkluder BOM-artikler som er arvet fra maldeler" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "Hopp over ugyldige rader" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "Aktiver dette alternativet for å hoppe over ugyldige rader" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "Kopier erstatningsdeler" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "Kopier erstatningsdeler når BOM-elementer dupliseres" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "Nullstill eksisterende BOM" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "Fjern eksisterende BOM-artikler før opplastning" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "Ingen del-kolonne angitt" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "Flere samsvarende deler funnet" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "Ingen samsvarende del funnet" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "Delen er ikke betegnet som en komponent" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "Antall ikke oppgitt" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "Ugyldig antall" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "Minst en BOM-artikkel kreves" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "Totalt Antall" @@ -7666,65 +7679,65 @@ msgstr "Denne BOMen ble sist sjekket av %(checker)s den %(check_date)s" msgid "This BOM has not been validated." msgstr "Denne BOMen er ikke godkjent." -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "Utfør lagertelling for denne delkategorien" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "Du abonnerer på varsler for denne kategorien" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "Abonner på varsler for denne kategorien" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "Kategorihandlinger" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "Rediger kategori" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "Rediger Kategori" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "Slett kategori" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "Slett Kategori" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "Toppnivå delkategori" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "Deler (inkludert underkategorier)" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "Opprett ny del" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "Ny Del" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "Delparametere" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "Opprett ny delkategori" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "Ny Kategori" @@ -7772,7 +7785,7 @@ msgstr "Legg til lagertellingsinformasjon" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "Lagertelling" @@ -7870,15 +7883,15 @@ msgstr "Deleleverandører" msgid "Part Manufacturers" msgstr "Deleprodusenter" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "" @@ -7937,7 +7950,7 @@ msgstr "Abonner på varsler for denne delen" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "Skriv ut etikett" @@ -7947,7 +7960,7 @@ msgstr "Vis prisinformasjon" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "Lagerhandlinger" @@ -7959,7 +7972,7 @@ msgstr "Tell delbeholdning" msgid "Transfer part stock" msgstr "Overfør delbeholdning" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "Delhandlinger" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "Minimalt lagerbeholdningsnivå" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "Varianter" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "Lagerbeholdning" @@ -8158,7 +8171,7 @@ msgstr "Overstyr delprising" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "Rediger" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "Sist oppdatert" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "Ingen lagerbeholdning" @@ -8332,100 +8345,108 @@ msgstr "Ingen handling spesifisert" msgid "No matching action found" msgstr "Ingen samsvarende handling funnet" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "Ingen treff funnet for strekkodedata" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "Treff funnet for strekkodedata" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "Strekkode samsvarer med ekisterende element" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "Ingen samsvarende del-data funnet" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "Finner ingen matchende leverandørdeler" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "Flere samsvarende leverandørdeler funnet" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "Fant leverandørdel" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "Artikkelen er allerede mottatt" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "Ingen treff for leverandørstrekkode" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "Flere samsvarende elementer funnet" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "Ingen samsvarende element funnet" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "Strekkoden samsvarer ikke med eksisterende lagervare" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "Lagervare samsvarer ikke med linjeelement" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "Utilstrekkelig lagerbeholdning" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "Lagervaren er tildelt en salgsordre" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "Ikke nok informasjon" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "Fant flere leverandørdeler for strekkoden" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "Fant flere innkjøpsordrer som samsvarer med '{order}'" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "Ingen samsvarende innkjøpsordre for '{order}'" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "Innkjøpsordre stemmer ikke med leverandør" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "Fant ikke ventende artikkel for leverandørdel" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "Mer informasjon nødvendig for å motta artikkelen" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "Mottok ordreartikkelen" @@ -8433,51 +8454,59 @@ msgstr "Mottok ordreartikkelen" msgid "Scanned barcode data" msgstr "Skannet strekkodedata" -#: plugin/base/barcodes/serializers.py:81 +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" +msgstr "" + +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 msgid "Purchase Order to allocate items against" msgstr "Innkjøpsordre å tildele artikler mot" -#: plugin/base/barcodes/serializers.py:87 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order is not pending" msgstr "Innkjøpsordre er ikke ventende" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:129 msgid "PurchaseOrder to receive items against" msgstr "Innkjøpsordre å motta artikler mot" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "Innkjøpsordren har ikke blitt sendt" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "Plassering å motta deler til" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "Kan ikke velge en strukturell plassering" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "Salgsordre å tildele artikler mot" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "Salgsordre er ikke ventende" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "Salgsordrelinje å tildele artikler mot" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "Salgsordre-forsendelse å tildele artikler mot" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "Forsendelsen er allerede levert" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "Antall å tildele" @@ -8497,15 +8526,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "InvenTree-strekkoder" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "Gir innebygd støtte for strekkoder" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "Gir innebygd støtte for strekkoder" msgid "InvenTree contributors" msgstr "InvenTree-bidragsytere" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "InvenTree-varsler" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "Ingen gyldige objekter angitt for mal" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9160,7 +9213,7 @@ msgstr "Leverandør ble slettet" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "Enhetspris" @@ -9173,7 +9226,7 @@ msgstr "Ekstra linjeelementer" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "Testresultater" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "Resultat" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "Installerte artikler" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "Serienummer" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "Asset-filen eksisterer ikke" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "Bildefil ikke funnet" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "part_image-taggen krever en Part-instans" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "company_image-taggen krever en Company-instans" @@ -9246,8 +9299,8 @@ msgstr "company_image-taggen krever en Company-instans" msgid "Location ID" msgstr "Plasserings-ID" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "Plasserings-sti" @@ -9279,7 +9332,7 @@ msgstr "Leverandørnavn" msgid "Customer ID" msgstr "Kunde-ID" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "Installert i" @@ -9304,9 +9357,9 @@ msgstr "Gjennomgang kreves" msgid "Delete on Deplete" msgstr "Slett når oppbrukt" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "Utløpsdato" @@ -9372,316 +9425,316 @@ msgstr "Leverandørdelen har en pakkestørrelse definert, men flagget \"use_pack msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Serienumre kan ikke angis for en ikke-sporbar del" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "Lagerplasseringstype" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "Lagerplasseringstyper" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "Standard ikom for alle plasseringer som ikke har satt et ikon (valgfritt)" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Lagerplassering" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Lagerplasseringer" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Eier" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "Velg eier" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Lagervarer kan ikke knyttes direkte mot en strukturell lagerplassering, men kan knyttes mot underplasseringer." -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "Ekstern" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "Dette er en ekstern lagerplassering" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "Plasseringstype" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "Lagerplasseringstype for denne plasseringen" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "De kan ikke gjøre denne plasseringen strukturell, da noen lagervarer allerede er plassert i den!" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "Lagervarer kan ikke plasseres i strukturelle plasseringer!" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "Lagervare kan ikke opprettes for virtuelle deler" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "Deltype ('{self.supplier_part.part}') må være {self.part}" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "Antall må være 1 for produkt med et serienummer" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Serienummeret kan ikke angis hvis antall er større enn 1" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "Elementet kan ikke tilhøre seg selv" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "Elementet må ha en produksjonsrefereanse om is_building=True" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "Produksjonsreferanse peker ikke til samme del-objekt" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "Overordnet lagervare" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "Basisdel" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "Velg en tilsvarende leverandørdel for denne lagervaren" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "Hvor er denne lagervaren plassert?" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "Inpakningen denne lagervaren er lagret i" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "Er denne artikkelen montert i en annen artikkel?" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "Serienummer for denne artikkelen" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "Batchkode for denne lagervaren" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "Lagerantall" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "Kildeproduksjon" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "Produksjon for denne lagervaren" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "Brukt av" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "Produksjonsordren som brukte denne lagervaren" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "Kildeinnkjøpsordre" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "Innkjøpsordre for denne lagervaren" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "Tildelt Salgsordre" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Utløpsdato for lagervare. Lagerbeholdning vil bli ansett som utløpt etter denne datoen" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "Slett når oppbrukt" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "Slett lagervaren når beholdningen er oppbrukt" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "Innkjøpspris per enhet på kjøpstidspunktet" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "Konvertert til del" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "Delen er ikke angitt som sporbar" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "Antall må være heltall" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "Antall kan ikke overstige tilgjengelig lagerbeholdning ({self.quantity})" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "Serienumre må være en liste over tall" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "Antallet stemmer ikke overens med serienumrene" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "Seriernummer eksisterer allerede" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "Lagervare har blitt tildelt en salgsordre" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "Lagervare er montert i en annen artikkel" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "Lagervare inneholder andre artikler" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "Lagervare har blitt tildelt til en kunde" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "Lagervare er for tiden i produksjon" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "Serialisert lagerbeholdning kan ikke slås sammen" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "Duplisert lagervare" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "Lagervarer må referere til samme del" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "Lagervarer må referere til samme leverandørdel" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "Lagerstatuskoder må være like" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "Lagervare kan ikke flyttes fordi den ikke er på lager" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "Oppføringsnotater" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "Verdi må angis for denne testen" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "Vedlegg må lastes opp for denne testen" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "Testresultat" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "Testens verdi" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "Vedlegg til testresultat" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "Testnotater" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "Ingen lagervarer valgt" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Underplasseringer" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "" @@ -9971,7 +10024,7 @@ msgstr "I Karantene" msgid "Legacy stock tracking entry" msgstr "Gammel lagervare sporingsoppføring" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "Lagevare opprettet" @@ -10027,7 +10080,7 @@ msgstr "Skill ut fra overordnet artikkel" msgid "Split child item" msgstr "Skill ut fra underartikkel" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "Sammenslåtte lagervarer" @@ -10047,7 +10100,7 @@ msgstr "Produksjonsartikkel fullført" msgid "Build order output rejected" msgstr "Produksjonsartikkel avvist" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "Brukt av produksjonsordre" @@ -10108,7 +10161,7 @@ msgstr "Notater for lagervare" msgid "Installed Stock Items" msgstr "Installerte lagervarer" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "Installer lagervare" @@ -10116,7 +10169,7 @@ msgstr "Installer lagervare" msgid "Delete all test results for this stock item" msgstr "Slett alle testresultater for denne lagervaren" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "Skann til plassering" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "Utskriftshandlinger" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "Lagerjusteringshandlinger" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "Tell beholdning" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "Legg til lagerbeholdning" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "Fjern lagerbeholdning" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "Serialiser lager" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "Overfør lagerbeholdning" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "Tilordne til kunde" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "Slett lagervare" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "Produksjon" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "Du er ikke i eierlisten til dette elementet. Denne lagervaren kan ikke redigeres." #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "Kun lesetilgang" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "Gå til neste serienummer" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "Ingen plassering satt" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "Ingen lagertelling utført" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "" @@ -10321,7 +10374,7 @@ msgstr "Denne handlingen er vanskelig å omgjøre" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10386,84 @@ msgstr "Opprett serialiserte artikler for denne lagervaren." msgid "Select quantity to serialize, and unique serial numbers." msgstr "Velg antall å serialisere, og unike serienummer." -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "Utfør lagertelling for denne lagerplasseringen" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "Finn lagerplassering" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "Skann lagervarer til denne plasseringen" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "Skann inn Lagervarer" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "Skann lagerbeholder til denne plasseringen" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "Skann inn beholder" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "Skriv ut plasseringsrapport" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "Plasseringshandlinger" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "Rediger plassering" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "Slett plassering" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "Toppnivå-lagerplassering" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "Plasseringens Eier" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "Du er ikke i listen over eiere av denne plasseringen. Denne lagerplasseringen kan ikke redigeres." -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "Opprett ny lagerplassering" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "Ny plassering" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "Slett" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11007,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "Ny plasseringstype" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "Send feilrapport" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "kopier til utklippstavle" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "Følgende deler har for lav lagerbeholdning" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "Antall som kreves" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "Klikk på følgende lenke for å se denne delen" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "Minimum antall" @@ -11758,7 +11811,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "" @@ -11948,7 +12001,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12021,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12076,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,12 +12124,12 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "" @@ -12129,13 +12182,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12196,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12749,39 +12802,39 @@ msgstr "Skjemafeil eksisterer" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +12919,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12931,358 +12984,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13719,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13887,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "" @@ -13891,18 +13945,14 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "" @@ -13951,432 +14001,432 @@ msgstr "" msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "Legg til" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "" diff --git a/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po index ac0b4fcace..a1b00b215c 100644 --- a/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -56,29 +56,29 @@ msgstr "Szczegóły błędu można znaleźć w panelu administracyjnym" msgid "Enter date" msgstr "Wprowadź dane" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "Uwagi" @@ -135,74 +135,74 @@ msgstr "Podany e-mail domeny nie został zatwierdzony." msgid "Registration is disabled." msgstr "Rejestracja jest wyłączona." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "Podano nieprawidłową ilość" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Pusty ciąg numeru seryjnego" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Podwójny numer seryjny" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Nieprawidłowy zakres grupy: {group}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Zakres grupy {group} przekracza dozwoloną ilość ({expected_quantity})" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Nieprawidłowa kolejność grup: {group}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Nie znaleziono numerów seryjnych" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Liczba unikalnych numerów seryjnych ({len(serials)}) musi odpowiadać ilości ({expected_quantity})" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Usuń znaczniki HTML z tej wartości" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Błąd połączenia" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Serwer odpowiedział z nieprawidłowym kodem statusu" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Wystąpił wyjątek" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Serwer odpowiedział z nieprawidłową wartością Content-Length" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Rozmiar obrazu jest zbyt duży" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Przekroczono maksymalny rozmiar pobieranego obrazu" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Zdalny serwer zwrócił pustą odpowiedź" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "Podany adres URL nie jest poprawnym plikiem obrazu" @@ -366,158 +366,158 @@ msgstr "[{site_name}] Logowanie do aplikacji" msgid "Email" msgstr "Adres E-Mail" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "Błąd podczas walidacji wtyczki" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "Metadane muszą być obiektem typu dict w Python" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "Wtyczka Metadane" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "Pole metadanych JSON, do użycia przez wtyczki zewnętrzne" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Nieprawidłowo sformatowany wzór" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "Określono nieznany format klucza" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "Brak wymaganego formatu klucza" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Pole odniesienia nie może być puste" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "Odniesienie musi być zgodne z wymaganym wzorem" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Numer odniesienia jest zbyt duży" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "Duplikaty nazw nie mogą istnieć pod tym samym rodzicem" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Błędny wybór" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "Nazwa" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "Opis" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "Opis (opcjonalny)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "Ścieżka" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "Notatki Markdown (opcjonalne)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Dane kodu kreskowego" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Dane kodu kreskowego stron trzecich" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "Hasz kodu kreskowego" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Unikalny hasz danych kodu kreskowego" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Znaleziono istniejący kod kreskowy" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Błąd serwera" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "Błąd został zapisany w logach serwera." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "Numer musi być prawidłowy" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "Adres URL zdalnego pliku obrazu" msgid "Downloading images from remote URL is not enabled" msgstr "Pobieranie obrazów ze zdalnego URL nie jest włączone" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "Sprawdzenie robotnika w tle nie powiodło się" @@ -726,17 +726,17 @@ msgstr "O InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Kompilacja musi zostać anulowana, zanim będzie mogła zostać usunięta" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "Materiał eksploatacyjny" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "Opcjonalne" msgid "Tracked" msgstr "Śledzony" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "Przydzielono" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "Dostępne" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "Zlecenie Budowy" @@ -789,72 +789,72 @@ msgstr "Zlecenie Budowy" msgid "Build Orders" msgstr "Zlecenia budowy" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "Nieprawidłowy wybór kompilacji nadrzędnej" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "Odpowiedzialny użytkownik lub grupa muszą być określone" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "Nie można zmienić elementu kompletacji" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "Odwołanie do zamówienia wykonania" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Referencja" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "Krótki opis produkcji (opcjonalny)" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Budowa nadrzędna" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "Zamówienie budowy, do którego budowa jest przypisana" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "Komponent" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "Wybierz część do budowy" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Odwołanie do zamówienia sprzedaży" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "Zamówienie sprzedaży, do którego budowa jest przypisana" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Lokalizacja źródła" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Wybierz lokalizację, z której pobrać element do budowy (pozostaw puste, aby wziąć z dowolnej lokalizacji)" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "Lokalizacja docelowa" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Wybierz lokalizację, w której będą przechowywane ukończone elementy" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "Ilość do stworzenia" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Ilość przedmiotów do zbudowania" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "Ukończone elementy" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Ilość produktów magazynowych które zostały ukończone" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "Status budowania" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "Kod statusu budowania" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "Kod partii" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "Kod partii dla wyjścia budowy" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Data utworzenia" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "Docelowy termin zakończenia" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Docelowa data zakończenia kompilacji. Po tej dacie kompilacja będzie zaległa." -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "Data zakończenia" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "zrealizowane przez" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "Wydany przez" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "Użytkownik, który wydał to zamówienie" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "Odpowiedzialny" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "Użytkownik lub grupa odpowiedzialna za te zlecenie produkcji" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Link Zewnętrzny" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "Link do zewnętrznego adresu URL" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "Priorytet budowy" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "Priorytet tego zamówienia produkcji" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "Priorytet tego zamówienia produkcji" msgid "Project Code" msgstr "Kod projektu" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "Kod projektu dla tego zlecenia produkcji" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "Kolejność kompilacji {build} została zakończona" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "Kolejność kompilacji została zakończona" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "Nie określono danych wyjściowych budowy" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "Budowanie wyjścia jest już ukończone" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "Skompilowane dane wyjściowe nie pasują do kolejności kompilacji" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "Ilość musi być większa niż zero" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "Ilość nie może być większa niż ilość wyjściowa" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "Wyjście budowy {serial} nie przeszło wszystkich testów" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "Zbuduj obiekt" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "Zbuduj obiekt" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "Ilość" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "Wymagana ilość dla zlecenia produkcji" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Przydzielona ilość ({q}) nie może przekraczać dostępnej ilości zapasów magazynowych ({a})" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "Pozycja magazynowa jest nadmiernie przydzielona" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "Alokowana ilość musi być większa niż zero" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "Ilość musi wynosić 1 dla serializowanych zasobów" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "Wybrana pozycja magazynowa nie pasuje do pozycji w zestawieniu BOM" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "Element magazynowy" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "Lokalizacja magazynowania przedmiotu" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "Ilość zapasów do przydzielenia do produkcji" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "Zainstaluj do" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "Docelowa lokalizacja magazynowa przedmiotu" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "Nazwa komponentu" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" @@ -1260,7 +1260,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Numer seryjny" @@ -1270,21 +1270,21 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "Lokalizacja" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "" @@ -1508,7 +1508,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "Numer producenta komponentu" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "ID komponentu" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "IPN komponentu" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "Numer Seryjny" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1584,13 +1584,13 @@ msgstr "Możliwość śledzenia" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "Zezwalaj na warianty" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "Element BOM" @@ -1600,22 +1600,22 @@ msgstr "Element BOM" msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "W Zamówieniu" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "W produkcji" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,7 +1633,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" @@ -1684,7 +1684,7 @@ msgstr "Miniaturka przedmiotu" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "Akcje kodów kreskowych" @@ -1696,7 +1696,7 @@ msgstr "Akcje kodów kreskowych" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Pokaż Kod QR" @@ -1707,7 +1707,7 @@ msgstr "Pokaż Kod QR" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "Odłącz Kod Kreskowy" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "Połącz Kod Kreskowy" @@ -1786,16 +1786,16 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "Zamówienie zakupu" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "Dodane przez" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "Priorytet" @@ -1875,8 +1875,8 @@ msgstr "Źródło magazynu" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "Przeznaczenie" @@ -1890,11 +1890,11 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "Partia" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "Utworzony" @@ -2037,15 +2037,15 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,362 +2103,370 @@ msgstr "{name.title()} Plik" msgid "Select {name} file to upload" msgstr "Wybierz plik {name} do przesłania" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "Zaktualizowany" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "Data ostatniej aktualizacji" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "Unikalny kod projektu" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "Opis projektu" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "Użytkownik lub grupa odpowiedzialna za to zamówienie" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "Klucz ustawień (musi być unikalny - niewrażliwy na wielkość liter)" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "Ustawienia wartości" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "Wybrana wartość nie jest poprawną opcją" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "Wartość musi być wartością binarną" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "Wartość musi być liczbą całkowitą" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "Ciąg musi być unikatowy" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "Brak grupy" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "Wymagane ponowne uruchomienie" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "Zmieniono ustawienie, które wymaga restartu serwera" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "Oczekujące migracje" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "Liczba oczekujących migracji bazy danych" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "Nazwa instancji serwera" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "Użyj nazwy instancji" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "Nazwa firmy" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "Wewnętrzna nazwa firmy" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "Bazowy URL" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "Bazowy adres URL dla instancji serwera" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "Domyślna waluta" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "Interwał aktualizacji waluty" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "Jak często aktualizować kursy wymiany walut (ustaw zero aby wyłączyć)" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "dni" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "Wtyczka aktualizacji waluty" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "Pobierz z adresu URL" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "Zezwól na pobieranie zewnętrznych obrazów i plików z zewnętrznego URL" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "Limit rozmiaru pobierania" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "Ścisła weryfikacja adresu URL" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "Wymagaj specyfikacji schematu podczas sprawdzania poprawności adresów URL" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "Wymagaj potwierdzenia" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "Wymagaj wyraźnego potwierdzenia dla określonych działań." -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "Głębokość drzewa" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Domyślna głębokość drzewa dla widoku drzewa. Głębsze poziomy mogą być leniwe, gdy są potrzebne." -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "Częstotliwość sprawdzania aktualizacji" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "Jak często aktualizować kursy wymiany walut (ustaw zero aby wyłączyć)" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "Automatyczna kopia zapasowa" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "Włącz automatyczną kopię zapasową bazy danych i plików multimedialnych" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "Interwał automatycznego tworzenia kopii zapasowych" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "Określ liczbę dni między zdarzeniami automatycznej kopii zapasowej" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "Interwał usuwania zadań" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Obsługa kodu kreskowego" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 +#: common/models.py:1419 +msgid "Barcode Generation Plugin" +msgstr "" + +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" +msgstr "" + +#: common/models.py:1425 msgid "Part Revisions" msgstr "" -#: common/models.py:1407 +#: common/models.py:1426 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1412 +#: common/models.py:1431 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1413 +#: common/models.py:1432 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1418 +#: common/models.py:1437 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1419 +#: common/models.py:1438 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1424 +#: common/models.py:1443 msgid "IPN Regex" msgstr "Wyrażenie regularne IPN" -#: common/models.py:1425 +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "Zezwól na powtarzający się IPN" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "Zezwól na edycję IPN" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "Skopiuj BOM komponentu" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "" msgid "Template" msgstr "Szablon" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "Złożenie" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "Komponent" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "Możliwość zakupu" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "Części są domyślnie z możliwością zakupu" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "Możliwość sprzedaży" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "Części są domyślnie z możliwością sprzedaży" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "Części są domyślnie z możliwością śledzenia" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "Wirtualny" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "Części są domyślnie wirtualne" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "Pokaż powiązane części" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "Użyj cennika dostawcy" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "Nadpisanie historii zakupów" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "Ceny wewnętrzne" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "Włącz drukowanie etykiet" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "Włącz drukowanie etykiet z interfejsu WWW" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "DPI etykiety" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "Włącz raporty" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "Tryb Debugowania" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "Rozmiar strony" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "Domyślna wielkość strony dla raportów PDF" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "Włącz generowanie raportów testów" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "Automatycznie wypełniaj zlecenia zakupu" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "Automatycznie oznacz zlecenia jako zakończone po odebraniu wszystkich pozycji" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "Włącz opcję zapomnianego hasła" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "Włącz funkcję zapomnianego hasła na stronach logowania" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "Włącz rejestrację" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "Włącz samodzielną rejestrację dla użytkowników na stronach logowania" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "Włącz SSO" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "Włącz SSO na stronach logowania" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "Adres e-mail jest wymagany" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "Autouzupełnianie użytkowników SSO" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "Automatycznie wypełnij dane użytkownika z danych konta SSO" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "E-mail dwa razy" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "Przy rejestracji dwukrotnie zapytaj użytkowników o ich adres e-mail" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "Hasło dwukrotnie" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "Przy rejestracji dwukrotnie zapytaj użytkowników o ich hasło" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "Grupuj przy rejestracji" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "Wymuś MFA" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "Użytkownicy muszą używać zabezpieczeń wieloskładnikowych." -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "Sprawdź wtyczki przy starcie" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "Włącz integrację URL" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "Włącz wtyczki, aby dodać ścieżki URL" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "Włącz integrację z aplikacją" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "Włącz wtyczki, aby dodać aplikacje" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "Włącz wtyczki, aby uruchamiać zaplanowane zadania" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "Klucz ustawień (musi być unikalny - niewrażliwy na wielkość liter" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "Pokaż obserwowane części" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "Pokaż obserwowane części na stronie głównej" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "Pokaż obserwowane kategorie" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "Pokaż obserwowane kategorie części na stronie głównej" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "Pokaż najnowsze części" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "Pokaż najnowsze części na stronie głównej" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "Pokaż niski stan magazynowy" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "Pokaż elementy o niskim stanie na stronie głównej" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "Pokaż wymagany stan zapasów" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "Szukaj części" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "Ukryj nieaktywne części" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "Wyszukaj zlecenia zakupu" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "Wyklucz nieaktywne zlecenia zakupu" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "Pokaż ilość w formularzach" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "Stały pasek nawigacyjny" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "Format daty" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "Preferowany format wyświetlania dat" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Planowanie komponentów" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "Użytkownik" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Cena" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "Punkt końcowy" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "Sekret" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "Współdzielony sekret dla HMAC" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "Id wiadomości" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "Unikalny identyfikator dla tej wiadomości" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "Host, od którego otrzymano tę wiadomość" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "Nagłówek" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "Nagłówek tej wiadomości" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "Zawartość" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "Łącze" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Autor" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "" msgid "Image" msgstr "Obraz" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Załącznik" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "Brak pliku" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Brak zewnętrznego odnośnika" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Wybierz plik do załączenia" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Komentarz" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3957,27 +3965,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "Pusta domena nie jest dozwolona." -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Niepoprawna nazwa domeny: {domain}" @@ -4228,26 +4236,26 @@ msgstr "Notatki wysyłkowe do użytku wewnętrznego" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Komponent producenta" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Część bazowa" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "Wybierz część" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "Wybierz część" msgid "Manufacturer" msgstr "Producent" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "Wybierz producenta" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "Nazwa parametru" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "Wartość" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "Wartość parametru" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "Jednostki" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "Jednostki parametru" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "Dostawca" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "Wybierz dostawcę" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "" msgid "Note" msgstr "Uwaga" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "koszt podstawowy" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "Opakowanie" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "Opakowanie części" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "Ilość w opakowaniu" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "wielokrotność" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "Zamów wiele" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "Dostępność zaktualizowana" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "Domyślna waluta używana dla tego dostawcy" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "Na stanie" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "Nieaktywny" @@ -4526,16 +4534,16 @@ msgstr "Pobierz obraz z adresu URL" msgid "Delete image" msgstr "Usuń obraz" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "Klient" @@ -4734,7 +4742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "Utwórz nowy towar" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "Nowy towar" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "Towary" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "Dane" @@ -5203,7 +5211,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "Cena całkowita" @@ -5224,9 +5232,9 @@ msgstr "Posiada ceny" msgid "No matching purchase order found" msgstr "Nie znaleziono pasującego zlecenia zakupu" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "Zamówienie" @@ -5239,26 +5247,26 @@ msgstr "" msgid "Order Pending" msgstr "Zamówienie oczekujące" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "Zlecenie zakupu" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "" @@ -5286,7 +5294,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "Link do zewnętrznej witryny" @@ -5310,365 +5318,365 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "Odniesienie zamówienia" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "Status zamówienia zakupu" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "odebrane przez" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "Data wydania" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "Data wystawienia zamówienia" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "Wartość musi być liczbą dodatnią" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "Data wysyłki" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "wysłane przez" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "Ilość elementów" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "Odebrane" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "Cena zakupu" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "Cena zakupu jednostkowego" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "Gdzie kupujący chce przechowywać ten przedmiot?" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Cena sprzedaży" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "Jednostkowa cena sprzedaży" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Wysłane" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "Wysłana ilość" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "Data wysyłki" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "Sprawdzone przez" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "Użytkownik, który sprawdził tę wysyłkę" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "Przesyłka" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "Numer przesyłki" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "Numer śledzenia" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "Informacje o śledzeniu przesyłki" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "Przesyłka została już wysłana" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Zarezerwowana ilość nie może przekraczać ilości na stanie" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "Linia" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "Komponent" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6056,12 +6064,12 @@ msgstr "Duplikuj wybrane" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Usuń wiersz" @@ -6175,8 +6183,8 @@ msgstr "" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "Oczekujące przesyłki" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "Akcje" @@ -6272,21 +6280,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "Wersja" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "Słowa kluczowe" @@ -6298,7 +6306,7 @@ msgstr "" msgid "Category ID" msgstr "ID kategorii" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6319,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Wariant" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Minimalny stan magazynowy" @@ -6323,19 +6331,19 @@ msgstr "Minimalny stan magazynowy" msgid "Used In" msgstr "Użyte w" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6355,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "Ścieżka kategorii" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "Części" @@ -6376,13 +6384,17 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "Kategoria" @@ -6489,13 +6501,13 @@ msgstr "Kategoria" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "Domyślna lokalizacja" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6516,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Kategoria komponentu" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Kategorie części" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "Domyślna lokalizacja dla komponentów w tej kategorii" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "Domyślne słowa kluczowe" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "Nieprawidłowy wybór dla części nadrzędnej" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "Nazwa komponentu" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "Czy szablon" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "Czy ta część stanowi szablon części?" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "Czy ta część jest wariantem innej części?" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "Domyślne wygasanie" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "Czy ten komponent może być zbudowany z innych komponentów?" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "Czy ta część może być użyta do budowy innych części?" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "Czy ta część wymaga śledzenia każdego towaru z osobna?" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "Czy ta część jest aktywna?" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "Czy to wirtualna część, taka jak oprogramowanie lub licencja?" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "Tworzenie użytkownika" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "Ostatnia inwentaryzacja" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "Sprzedaj wiele" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "Data" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "Nazwa testu" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "Testowy opis" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "Wprowadź opis do tego testu" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "Aktywne" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "Wymagane" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "Wymaga wartości" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "Wymaga załącznika" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "Część nadrzędna" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "Wartość parametru" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Wartość domyślna" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "Unikalny wartość ID komponentu" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "Wartość IPN części" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "Poziom" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "Wybierz część nadrzędną" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "Podczęść" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "Ten element BOM jest opcjonalny" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "Notatki pozycji BOM" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "Suma kontrolna" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "Zatwierdzone" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "Część zastępcza" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "Część 1" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "Część 2" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "Wybierz powiązaną część" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7302,338 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Podkategorie" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "Waluta zakupu tego towaru" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "Kopiuj obraz" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "Kopiuj BOM" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "Kopiuj parametry" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "Duplikuj część" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "Usuń istniejące dane" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "Pomiń nieprawidłowe wiersze" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "Włącz tę opcję, aby pominąć nieprawidłowe wiersze" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "Wyczyść istniejący BOM" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "Nie podano ilości" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "Nieprawidłowa ilość" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7679,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "Masz włączone powiadomienia dla tej kategorii" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "Włącz powiadomienia dla tej kategorii" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "Akcje kategorii" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "Edytuj kategorię" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "Edytuj kategorię" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "Usuń kategorię" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "Usuń kategorię" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "Kategoria najwyższego poziomu" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "Części (w tym podkategorie)" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "Utwórz nową część" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "Nowy komponent" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "Parametry części" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "Stwórz nową kategorię komponentów" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "Nowa kategoria" @@ -7772,7 +7785,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7870,15 +7883,15 @@ msgstr "Dostawcy Części" msgid "Part Manufacturers" msgstr "Producenci części" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "" @@ -7937,7 +7950,7 @@ msgstr "Włącz powiadomienia dla tej części" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "Drukuj etykietę" @@ -7947,7 +7960,7 @@ msgstr "Pokaż informacje o cenach" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "Akcje magazynowe" @@ -7959,7 +7972,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "Minimalny poziom stanu magazynowego" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "Warianty" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "Stan" @@ -8158,7 +8171,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "Ostatnia aktualizacja" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "Brak w magazynie" @@ -8332,100 +8345,108 @@ msgstr "Nie określono działania" msgid "No matching action found" msgstr "Nie znaleziono pasującej akcji" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "Nie znaleziono wyników dla danych kodu kreskowego" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "Znaleziono wyniki dla danych kodu kreskowego" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "Kod kreskowy pasuje do istniejącego elementu" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "Brak dopasowania dla kodu kreskowego dostawcy" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "Kod kreskowy nie pasuje do istniejących pozycji magazynowych" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "Znaleziono wiele zleceń zakupu pasujących do '{order}'" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "Nie znaleziono pasującego zlecenia zakupu dla '{order}'" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "Zlecenie zakupu nie pasuje do dostawcy" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "Nie znaleziono pozycji oczekującej dla części od dostawcy" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "Dalsze informacje wymagane do odbioru pozycji" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "Otrzymana pozycja zlecenia zakupu" @@ -8433,51 +8454,59 @@ msgstr "Otrzymana pozycja zlecenia zakupu" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" +msgstr "" + +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:87 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order is not pending" msgstr "Zlecenie zakupu nie jest oczekujące" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:129 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "Zlecenie zakupu nie zostało złożone" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8526,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "Brak prawidłowych obiektów do szablonu" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9160,7 +9213,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "Cena jednostkowa" @@ -9173,7 +9226,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "Razem" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "Wynik" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "Zainstalowane elementy" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "Numer seryjny" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9299,8 @@ msgstr "" msgid "Location ID" msgstr "ID lokalizacji" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "Ścieżka lokalizacji" @@ -9279,7 +9332,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "Zainstalowane w" @@ -9304,9 +9357,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "Data ważności" @@ -9372,316 +9425,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Lokacje stanu magazynowego" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Właściciel" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "Wybierz właściciela" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "Nadrzędny towar" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "Część podstawowa" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "Wybierz pasującą część dostawcy dla tego towaru" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "Ilość w magazynie" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "Wyszukaj zlecenie zakupu" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "Zlecenie zakupu dla tego towaru" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "Usuń po wyczerpaniu" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "Ilość musi być liczbą całkowitą" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "Numer seryjny już istnieje" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "Notatki do wpisu" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "Należy podać wartość dla tego testu" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "Wynik testu" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Podlokalizacje" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "" @@ -9971,7 +10024,7 @@ msgstr "Poddany kwarantannie" msgid "Legacy stock tracking entry" msgstr "Starsze śledzenie wpisów stanu magazynowego" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "Utworzono element magazynowy" @@ -10027,7 +10080,7 @@ msgstr "Podziel z pozycji nadrzędnej" msgid "Split child item" msgstr "Podziel element podrzędny" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "Scalone przedmioty magazynowe" @@ -10047,7 +10100,7 @@ msgstr "Dane wyjściowe kolejności kompilacji ukończone" msgid "Build order output rejected" msgstr "Odrzucono wynik zlecenia produkcji" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "Zużyte przez kolejność kompilacji" @@ -10108,7 +10161,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10169,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "Skanuj do lokacji" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "Akcje druku" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "Przelicz stan magazynowy" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "Usuń stan magazynowy" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "Przenieś stan magazynowy" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "Budowa" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "Tylko do odczytu" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "Lokacje nie są ustawione" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "" @@ -10321,7 +10374,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10386,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "Edytuj lokację" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "Nowa lokalizacja" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "Usuń" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11007,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "Prześlij raport o błędzie" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "skopiuj do schowka" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "Wymagana ilość" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "Minimalna ilość" @@ -11758,7 +11811,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "" @@ -11948,7 +12001,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12021,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12076,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,12 +12124,12 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "" @@ -12129,13 +12182,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12196,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12749,39 +12802,39 @@ msgstr "Istnieją błędy formularza" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +12919,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12931,358 +12984,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13719,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13887,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "" @@ -13891,18 +13945,14 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "" @@ -13951,432 +14001,432 @@ msgstr "" msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "Dodaj" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "" diff --git a/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po index d6f1651818..a0419900ec 100644 --- a/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Portuguese, Brazilian\n" "Language: pt_BR\n" @@ -56,29 +56,29 @@ msgstr "" msgid "Enter date" msgstr "" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "" @@ -135,74 +135,74 @@ msgstr "" msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "" @@ -366,158 +366,158 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,17 +726,17 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "" @@ -789,72 +789,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" @@ -1260,7 +1260,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "" @@ -1270,21 +1270,21 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "" @@ -1508,7 +1508,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1584,13 +1584,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "" @@ -1600,22 +1600,22 @@ msgstr "" msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,7 +1633,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" @@ -1684,7 +1684,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "" @@ -1696,7 +1696,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1707,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1786,16 +1786,16 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" @@ -1875,8 +1875,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,11 +1890,11 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -2037,15 +2037,15 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,362 +2103,370 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "" msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3957,27 +3965,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4228,26 +4236,26 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,16 +4534,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "" @@ -4734,7 +4742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "" @@ -5203,7 +5211,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" @@ -5224,9 +5232,9 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" @@ -5239,26 +5247,26 @@ msgstr "" msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "" @@ -5286,7 +5294,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "" @@ -5310,365 +5318,365 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6056,12 +6064,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6175,8 +6183,8 @@ msgstr "" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "" @@ -6272,21 +6280,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6306,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6319,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6331,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6355,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,13 +6384,17 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" @@ -6489,13 +6501,13 @@ msgstr "" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6516,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7302,338 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7679,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7785,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7870,15 +7883,15 @@ msgstr "" msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "" @@ -7937,7 +7950,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +7960,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +7972,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8171,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8345,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8454,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8526,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9160,7 +9213,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,7 +9226,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9299,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9332,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9357,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9372,316 +9425,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "" @@ -9971,7 +10024,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "" @@ -10027,7 +10080,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "" @@ -10047,7 +10100,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10161,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10169,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "" @@ -10321,7 +10374,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10386,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11007,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11811,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "" @@ -11948,7 +12001,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12021,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12076,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,12 +12124,12 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "" @@ -12129,13 +12182,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12196,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12749,39 +12802,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +12919,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12931,358 +12984,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13719,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13887,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "" @@ -13891,18 +13945,14 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "" @@ -13951,432 +14001,432 @@ msgstr "" msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "" diff --git a/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po index bb8c3169e9..35dd19e878 100644 --- a/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:39\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:37\n" "Last-Translator: \n" "Language-Team: Romanian\n" "Language: ro_RO\n" @@ -56,29 +56,29 @@ msgstr "" msgid "Enter date" msgstr "" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "" @@ -135,74 +135,74 @@ msgstr "" msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "" @@ -366,158 +366,158 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,17 +726,17 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "" @@ -789,72 +789,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" @@ -1260,7 +1260,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "" @@ -1270,21 +1270,21 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "" @@ -1508,7 +1508,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1584,13 +1584,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "" @@ -1600,22 +1600,22 @@ msgstr "" msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,7 +1633,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" @@ -1684,7 +1684,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "" @@ -1696,7 +1696,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1707,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1786,16 +1786,16 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" @@ -1875,8 +1875,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,11 +1890,11 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -2037,15 +2037,15 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,362 +2103,370 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "" msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3957,27 +3965,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4228,26 +4236,26 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,16 +4534,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "" @@ -4734,7 +4742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "" @@ -5203,7 +5211,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" @@ -5224,9 +5232,9 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" @@ -5239,26 +5247,26 @@ msgstr "" msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "" @@ -5286,7 +5294,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "" @@ -5310,365 +5318,365 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6056,12 +6064,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6175,8 +6183,8 @@ msgstr "" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "" @@ -6272,21 +6280,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6306,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6319,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6331,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6355,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,13 +6384,17 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" @@ -6489,13 +6501,13 @@ msgstr "" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6516,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7302,338 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7679,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7785,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7870,15 +7883,15 @@ msgstr "" msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "" @@ -7937,7 +7950,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +7960,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +7972,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8171,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8345,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8454,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8526,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9160,7 +9213,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,7 +9226,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9299,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9332,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9357,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9372,316 +9425,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "" @@ -9971,7 +10024,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "" @@ -10027,7 +10080,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "" @@ -10047,7 +10100,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10161,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10169,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "" @@ -10321,7 +10374,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10386,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11007,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11811,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "" @@ -11948,7 +12001,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12021,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12076,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,12 +12124,12 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "" @@ -12129,13 +12182,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12196,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12749,39 +12802,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +12919,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12931,358 +12984,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13719,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13887,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "" @@ -13891,18 +13945,14 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "" @@ -13951,432 +14001,432 @@ msgstr "" msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "" diff --git a/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po index bb6632c2d2..2c50a6b6c6 100644 --- a/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -56,29 +56,29 @@ msgstr "Подробности об ошибке можно найти в пан msgid "Enter date" msgstr "Введите дату" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "Записи" @@ -135,80 +135,80 @@ msgstr "Указанный домен электронной почты не у msgid "Registration is disabled." msgstr "Регистрация отключена." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "недопустимое количество" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Пустая строка серийного номера" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Повторяющийся серийный номер" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Недопустимый диапазон группы: {group}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Диапазон группы {group} превышает допустимое количество ({expected_quantity})" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Неверная последовательность групп: {group}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Серийных номеров не найдено" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Число уникальных серийных номеров ({s}) должно соответствовать количеству ({q})" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Удалить HTML теги из этого значения" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Ошибка соединения" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Сервер ответил неверным кодом статуса" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Произошло исключение" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Сервер ответил неверным значением Контент-Длина" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Изображение слишком большое" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Загрузка изображения превышен максимальный размер" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Удаленный сервер вернул пустой ответ" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "Предоставленный URL не является допустимым файлом изображения" #: InvenTree/locales.py:18 msgid "Arabic" -msgstr "" +msgstr "Арабский" #: InvenTree/locales.py:19 msgid "Bulgarian" @@ -244,7 +244,7 @@ msgstr "Испанский (Мексика)" #: InvenTree/locales.py:27 msgid "Estonian" -msgstr "" +msgstr "Эстонский" #: InvenTree/locales.py:28 msgid "Farsi / Persian" @@ -366,158 +366,158 @@ msgstr "[{site_name}] Войти в приложение" msgid "Email" msgstr "EMail" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "Ошибка запуска проверки плагина" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "Метаданные должны быть объектом python dict" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "Метаданные плагина" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "Поле метаданных JSON для использования внешними плагинами" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Неправильно отформатированный шаблон" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "Указан неизвестный ключ формата" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "Отсутствует требуемый ключ формата" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Ссылочный идентификатор не может быть пустым" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "Ссылка должна соответствовать шаблону {pattern}" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Номер ссылки слишком большой" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "Повторяющиеся имена не могут существовать под одним и тем же родителем" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Неверный выбор" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "Название" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "Описание" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "Описание (необязательно)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "Путь" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "Записи о скидке (необязательно)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Данные штрих-кода" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Данные стороннего штрих-кода" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "Хэш штрих-кода" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Уникальный хэш данных штрих-кода" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Обнаружен существующий штрих-код" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Ошибка сервера" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "Сервер зарегистрировал ошибку." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "Должно быть действительным номером" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "Суперпользователь" msgid "Is this user a superuser" msgstr "Это пользователь является суперпользователем" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "ССЫЛКА файла изображения на удаленном msgid "Downloading images from remote URL is not enabled" msgstr "Загрузка изображений с удаленного URL-адреса не включена" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "Проверка фонового работника не удалась" @@ -726,17 +726,17 @@ msgstr "О программе InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Заказ на производство должен быть отменен перед удалением" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "Расходники" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "Необязательно" msgid "Tracked" msgstr "Отслеживается" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "Зарезервировано" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "Доступно" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "Заказ на производство" @@ -789,72 +789,72 @@ msgstr "Заказ на производство" msgid "Build Orders" msgstr "Заказы на производство" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "Сборка BOM не подтверждена" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "Порядок сборки не может быть создан для неактивной части" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "Порядок сборки не может быть создан для разблокированной части" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "Неверный выбор для родительской сборки" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "Должен быть указан ответственный пользователь или группа" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "Деталь заказа на производства не может быть изменена" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "Ссылка на заказ на производство" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Отсылка" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "Краткое описание заказа на производство (необязательно)" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Родительский заказ на производство" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "Заказ на производство, которому принадлежит этот заказ на производство" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "Заказ на производство, которому принад #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "Деталь" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "Выберите деталь для производства" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Ссылка на заказ" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "Заказ на продажу, которому принадлежит этот заказ на производство" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Место хранения - источник" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Выберите место хранения для этого заказа на производство (оставьте пустым, чтобы взять с любого места на складе)" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "Место хранения результата" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Выберите место хранения завершенных элементов" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "Количество производимых деталей" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Количество складских позиций для производства" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "Произведенные детали" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Количество складских позиций, которые были произведены" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "Статус заказа на производство" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "Код статуса заказа на производство" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "Код партии" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "Код партии для продукции" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Дата создания" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "Целевая дата завершения" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Целевая дата для заказа на производства. Заказ будет просрочен после этой даты." -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "Дата завершения" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "выполнено" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "Создано" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "Пользователь, создавший этот заказ на производство" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "Ответственный" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "Пользователь, ответственный за этот заказ на производство" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Внешняя ссылка" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "Ссылка на внешний URL" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "Приоритет производства" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "Приоритет этого заказа на производство" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "Приоритет этого заказа на производство msgid "Project Code" msgstr "Код проекта" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "Код проекта для этого заказа на производство" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "Не удалось выгрузить задачу для распределения на сборку" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "Заказ на производство {build} был завершен" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "Заказ на производство был завершен" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "Продукция не указана" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "Продукция уже произведена" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "Продукция не совпадает с заказом на производство" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "Количество должно быть больше нуля" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "Количество не может быть больше количества продукции" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "Сборка {serial} не прошла все необходимые тесты" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "Номер позиции для производства" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "Объект производства" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "Объект производства" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "Количество" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "Требуемое количество для заказа на производство" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Элемент производства должен указать продукцию, как главную деталь помеченную как отслеживаемая" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Резервируемое количество ({q}) не должно превышать доступное количество на складе ({a})" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "Складская позиция перераспределена" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "Резервируемое количество должно быть больше нуля" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "Количество должно быть 1 для сериализованных запасов" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "Выбранная складская позиция не соответствует позиции в BOM" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "Складская позиция" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "Исходная складская позиция" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "Количество на складе для производства" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "Установить в" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "Целевая складская позиция" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "Наименование детали" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "Название кода проекта" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "Выход Продукции" @@ -1260,7 +1260,7 @@ msgstr "Требуется целое количество, так как мат #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Серийные номера" @@ -1270,21 +1270,21 @@ msgstr "Введите серийные номера для продукции" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "Расположение" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "Место хранения для завершенной продукции" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "Статус" @@ -1508,7 +1508,7 @@ msgstr "Не удалось запустить задачу автораспре msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "Код производителя" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "Код детали" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "IPN детали" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "Серийный номер" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "Зарезервированное количество" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1582,15 +1582,15 @@ msgstr "Отслеживание" #: build/serializers.py:1237 msgid "Inherited" -msgstr "" +msgstr "Унаследованные" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "Разрешить разновидности" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "Позиция BOM" @@ -1600,22 +1600,22 @@ msgstr "Позиция BOM" msgid "Allocated Stock" msgstr "Зарезервированные Запасы" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "В заказе" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "В производстве" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,9 +1633,9 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" -msgstr "" +msgstr "Внешний склад" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 @@ -1684,7 +1684,7 @@ msgstr "Миниатюра детали" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "Действия со штрих-кодом" @@ -1696,7 +1696,7 @@ msgstr "Действия со штрих-кодом" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Показать QR-код" @@ -1707,7 +1707,7 @@ msgstr "Показать QR-код" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "Отвязать штрих-код" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "Привязать штрих-код" @@ -1786,16 +1786,16 @@ msgstr "Остатки не были полностью зарезервиров #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "Завершенная продукция" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "Завершенная продукция" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "Заказ на продажу" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "Создано" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "Приоритет" @@ -1875,8 +1875,8 @@ msgstr "Источник запаса" msgid "Stock can be taken from any available location." msgstr "Остатки не могут быть получены из любого доступного места хранения." -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "Назначение" @@ -1890,11 +1890,11 @@ msgstr "Зарезервированные детали" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "Партия" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "Создано" @@ -2037,15 +2037,15 @@ msgstr "Позиции" msgid "Incomplete Outputs" msgstr "Незавершенная продукция" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "Ссылка" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "Файл" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "У пользователя нет прав на удаление этого вложения" @@ -2103,362 +2103,370 @@ msgstr "Файл {name.title()}" msgid "Select {name} file to upload" msgstr "Выберите {name} файл для загрузки" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "Обновлено" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "Временная метка последнего обновления" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "URL сайта заблокирован настройками" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "Уникальный код проекта" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "Описание проекта" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "Пользователь или группа, ответственные за этот проект" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "Ключ настроек (должен быть уникальным - не чувствителен к регистрам)" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "Значения настроек" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "Выбранное значение не является допустимым" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "Значение должно быть булевым" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "Значение должно быть целым числом" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "Строка ключа должна быть уникальной" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "Нет группы" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "Требуется перезапуск" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "Настройки были изменены, что требует перезапуска сервера" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "Ожидаемые миграции" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "Количество ожидаемых миграций базы данных" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "Название сервера" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "Текстовое описание сервера" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "Название инстанса" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "Имя сервера в заголовке" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "Ограничить отображение `О...`" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "Показать `О...` только суперпользователям" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "Название компании" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "Внутреннее название компании" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "Базовая ссылка" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "Базовая ссылка для экземпляра сервера" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "Валюта по умолчанию" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "Выберите базовую валюту для расчета цены" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "Поддерживаемые валюты" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "Список поддерживаемых кодов валют" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "Интервал обновления курса валют" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "Как часто обновлять курс валют (установите \"ноль\", чтобы выключить)" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "дней" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "Плагин обновления валют" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "Модуль обновления валюты" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "Скачать по ссылке" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "Разрешить загрузку удаленных изображений и файлов по внешнему URL" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "Ограничение размера загрузки" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "Максимально допустимый размер загрузки для удалённого изображения" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "User-Agent, используемый для загрузки из URL" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Позволяет переопределить user-Agent, используемый для загрузки изображений и файлов с внешнего URL (оставьте пустым по умолчанию)" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "Строгая проверка URL-адреса" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "Требуется спецификация схемы при проверке URL-адресов" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "Требуется подтверждение" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "Требовать явное подтверждение пользователя для определенного действия." -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "Глубина дерева" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Глубина дерева по умолчанию для просмотра дерева. Глубокие уровни загружены по мере необходимости." -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "Интервал проверки обновлений" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "Как часто проверять наличие обновлений (установите ноль чтобы выключить)" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "Автоматическое резервное копирование" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "Включить автоматическое резервное копирование базы данных и медиа-файлов" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "Интервал резервного копирования" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "Укажите количество дней между событиями автоматического резервного копирования" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "Интервал удаления задачи" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "Результаты фоновых задач будут удалены после указанного количества дней" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "Интервал удаления журнала ошибок" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "Журналы ошибок будут удалены после указанного количества дней" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "Интервал удаления уведомления" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "Уведомления пользователя будут удалены после указанного количества дней" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Поддержка штрих-кодов" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "Включить поддержку сканера штрих-кодов в веб-интерфейсе" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "Задержка сканирования штрих-кода" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "Время задержки обработки штрих-кода" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "Поддержка веб-камер штрих-кодов" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "Разрешить сканирование штрих-кода через веб-камеру в браузере" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" +msgstr "Отображать данные штрих-кода в браузере в виде текста" + +#: common/models.py:1419 +msgid "Barcode Generation Plugin" +msgstr "Плагин генерации штрих-кода" + +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1406 +#: common/models.py:1425 msgid "Part Revisions" msgstr "Ревизия детали" -#: common/models.py:1407 +#: common/models.py:1426 msgid "Enable revision field for Part" msgstr "Включить поле ревизии для элемента" -#: common/models.py:1412 +#: common/models.py:1431 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1413 +#: common/models.py:1432 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1418 +#: common/models.py:1437 msgid "Allow Deletion from Assembly" msgstr "Разрешить удаление из заказа" -#: common/models.py:1419 +#: common/models.py:1438 msgid "Allow deletion of parts which are used in an assembly" msgstr "Разрешить удаление частей, которые используются в заказе" -#: common/models.py:1424 +#: common/models.py:1443 msgid "IPN Regex" msgstr "Регулярное выражение IPN" -#: common/models.py:1425 +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "Шаблон регулярного выражения для сопоставления IPN детали" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "Разрешить повторяющиеся IPN" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "Разрешить нескольким элементам использовать один и тот же IPN" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "Разрешить редактирование IPN" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "Разрешить изменение значения IPN при редактировании детали" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "Скопировать данные BOM детали" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "Копировать данные BOM по умолчанию при дублировании детали" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "Скопировать данные параметров детали" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "Копировать данных параметров по умолчанию при дублировании детали" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "Скопировать данные тестирования детали" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "Копировать данные тестирования по умолчанию при дублировании детали" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "Скопировать параметры по шаблону категории" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "Копировать параметры по шаблону категории при создании детали" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "Копировать параметры по шаблону катего msgid "Template" msgstr "Шаблон" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "По умолчанию детали являются шаблонами" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "Производимая деталь" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "По умолчанию детали могут быть собраны из других компонентов" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "Компонент" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "По умолчанию детали могут использоваться в качестве суб-компонентов" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "Можно купить" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "По умолчанию детали являются отслеживаемыми" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "Можно продавать" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "Детали продаются по умолчанию" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "По умолчанию детали являются отслеживаемыми" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "Виртуальная" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "Детали являются виртуальными по умолчанию" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "Показать Импорт в просмотре" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "Отобразить мастер импорта на некоторых видах деталей" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "Показывать связанные детали" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "Отображать связанные детали для элемента" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "Начальные данные о запасах" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "Разрешить создание начального запаса при добавлении новой детали" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "Исходные данные о поставщике" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Разрешить создание исходных данных о поставщике при добавлении новой детали" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "Формат отображения детали" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "Формат для отображения имени детали" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "Значок раздела по умолчанию" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "Значок категории по умолчанию (пустой означает отсутствие значка)" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "Принудительное применение единиц измерения параметров" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "Если введены единицы, значения параметра должны соответствовать указанным единицам измерения" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "Минимальные Цены Десятичные Значки" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Минимальное количество десятичных знаков при отображении данных о ценах" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "Макс. Цены десятичные знаки" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "Минимальное количество десятичных знаков при отображении данных о ценах" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "Использовать цены поставщика" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Включить разницу цен поставщиков при расчетах цен" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "Изменить историю покупки" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Ценообразование по историческим заказам на поставку отменяет различия в ценах поставщиков" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "Использовать цены из складских позиций" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Использовать расценки из ручного ввода данных о запасах для расчета цен" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "Возраст цен складских позиций" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Исключить складские позиции старше указанного количества дней с расчёта цен" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "Использовать варианты цен" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "Включить разницу цен поставщиков при расчетах цен" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "Только Активные Варианты" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "Использовать только активные запчасти для расчета стоимости варианта" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "Интервал пересчета цен" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "Количество дней до автоматического обновления цены" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "Внутренние цены" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "Разрешить внутренние цены для частей" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "Переопределение внутренней цены" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "При наличии внутренних цен переопределить ценовой диапазон" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "Включить печать этикеток" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "Включить печать этикеток из веб-интерфейса" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "Изображение меток DPI" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "Разрешение DPI при создании файлов изображений для печати этикеток плагинов" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "Включить отчеты" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "Включить генерацию отчетов" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "Режим отладки" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "Генерировать отчеты в режиме отладки (вывод HTML)" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "Журнал ошибок отчета" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "Журнал ошибок, которые возникают при создании отчетов" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "Размер страницы" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "Размер страницы по умолчанию для PDF отчетов" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "Включить отчеты" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "Включить генерацию отчетов" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "Прикрепить отчеты о тестах" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "При печати отчета о тестировании приложить копию тестового отчета к соответствующему складской позиции" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "Глобально уникальные серийные номера" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "Серийные номера для складских позиций должны быть уникальными глобально" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "Автоматическое заполнение серийных номеров" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "Автоматическое заполнение серийных номеров в формах" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "Удалить исчерпанный запас" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "Определяет поведение по умолчанию, когда складская позиция заканчивается" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "Код партии Шаблона" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "Шаблон для создания кодов партии по умолчанию для складских позиций" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "Срок годности Запасов" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "Включить функцию истечения срока годности" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "Использовать просроченные остатки в производстве" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "Разрешить продажу просроченных запасов" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "Время Залежалости Запасов" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "Количество дней перед тем как складская единица будет считаться просроченной" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "Использовать просроченные остатки в производстве" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "Разрешить использовать просроченные остатки в производстве" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "Контроль за собственными запасами" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "Разрешить владельцу контролировать расположение складов и номенклатуры" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "Значок местоположения по умолчанию" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "Значок местоположения склада по умолчанию (пустой означает отсутствие значка)" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "Показать установленные складские позиции" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "Отображать установленные складские позиции в складских таблицах" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "Проверять спецификацию при установке изделий" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "Установленные единица хранения должны присутствовать в спецификации для родительской детали" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "Разрешить передачу товара, отсутствующего на складе" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "Разрешить перемещение товаров, которых нет на складе, между складами" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "Паттерн ссылки заказа на производство" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "Поле требуемого паттерна для создания ссылки заказа на производство" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "Требуется ответственный владелец" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "Ответственный владелец должен быть назначен для каждого заказа" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "Запретить вывод сборки до тех пор, пока не пройдут все необходимые тесты" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "Включить заказы на возврат" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "Включите функцию заказа на возврат в пользовательском интерфейсе" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "Шаблон заказа на возврат товара" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "Необходимый шаблон для создания поля «Возврат заказа»" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "Редактировать завершенные возвратные заказы" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "Разрешить редактирование возвращенных заказов после их завершения" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "Шаблон заказа на возврат товара" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "Необходимый шаблон для создания поля «Возврат заказа»" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "Редактировать завершенные заказы на покупку" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "Включить SSO" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "Необходимо указать EMail" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "Написать дважды" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "Пароль дважды" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "Разрешенные домены" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "Принудительное MFA" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "Пользователи должны использовать многофакторную безопасность." -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "Проверять плагины при запуске" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Исключить складские позиции во внешних местах хранения из инвентаризации" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "Автоматический период инвентаризации" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Количество дней между автоматической записью запасов (установите нулевое значение для отключения)" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "Интервал удаления журнала ошибок" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Журналы ошибок будут удалены после указанного количества дней" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "Показывать полные имена пользователей" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "Отображать полные имена пользователей вместо логинов" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "Включить данные тестовой станции" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "Включить сбор данных с тестовой станции для получения результатов тестирования" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "Ключ настроек (должен быть уникальным - не чувствителен к регистру)" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "Скрыть неактивные детали" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Скрывать неактивные части в результатах, отображаемых на главной странице," -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "Показывать детали, на которые включены уведомления" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "Показывать детали, на которые включены уведомления, на главной странице" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "Показывать категории, на которые включены уведомления" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "Показывать категории, на которые включены уведомления, на главной странице" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "Показывать последние детали" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "Показывать последние детали на главной странице" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "Показывать недопустимые спецификации" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "Показывать BOMы, ожидающие проверки, на главной странице" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "Показывать изменившиеся складские запасы" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "Показывать складские позиции с недавно изменившимися запасами на главной странице" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "Показывать низкие складские запасы" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "Показывать складские позиции с низкими запасами на главной странице" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "Показывать закончившиеся складские позиции" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "Показывать закончившиеся складские позиции на главной странице" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "Показывать требуемые складские позиции" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "Показывать требуемые для производства складские позиции на главной странице" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "Показывать складские позиции с истекшим сроком годности" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "Показывать складские позиции с истёкшим сроком годности на главной странице" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "Показывать залежалые складские позиции" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "Показывать складские позиции с истекающим сроком годности на главной странице" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "Показывать незавершённые производства" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "Показывать незавершённые производства на главной странице" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "Показывать просроченные производства" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "Показывать просроченные производства на главной странице" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "Показать невыполненные заказы" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "Покажите невыполненные заказы на покупку на главной странице" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "Показать просроченные заказы на производство" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "Показывать просроченные сборки на главной странице" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "Показать невыполненные заказы" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "Покажите невыполненные заказы на покупку на главной странице" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "Показать просроченные заказы на продажу" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "Показывать просроченные заказы на покупку на главной странице" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "Показывать новости" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Отображение PDF-этикетки в браузере вместо загрузки в виде файла" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "Принтер этикетки по умолчанию" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "Настроить принтер этикеток по умолчанию" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "Отображение встроенного отчета" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Отображение PDF-этикетки в браузере вместо загрузки в виде файла" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "Поиск Деталей" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "Отображение деталей в окне предварительного просмотра поиска" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "Поиск деталей поставщика" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "Отображение деталей поставщика в окне предварительного просмотра поиска" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "Новая деталь производителя" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "Отображение деталей поставщика в окне предварительного просмотра поиска" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "Скрыть неактивные детали" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "Исключить неактивные детали из окна предварительного просмотра поиска" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "Категории поиска" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "Отображение деталей в окне предварительного просмотра поиска" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "Поиск Запасов" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "Отображать складские позиции в окне предварительного просмотра поиска" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "Скрыть недоступные складские позиции" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "Исключить недоступные складские позиции из окна предварительного просмотра поиска" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "Поиск мест хранения" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "Отображать места хранения в окне предварительного просмотра поиска" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "Поиск компаний" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "Поиск заказов на производство" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "Отображать заказы на производство в окне предварительного просмотра поиска" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "Поиск заказов на покупку" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "Поиск заказов на продажу" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "Поиск заказов на возврат" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "Поиск по Regex" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "Фиксированная панель навигации" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "Формат даты" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Планирование деталей" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Инвентаризация детали" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "Пользователь" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Цена" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "Конечная точка" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "Токен" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "Токен для доступа" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "Секрет" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "ID Сообщения" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "Хост" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "Заголовок" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "Тело" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "Работал над" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "Код" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Заголовок" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "Ссылка" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "Опубликовано" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Автор" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "Итого" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "Читать" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "" msgid "Image" msgstr "Изображение" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "Файл изображения" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "Название единицы" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Символ" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Определение" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Вложения" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "Файл не найден" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Отсутствует внешняя ссылка" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Выберите файл для вложения" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Комментарий" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3957,27 +3965,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "Пустой домен не допускается." -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Недопустимое доменное имя: {domain}" @@ -4228,26 +4236,26 @@ msgstr "Записи отправления для внутреннего пол msgid "Link to address information (external)" msgstr "Ссылка на адресную информацию (внешняя)" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Деталь производителя" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Базовая деталь" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "Выберите деталь" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "Выберите деталь" msgid "Manufacturer" msgstr "Производитель" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "Выберите производителя" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "Ссылка на сайт производителя" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "Описание детали производителя" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "Наименование параметра" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "Значение" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "Значение параметра" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "Ед.изм" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "Единицы измерения параметра" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "Деталь поставщика" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "Связанная деталь производителя должна ссылаться на ту же базовую деталь" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "Поставщик" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "Выберите поставщика" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "Код поставщика" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "Выберите производителя части" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "Ссылка на сайт поставщика" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "Описание детали поставщика" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "Описание детали поставщика" msgid "Note" msgstr "Запись" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "базовая стоимость" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "Упаковка" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "Упаковка детали" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "Кол-во в упаковке" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "множественные" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "Кратность заказа" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "Валюта по умолчанию для этого поставщи msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "На складе" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "Неактивный" @@ -4526,16 +4534,16 @@ msgstr "Скачать изображение по ссылке" msgid "Delete image" msgstr "Удалить изображение" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "Покупатель" @@ -4734,7 +4742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "Добавить параметр" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "Создать новую складскую позицию" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "Новая складская позиция" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "Складские позиции" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "Данные" @@ -5203,7 +5211,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "Общая стоимость" @@ -5224,9 +5232,9 @@ msgstr "Имеет цену" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "Заказ" @@ -5239,26 +5247,26 @@ msgstr "" msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "Заказ на закупку" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "Заказ на возврат" @@ -5286,7 +5294,7 @@ msgstr "Описание заказа (дополнительно)" msgid "Select project code for this order" msgstr "Выберите код проекта для этого заказа" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "Ссылка на внешнюю страницу" @@ -5310,365 +5318,365 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "Ссылка на заказ" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "Компания, в которой детали заказываются" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "получил" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "Дата создания" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "Компания, которой детали продаются" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "Дата отгрузки" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "Отправлено" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "Количество" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "Записи о позиции" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "Описание позиции (необязательно)" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "Контекст" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "Дополнительный контекст для этой строки" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "Цена за единицу" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "удалено" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "Деталь поставщика" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "Получено" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "Закупочная цена" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Цена продажи" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "Цена последней продажи" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Доставлено" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "Отгруженное кол-во" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "Дата отправления" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "Дата доставки" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "Проверн" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "Отправление" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "Номер отправления" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "Номер отслеживания" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "Информация об отслеживании доставки" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "Номер счета" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "Отправка не имеет зарезервированных складских позиций" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "Складская позиция не была назначена" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "Невозможно зарезервировать складскую позицию в позицию другой детали" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "Количество должно быть 1 для сериализированных складских позиций" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "Строка" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "Элемент" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "Выберите складскую позицию для резервирования" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "Укажите резервируемое количество" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "Выберите позицию, возвращаемую от клиента" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "Дата получения" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "Результат" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "Внутренний код детали" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "Выберите место назначения для полученных элементов" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "Введите код партии для поступающих складских позиций" @@ -6056,12 +6064,12 @@ msgstr "Дублировать выбранное" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Удалить строку" @@ -6175,8 +6183,8 @@ msgstr "" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "Ожидающие отправления" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "Действия" @@ -6272,21 +6280,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "Ревизия" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "Ключевые слова" @@ -6298,7 +6306,7 @@ msgstr "Изображение Детали" msgid "Category ID" msgstr "Код категории" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "Название категории" @@ -6311,11 +6319,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Разновидность" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Минимальный запас" @@ -6323,19 +6331,19 @@ msgstr "Минимальный запас" msgid "Used In" msgstr "Используется в" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "Производится" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "Минимальная Стоимость" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "Максимальная Стоимость" @@ -6347,19 +6355,19 @@ msgstr "ID родителя" msgid "Parent Name" msgstr "Имя родителя" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "Путь к категории" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "Детали" @@ -6376,13 +6384,17 @@ msgstr "ID Элемента BOM" msgid "Parent IPN" msgstr "Родительский IPN" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "Минимальная цена" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "Категория" @@ -6489,13 +6501,13 @@ msgstr "Категория" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "Место хранения по умолчанию" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Общий запас" @@ -6504,784 +6516,785 @@ msgstr "Общий запас" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Категория детали" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Категория детали" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "Место хранения по умолчанию для деталей этой категории" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "Структура" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "Детали не могут быть непосредственно отнесены к структурной категории, но могут быть отнесены к дочерним категориям." -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "Ключевые слова по умолчанию" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "Ключевые слова по умолчанию для деталей этой категории" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Иконка" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "Иконка (необязательно)" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "Складская позиция с этим серийным номером уже существует" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "Часть с таким именем, IPN и ревизией уже существует." -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "Наименование детали" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "Шаблон" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "Эта деталь является шаблоном?" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "Эта деталь является разновидностью другой детали?" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "Описание детали (необязательно)" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "Ключевые слова для улучшения видимости в результатах поиска" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "Категория" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "Ревизия или серийный номер детали" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "Где обычно хранится эта деталь?" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "Поставщик по умолчанию" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "Срок действия по умолчанию" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "Срок годности (в днях) для складских позиций этой детали" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "Минимально допустимый складской запас" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "Единицы измерения этой детали" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "Может ли эта деталь быть создана из других деталей?" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "Может ли эта деталь использоваться для создания других деталей?" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "Является ли каждый экземпляр этой детали уникальным, обладающим серийным номером?" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "Может ли эта деталь быть закуплена у внешних поставщиков?" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "Может ли эта деталь быть продана покупателям?" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "Эта деталь активна?" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "Эта деталь виртуальная, как программный продукт или лицензия?" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "Контрольная сумма BOM" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "BOM проверил" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "Дата проверки BOM" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "Создатель" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "Последняя инвентаризация" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "Продать несколько" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "Минимальная Стоимость BOM" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "Максимальная Стоимость BOM" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "Количество Элементов" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "Дата" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "Дополнительные Записи" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "Отчет" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "Количество Деталей" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "Шаблоны тестирования могут быть созданы только для отслеживаемых деталей" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "Название теста" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "Введите имя для теста" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "Описание теста" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "Введите описание для этого теста" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "Включено" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "Требуется" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "Требуется значение" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "Варианты" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "Название параметра" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "Описание параметра" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "Чекбокс" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "Родительская деталь" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Шаблон параметра" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "Значение Параметра" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Значение по умолчанию" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "Код или наименование детали" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "Значение IPN" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "Уровень" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "Уровень BOM" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "Выберите родительскую деталь" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "Суб-деталь" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "Выбрать деталь для использования в BOM" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Эта позиция - расходник. (она не отслеживается в заказах на производство)" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Перерасход" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Расчетное количество перерасходов производства (абсолютное или процентное)" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "Записи о позиции BOM" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "Контрольная сумма" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "Проверен" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Складские позиции для разновидностей деталей могут быть использованы для этой позиции BOM" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "Для отслеживаемых деталей количество должно быть целым числом" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "Позиция BOM-родителя" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "Замена детали" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "Часть 1" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "Часть 2" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "Выберите связанную часть" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7302,338 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Подкатегории" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "Валюта закупки складской позиции" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "Не выбрана ни одна деталь" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "Выберите категорию" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "Оригинальная деталь" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "Копировать Изображение" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "Скопировать BOM" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "Скопировать параметры" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "Копировать Записи" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "Скопировать записи из оригинальной детали" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "Выберите поставщика (или оставьте поле пустым, чтобы пропустить)" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "Выберите поставщика (или оставьте поле пустым, чтобы пропустить)" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "Код производителя" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "Дублировать деталь" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "Начальный запас" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "Копировать параметры категории" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "Копировать шаблоны параметров из выбранной категории деталей" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "Существующее изображение" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "Исключить складские позиции в внешних местах хранения" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "Создать отчет" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "Обновить детали" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "Обновить" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "Можно произвести" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "Подходящая деталь не найдена" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "Некорректное количество" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "Общее количество" @@ -7666,65 +7679,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "Выполнить инвентаризацию для этой части категории" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "Вы подписаны на уведомления для данной категории" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "Включить уведомления для данной категории" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "Действия с категорией" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "Редактировать категорию" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "Редактировать категорию" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "Удалить категорию" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "Удалить категорию" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "Категория детали верхнего уровня" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "Детали (включая подкатегории)" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "Создать новую деталь" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "Новая деталь" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "Параметры детали" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "Создать новую категорию деталей" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "Новая категория" @@ -7772,7 +7785,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "Инвентаризация" @@ -7870,15 +7883,15 @@ msgstr "Поставщики" msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "Связанная деталь" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "Добавить связанную деталь" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "" @@ -7937,7 +7950,7 @@ msgstr "Включить уведомления для данной детали #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "Печать этикетки" @@ -7947,7 +7960,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "Действия со складом" @@ -7959,7 +7972,7 @@ msgstr "Установить запасы детали" msgid "Transfer part stock" msgstr "Переместить запасы детали" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "Действия с деталью" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "Минимальный складской запас" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "Разновидности" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "Склад" @@ -8158,7 +8171,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "Редактировать" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "Последнее обновление" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "Обновить цены" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "Нет запасов" @@ -8332,100 +8345,108 @@ msgstr "Действие не указано" msgid "No matching action found" msgstr "Соответствующее действие не найдено" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "Не найдено совпадений для данных штрих-кода" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "Найдено совпадение по штрих-коду" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "Штрих-код не соответствует существующим складским позициям" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "Складская позиция не соответствует позиции" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "Складская позиция зарезервирована заказом на продажу" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8454,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8526,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "Прогресс" @@ -9160,7 +9213,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "Цена за Единицу" @@ -9173,7 +9226,7 @@ msgstr "Дополнительные элементы" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "Всего" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "Результаты тестирования" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "Тестирование" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "Результат" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "Установленные элементы" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "Серийный номер" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9299,8 @@ msgstr "" msgid "Location ID" msgstr "Код места хранения" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "Путь места хранения" @@ -9279,7 +9332,7 @@ msgstr "Имя поставщика" msgid "Customer ID" msgstr "ID Клиента" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "Установлено в" @@ -9304,9 +9357,9 @@ msgstr "Требуется рецензия" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "Истекает" @@ -9372,316 +9425,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Место хранения" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Места хранения" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Владелец" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "Выберите владельца" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Складские позиции не могут находиться в структурных местах хранения, но могут находиться в дочерних местах хранения." -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "Внешний" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "Тип Места Хранения" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "Вы не можете сделать это место хранение структурным, потому, что некоторые складские позиции уже находятся в нем!" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "Складские позиции не могут находиться в структурных местах хранения!" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "Складская позиция не может быть создана для виртуальных деталей" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "Элемент должен иметь ссылку на производство, если is_building=True" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "Ссылка на производство не указывает на тот же элемент" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "Складская позиция" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "Базовая деталь" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "Выберите соответствующего поставщика детали для этой складской позиции" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "Где находиться эта складская позиция?" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "Упаковка этой складской позиции хранится в" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "Код партии для этой складской позиции" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "Количество на складе" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "Исходное производство" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "Производства для этой складской позиции" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "Поглощен" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "Заказ на производство, который поглотил эту складскую позицию" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "Заказ на закупку для этой складской позиции" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Дата истечения срока годности для складской позиции. Остатки будут считаться просроченными после этой даты" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "Удалить при обнулении" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "Удалить эту складскую позицию при обнулении складского запаса" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "Деталь не является отслеживаемой" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "Серийные номера уже существуют" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "Складская позиция была назначена заказу на продажу" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "Складская позиция установлена в другую деталь" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "Складская позиция содержит другие детали" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "Складская позиция была назначена покупателю" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "Складская позиция в производстве" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "Складские позиции должны ссылаться на одну и ту же деталь" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "Складские позиции должны ссылаться на одну и ту же деталь поставщика" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "Результат тестирования" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "Записи Тестирования" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "Не выбрано ни одной складской позиции" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Места хранения" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "" @@ -9971,7 +10024,7 @@ msgstr "Карантин" msgid "Legacy stock tracking entry" msgstr "Отслеживание устаревших запасов" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "Складская позиция создана" @@ -10027,7 +10080,7 @@ msgstr "Отделить от родительского элемента" msgid "Split child item" msgstr "Разбить дочерний элемент" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "Объединенные складские позиции" @@ -10047,7 +10100,7 @@ msgstr "Продукция заказа на производство завер msgid "Build order output rejected" msgstr "Продукция заказа на производство отклонена" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "Поглощен заказом на производство" @@ -10108,7 +10161,7 @@ msgstr "Записи складской позиции" msgid "Installed Stock Items" msgstr "Установленные складские позиции" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "Установить складскую позицию" @@ -10116,7 +10169,7 @@ msgstr "Установить складскую позицию" msgid "Delete all test results for this stock item" msgstr "Удалить все результаты тестирования для этой складской позиции" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "Добавить Результат Тестирования" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "Сканировать в место хранения" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "Действия печати" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "Установить запасы" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "Добавить Остатки" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "Удалить запасы" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "Сериализовать запасы" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "Переместить запасы" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "Удалить складскую позицию" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "Производство" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "Вы не в списке владельцев этого элемента. Складская позиция не может быть отредактирована." #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "Только для чтения" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "Место хранения не установлено" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "" @@ -10321,7 +10374,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "Преобразовать складскую позицию" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "Вернуть на склад" @@ -10333,84 +10386,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "Сканировать складские позиции в это место хранения" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "Сканировать в складские позиции" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "Действия с местом хранения" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "Редактировать место хранения" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "Удалить место хранения" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "Склад верхнего уровня" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "Ответственный за место хранения" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "Создать новое место хранения" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "Новое место хранения" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "места хранения" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "Удалить" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "группа" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "Редактировать шаблон" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "Удалить шаблон" @@ -10954,40 +11007,40 @@ msgstr "Удалить шаблон" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "Типы местоположения склада не найдены" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "Количество мест хранения" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "Требуемое кол-во" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "Минимальное количество" @@ -11758,7 +11811,7 @@ msgstr "" msgid "Unlink" msgstr "Отсоединить" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "Удалить складскую позицию" @@ -11948,7 +12001,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12021,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "Расходник" @@ -12023,7 +12076,7 @@ msgstr "Просмотр BOM" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "Необходимая деталь" @@ -12071,12 +12124,12 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "" @@ -12129,13 +12182,13 @@ msgstr "Вы уверены, что хотите отменить резерв msgid "Deallocate Stock Items" msgstr "Отменить резерв складских позиций" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "Выбрать Продукцию" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "Как минимум одна единица продукции должна быть выбрана" @@ -12143,288 +12196,288 @@ msgstr "Как минимум одна единица продукции дол msgid "Selected build outputs will be marked as complete" msgstr "Выбранная продукция будет отмечена как завершенная" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "Продукция" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "Завершить Продукцию" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "Выбранная продукция будет отмечена как списанная" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "Списанная продукция отмечена как отклоненная" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "Зарезервированная складская позиция более не доступна" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "Списать Продукцию" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "Выбранная продукция будет удалена" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "Продукция будет полностью удалена" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "Зарезервированные складские позиции были возвращены на склад" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "Удалить Продукцию" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "Завершенная продукция" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "Списанная продукция" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "Удаленная продукция" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "продукция" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "продукция" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "Действия с продукцией" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "Активная продукция не найдена" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "Зарезервированные Строки" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "Требуемые тесты" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "Выбрать детали" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "Выберите место хранения - источник (оставьте пустым, чтобы взять из всех мест)" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "Зарезервировать складские позиции для этого заказа на производства" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "Нет совпадающих складских позиций" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "Складские позиции будут автоматически зарезервированы на этот заказ на производстве, в соответствии с указанными рекомендациями" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "Зарезервировать Складские Позиции" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "Выбрать" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "Редактировать Резерв" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "строка производства" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "позиция производства" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "Отслеживаемая деталь" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "Количество единиц" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "Расходник" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "Отслеживаемый элемент" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "Запасы производства" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "Заказать запасы" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "Зарезервировать Остатки" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "Заказать детали" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "Деталь-шаблон" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "Производимая Деталь" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "Редактировать параметр" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "Удалить параметр" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "Редактировать параметр" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "Удалить параметр" @@ -12749,39 +12802,39 @@ msgstr "Форма содержит ошибки" msgid "No results found" msgstr "Результаты не найдены" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "Поиск" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "Очистить ввод" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "Столбец Файла" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "Имя Поля" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "Выбрать столбцы" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "ДА" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "НЕТ" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "Да" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +12919,7 @@ msgstr "Новости не найдены" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "Код" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "Удалить Строку" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12931,358 +12984,359 @@ msgstr "Редактировать строку" msgid "Delete line" msgstr "Удалить строку" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "Атрибуты детали" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "Настройки создания детали" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "Добавить категорию детали" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "Создать Деталь" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "Редактировать Деталь" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "Деталь изменена" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "Активная Деталь" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "Любые складские позиции для этой запчасти будут удалены" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "Удалить Деталь" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "Низкий запас" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "Требуется" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "Ед. Изм." -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "Виртуальная Деталь" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "Деталь с подпиской" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "Продаваемая деталь" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "Детали не найдены" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "Указать категорию" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "деталь" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "детали" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "Нет категории" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "Отобразить списком" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "Отобразить сеткой" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "Отобразить древом" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "Категория с подпиской" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "результаты" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "Приблизительный" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "Максимальное количество" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "Код Заказа" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "Сканировать штрихкод входящего элемента (не должен совпадать с любой существующей складской позицией)" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "Заказ просрочен" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "Редактировать Позицию" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "Удалить позицию" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "Редактировать Позицию" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "Удалить позицию" @@ -13665,16 +13719,16 @@ msgstr "" msgid "Invalid Customer" msgstr "Некорректный клиент" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13887,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "" @@ -13891,18 +13945,14 @@ msgstr "" msgid "Remove results" msgstr "Удалить результат" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "Сериализировать складскую позицию" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "" @@ -13951,432 +14001,432 @@ msgstr "" msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "Введите начальное количество для этой складской позиции" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "Складская позиция дублирована" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "Дублировать складскую позицию" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "Вы уверены, что хотите удалить эту складскую позицию?" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "Удалить складскую позицию" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "Редактировать складскую позицию" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "Создать еще один элемент после этого" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "Некоторые данные будут потеряны при слиянии складских позиций" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "Подтвердить слияние складских позиций" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "Объединить складские позиции" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "Переместить запасы" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "Переместить" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "Установить запасы" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "Количество" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "Удалить запасы" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "Взять" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "Добавить Запасы" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "Добавить" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "Удалить запасы" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "Выбрать складские позиции" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "Выбрать как минимум одну складскую позицию" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "Подтвердите изменение запасов" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "ПРОШЕЛ" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "ПРОВАЛЕН" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "НЕТ РЕЗУЛЬТАТА" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "Тест пройден" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "Добавить Результат Тестирования" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "Редактировать результаты тестирования" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "Данные Тестирования" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "В производстве" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "Установленные складские позиции" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "Место хранения не установлено" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "Изменить статус запасов" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "Объединить Запасы" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "Удалить запасы" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "складские позиции" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "Действия с Запасами" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "Складская позиция в производстве" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "Складская позиция зарезервирована заказом на продажу" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "Складская позиция была назначена покупателю" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "Сериализированная складская позиция была зарезервирована " -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "Складские позиции были полностью зарезервированы" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "Складские позиции были частично зарезервированы" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "Складская позиция была установлена в другую деталь" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "Складская позиция была поглощена заказом на продажу" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "Складская позиция была просрочена" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "Складская позиция будет просрочена в скором времени" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "Складская позиция была отклонена" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "Складская позиция была утеряна" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "Складская позиция была уничтожена" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "Истощен" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "Кол-во Запаса" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "Нет складских позиций соответствующих запросу" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "места хранения" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "Подробности" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "Нет изменений" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "Складская позиция не существует" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "Добавлено" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "Удалено" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "Снять складскую позицию" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "Выберите складскую позицию для съема" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "Установить другую складскую позицию в эту деталь" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "Складские позиции могут быть установлены, только если отвечают следующим критериям" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "Складская позиция ссылается на деталь, чья спецификация является этой складской позицией" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "Складская позиция сейчас доступна на складе" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "Складская позиция не установлена в другую деталь" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "Складская позиция отслеживается либо по коду партии, либо серийному номеру" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "Выберите одну или более складских позиций" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "Выбранные складские позиции" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "Изменить статус запасов" diff --git a/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po index a223890e64..8010e39e64 100644 --- a/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Slovak\n" "Language: sk_SK\n" @@ -56,29 +56,29 @@ msgstr "" msgid "Enter date" msgstr "" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "" @@ -135,74 +135,74 @@ msgstr "" msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "" @@ -366,158 +366,158 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,17 +726,17 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "" @@ -789,72 +789,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" @@ -1260,7 +1260,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "" @@ -1270,21 +1270,21 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "" @@ -1508,7 +1508,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1584,13 +1584,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "" @@ -1600,22 +1600,22 @@ msgstr "" msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,7 +1633,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" @@ -1684,7 +1684,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "" @@ -1696,7 +1696,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1707,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1786,16 +1786,16 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" @@ -1875,8 +1875,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,11 +1890,11 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -2037,15 +2037,15 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,362 +2103,370 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "" msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3957,27 +3965,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4228,26 +4236,26 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,16 +4534,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "" @@ -4734,7 +4742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "" @@ -5203,7 +5211,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" @@ -5224,9 +5232,9 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" @@ -5239,26 +5247,26 @@ msgstr "" msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "" @@ -5286,7 +5294,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "" @@ -5310,365 +5318,365 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6056,12 +6064,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6175,8 +6183,8 @@ msgstr "" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "" @@ -6272,21 +6280,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6306,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6319,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6331,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6355,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,13 +6384,17 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" @@ -6489,13 +6501,13 @@ msgstr "" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6516,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7302,338 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7679,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7785,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7870,15 +7883,15 @@ msgstr "" msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "" @@ -7937,7 +7950,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +7960,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +7972,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8171,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8345,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8454,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8526,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9160,7 +9213,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,7 +9226,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9299,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9332,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9357,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9372,316 +9425,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "" @@ -9971,7 +10024,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "" @@ -10027,7 +10080,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "" @@ -10047,7 +10100,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10161,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10169,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "" @@ -10321,7 +10374,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10386,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11007,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11811,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "" @@ -11948,7 +12001,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12021,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12076,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,12 +12124,12 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "" @@ -12129,13 +12182,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12196,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12749,39 +12802,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +12919,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12931,358 +12984,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13719,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13887,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "" @@ -13891,18 +13945,14 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "" @@ -13951,432 +14001,432 @@ msgstr "" msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "" diff --git a/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po index 5a198e6370..6c52b4b650 100644 --- a/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Slovenian\n" "Language: sl_SI\n" @@ -56,29 +56,29 @@ msgstr "Podrobnosti napake so vidne v pogledu administratorja" msgid "Enter date" msgstr "Vnesi datum" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "Zapiski" @@ -135,74 +135,74 @@ msgstr "Domena epošte ni podprta." msgid "Registration is disabled." msgstr "Registracija je onemogočena." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "Podana napačna količina" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Prazno polje serijske številke" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Dvojna serijska številka" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Neveljavni doseg skupine: {group}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Doseg skupine {group} presega dovoljene količine ({expected_quantity})" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Nepravilno zaporedje skupine: {group}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Serijske številke niso najdene" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Število unikatnih serijskih številk ({len(serials)}) se mora ujemati s količino ({expected_quantity})" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Odstranite oznako HTML iz te vrednosti" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Napaka povezave" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Odziv serverja: napravilni status kode" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Pojavila se je izjema" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Odziv serverja: napačna dolžina vrednosti" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Prevelika velikost slike" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Prenos slike presegel največjo velikost" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Oddaljeni server vrnil prazen odziv" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "Podani URL ni veljavna slikovna datoteka" @@ -366,158 +366,158 @@ msgstr "[{site_name}] Prijavite se v aplikacijo" msgid "Email" msgstr "E-pošta" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "Napaka pri izvajanju preverjanja vtičnika" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "Metapodatki morajo biti objekt tipa python dict" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "Metapodatki vtičnika" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "Polje metapodatkov JSON za uporabo pri zunanjih vtičnikih" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Nepravilno nastavljen vzorec" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "Nastavljen neprepoznan ključ formata" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "Manjka obvezen ključ formata" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Referenčno polje ne sme biti prazno" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "Referenca se mora ujemati s vzorcem" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Referenčna številka prevelika" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "Podvojena imena ne morejo obstajati pod istim nadrejenim elementom" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Nedovoljena izbira" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "Ime" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "Opis" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "Opis (opcijsko)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "Pot" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "Markdown opombe (neobvezno)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Podatki čtrne kode" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Podatki črtne kode tretje osebe" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "Oznaka črtne kode" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Enolična oznaka podatkov črtne kode" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Črtna koda že obstaja" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Napaka strežnika" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "Zaznana napaka na strežniku." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "Mora biti veljavna številka" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "Povezava do oddaljene slike" msgid "Downloading images from remote URL is not enabled" msgstr "Prenos slik iz oddaljene povezave ni omogočen" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "Nadzor dela v ozadju neuspel" @@ -726,17 +726,17 @@ msgstr "O InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Izgradnja mora biti najprej preklicana, nato je lahko izbrisana" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "Nalog izgradnje" @@ -789,72 +789,72 @@ msgstr "Nalog izgradnje" msgid "Build Orders" msgstr "Nalogi izgradnje" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "Neveljavna izbira za nadrejeno izgradnjo" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "Referenca naloga izgradnje" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Referenca" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Nadrejena izgradnja" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "Nalog izgradnje na katerega se ta izgradnaj nanaša" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "Nalog izgradnje na katerega se ta izgradnaj nanaša" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "Del" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "Izberite del za izgradnjo" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Referenca dobavnica" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "Dobavnica na katero se navezuje ta izgradnja" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Lokacija vira" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Izberite lokacijo dela za to izgradnjo (v primeru da ni pomembno pusti prazno)" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "Ciljna lokacija" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Izberite lokacijo, kjer bodo končne postavke shranjene" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "Količina izgradenj" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Število postavk za izgradnjo" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "Končane postavke" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Število postavk zaloge, ki so bile končane" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "Status izgradnje" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "Koda statusa izgradnje" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "Številka serije" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "Številka serije za to izgradnjo" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Datum ustvarjenja" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "Rok dokončanja" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Rok končanja izdelave. Izdelava po tem datumu bo v zamudi po tem datumu." -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "Datom končanja" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "dokončal" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "Izdal" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "Uporabnik, ki je izdal nalog za izgradnjo" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "Odgovoren" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Zunanja povezava" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "Zunanja povezava" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "Nalog izgradnje {build} je dokončan" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "Nalog izgradnej dokončan" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "Ni določena izgradnja" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "Igradnja je že dokončana" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "Izgradnja se ne ujema s nalogom izdelave" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "Količina" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Izdelana postavka mora imeti izgradnjo, če je glavni del označen kot sledljiv" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Prestavljena zaloga ({q}) ne sme presegati zaloge ({a})" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "Preveč zaloge je prestavljene" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "Prestavljena količina mora biti večja od 0" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "Količina za zalogo s serijsko številko mora biti 1" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "Postavka zaloge" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "Izvorna postavka zaloge" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "Količina zaloge za prestavljanje za izgradnjo" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "Inštaliraj v" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "Destinacija postavke zaloge" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "Izgradnja" @@ -1260,7 +1260,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "" @@ -1270,21 +1270,21 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "" @@ -1508,7 +1508,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1584,13 +1584,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "" @@ -1600,22 +1600,22 @@ msgstr "" msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,7 +1633,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" @@ -1684,7 +1684,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "" @@ -1696,7 +1696,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1707,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1786,16 +1786,16 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" @@ -1875,8 +1875,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,11 +1890,11 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -2037,15 +2037,15 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,362 +2103,370 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "" msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "Uporabnik" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "Povezava" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Priloga" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "Manjka datoteka" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Manjka zunanja povezava" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Izberite prilogo" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Komentar" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3957,27 +3965,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4228,26 +4236,26 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,16 +4534,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "" @@ -4734,7 +4742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "" @@ -5203,7 +5211,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" @@ -5224,9 +5232,9 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" @@ -5239,26 +5247,26 @@ msgstr "" msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "" @@ -5286,7 +5294,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "" @@ -5310,365 +5318,365 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Poslano" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6056,12 +6064,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6175,8 +6183,8 @@ msgstr "" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "" @@ -6272,21 +6280,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6306,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6319,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6331,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6355,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,13 +6384,17 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" @@ -6489,13 +6501,13 @@ msgstr "" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6516,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7302,338 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7679,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7785,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7870,15 +7883,15 @@ msgstr "" msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "" @@ -7937,7 +7950,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +7960,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +7972,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8171,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8345,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8454,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8526,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9160,7 +9213,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,7 +9226,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9299,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9332,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9357,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9372,316 +9425,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "" @@ -9971,7 +10024,7 @@ msgstr "Dano v karanteno" msgid "Legacy stock tracking entry" msgstr "Vnos zaloge postavke" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "Postavka zaloge ustvarjena" @@ -10027,7 +10080,7 @@ msgstr "Razdeljena od nadrejene postavke" msgid "Split child item" msgstr "Razdeljena podrejena postavka" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "Združena zaloga postavk" @@ -10047,7 +10100,7 @@ msgstr "Nalog za izgradnjo končan" msgid "Build order output rejected" msgstr "Nalog za izgradnjo zavrnjen" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "Porabljeno v nalogu za izgradnjo" @@ -10108,7 +10161,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10169,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "Izdelava" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "" @@ -10321,7 +10374,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10386,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11007,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11811,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "" @@ -11948,7 +12001,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12021,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12076,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,12 +12124,12 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "" @@ -12129,13 +12182,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12196,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12749,39 +12802,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +12919,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12931,358 +12984,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13719,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13887,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "" @@ -13891,18 +13945,14 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "" @@ -13951,432 +14001,432 @@ msgstr "" msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "" diff --git a/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po index 5227281c4d..166668fdc7 100644 --- a/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:39\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:37\n" "Last-Translator: \n" "Language-Team: Serbian (Latin)\n" "Language: sr_CS\n" @@ -56,29 +56,29 @@ msgstr "Detalji o grešci se mogu naći u admin sekciji" msgid "Enter date" msgstr "Unesite datum" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "Napomene" @@ -135,74 +135,74 @@ msgstr "Navedeni domen adrese e-pošte nije prihvaćen." msgid "Registration is disabled." msgstr "Registracija je onemogućena." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "Isporučena nevažeća količina" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Serijski broj nije popunjen" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Dupliciraj serijski broj" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Nevažeći raspon grupe: {group}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Raspon grupe {group} prelazi dozvoljenu količinu ({expected_quantity})" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Nevažeća sekvenca grupe: {group}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Nisu pronađeni serijski brojevi" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Broj jedinstvenih serijskih brojeva ({len(serials)}) mora odgovarati količini ({expected_quantity})" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Uklonite HTML oznake iz ove vrednosti" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Greška u povezivanju" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Server je odgovorio nevažećim statusnim kodom" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Došlo je do izuzetka" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Server je odgovorio nevažećom vrednošću dužina sadržaja" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Veličina slike je prevelika" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Preuzimanje slike premašilo je maksimalnu veličinu" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Udaljeni server vratio je prazan odgovor" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "Navedeni URL nije važeća slikovna datoteka" @@ -366,158 +366,158 @@ msgstr "" msgid "Email" msgstr "E-Pošta" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "Metapodaci moraju biti \"python dict\" objekat" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "Metapodaci dodatka" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "Polje metapodataka JSON, za korištenje eksternih dodataka" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Neispravno formatiran obrazac" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "Naveden je ključ nepoznatog formata" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "Nedostaje potreban ključ formata" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Polje za reference ne može biti prazno" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "Referenca mora odgovarati traženom obrascu" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Broj reference je predugačak" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "Dvostruka imena ne mogu postojati pod istom nadredjenom grupom" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Nevažeći izvor" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "Ime" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "Opis" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "Opis (Opciono)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "Putanja" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "Zabeleške (Opciono)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Podaci sa barkoda" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Podaci sa barkoda trećih lica" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "Heš barkoda" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Jedinstveni hash barkoda" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Postojeći barkod pronađen" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Greška servera" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "Server je zabležio grešku." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "Mora biti važeći broj" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "URL udaljene slike" msgid "Downloading images from remote URL is not enabled" msgstr "Preuzimanje slika s udaljenog URL-a nije omogućeno" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "Provera pozadinskog radnika nije uspjela" @@ -726,17 +726,17 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "Nalog za izradu" @@ -789,72 +789,72 @@ msgstr "Nalog za izradu" msgid "Build Orders" msgstr "Nalozi za izradu" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "Nevažeći izbor za nadređenu verziju" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "Deo u nalogu za izradu ne može se izmeniti" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "Reference naloga za pravljenje" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Referenca" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "Kratak opis izrade (nije obavezno)" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "Link za eksterni URL" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" @@ -1260,7 +1260,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "" @@ -1270,21 +1270,21 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "" @@ -1508,7 +1508,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1584,13 +1584,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "" @@ -1600,22 +1600,22 @@ msgstr "" msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,7 +1633,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" @@ -1684,7 +1684,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "" @@ -1696,7 +1696,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1707,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1786,16 +1786,16 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" @@ -1875,8 +1875,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,11 +1890,11 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -2037,15 +2037,15 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,362 +2103,370 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "" msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "Korisnik" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Prilog" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "Nedostaje datoteka" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Nedostaje eksterni link" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Izaberite datoteku za prilog" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Komentar" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3957,27 +3965,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4228,26 +4236,26 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,16 +4534,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "" @@ -4734,7 +4742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "" @@ -5203,7 +5211,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" @@ -5224,9 +5232,9 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" @@ -5239,26 +5247,26 @@ msgstr "" msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "" @@ -5286,7 +5294,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "" @@ -5310,365 +5318,365 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Poslato" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6056,12 +6064,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6175,8 +6183,8 @@ msgstr "" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "" @@ -6272,21 +6280,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6306,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6319,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6331,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6355,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,13 +6384,17 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" @@ -6489,13 +6501,13 @@ msgstr "" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6516,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7302,338 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7679,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7785,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7870,15 +7883,15 @@ msgstr "" msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "" @@ -7937,7 +7950,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +7960,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +7972,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8171,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8345,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8454,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8526,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9160,7 +9213,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,7 +9226,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9299,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9332,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9357,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9372,316 +9425,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "" @@ -9971,7 +10024,7 @@ msgstr "U karantinu" msgid "Legacy stock tracking entry" msgstr "Nasleđeni unos za praćenje zaliha" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "Stavka na zalihi stvorena" @@ -10027,7 +10080,7 @@ msgstr "Odvoj od nadređene stavke" msgid "Split child item" msgstr "Podeli podređenu stavku" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "Spojene stavke zaliha" @@ -10047,7 +10100,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10161,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10169,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "" @@ -10321,7 +10374,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10386,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11007,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11811,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "" @@ -11948,7 +12001,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12021,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12076,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,12 +12124,12 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "" @@ -12129,13 +12182,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12196,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12749,39 +12802,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +12919,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12931,358 +12984,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13719,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13887,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "" @@ -13891,18 +13945,14 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "" @@ -13951,432 +14001,432 @@ msgstr "" msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "" diff --git a/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po index 4333b5d0e5..b5d34855a4 100644 --- a/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Swedish\n" "Language: sv_SE\n" @@ -56,29 +56,29 @@ msgstr "Information om felet finns under Error i adminpanelen" msgid "Enter date" msgstr "Ange datum" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "Anteckningar" @@ -135,74 +135,74 @@ msgstr "Den angivna e-postdomänen är inte godkänd." msgid "Registration is disabled." msgstr "Registrering är stängd." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "Ogiltigt antal angivet" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Tom serienummersträng" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Serienummret finns redan" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Inga serienummer hittades" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Ta bort HTML-taggar från detta värde" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Anslutningsfel" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Servern svarade med ogiltig statuskod" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Undantag inträffade" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Servern svarade med ogiltigt innehållslängdsvärde" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Bilden är för stor" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Nedladdning av bilder överskred maximal storlek" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Fjärrservern returnerade tomt svar" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "Angiven URL är inte en giltig bildfil" @@ -366,158 +366,158 @@ msgstr "" msgid "Email" msgstr "E-postadress" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Felaktigt formaterat mönster" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "Okänd formatnyckel angiven" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "Obligatorisk formatnyckel saknas" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Textfältet kan inte lämnas tomt" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "Referensen måste matcha obligatoriskt mönster" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Referensnumret är för stort" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Ogiltigt val" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "Namn" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "Beskrivning" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "Beskrivning (valfritt)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "Sökväg" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Streckkodsdata" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Befintlig streckkod hittades" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Serverfel" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "Ett fel har loggats av servern." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "Måste vara ett giltigt nummer" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "URL för fjärrbildsfil" msgid "Downloading images from remote URL is not enabled" msgstr "Nedladdning av bilder från fjärr-URL är inte aktiverad" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "Kontroll av bakgrundsarbetare misslyckades" @@ -726,17 +726,17 @@ msgstr "Om InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Byggnationen måste avbrytas innan den kan tas bort" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "Byggorder" @@ -789,72 +789,72 @@ msgstr "Byggorder" msgid "Build Orders" msgstr "Byggordrar" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "Ogiltigt val för överordnad bygge" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "Byggorderreferens" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Referens" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Överordnat Bygge" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "Byggorder till vilken detta bygge är tilldelad" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "Byggorder till vilken detta bygge är tilldelad" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "Del" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "Välj del att bygga" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Försäljningsorderreferens" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "Försäljningsorder till vilken detta bygge allokeras" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Källa Plats" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Välj plats att ta lager från för detta bygge (lämna tomt för att ta från någon lagerplats)" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "Destinationsplats" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Välj plats där de färdiga objekten kommer att lagras" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "Bygg kvantitet" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Antal lagerobjekt att bygga" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "Slutförda objekt" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Antal lagerposter som har slutförts" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "Byggstatus" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "Bygg statuskod" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "Batchkod" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "Batch-kod för denna byggutdata" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Skapad" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "Datum för slutförande" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Måldatum för färdigställande. Byggandet kommer att förfallas efter detta datum." -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "Slutförandedatum" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "slutfört av" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "Utfärdad av" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "Användare som utfärdade denna byggorder" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "Ansvarig" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Extern länk" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "Länk till extern URL" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "" msgid "Project Code" msgstr "Projektkod" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "Byggorder {build} har slutförts" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "En byggorder har slutförts" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "Ingen byggutgång angiven" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "Byggutgång är redan slutförd" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "Byggutgång matchar inte bygg order" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "Antal" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Byggobjekt måste ange en byggutgång, eftersom huvuddelen är markerad som spårbar" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Tilldelad kvantitet ({q}) får inte överstiga tillgängligt lagersaldo ({a})" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "Lagerposten är överallokerad" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "Allokeringsmängden måste vara större än noll" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "Antal måste vara 1 för serialiserat lager" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "Artikel i lager" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "Källa lagervara" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "Lagersaldo att allokera för att bygga" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "Installera till" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "Destination lagervara" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "Bygg utdata" @@ -1260,7 +1260,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Serienummer" @@ -1270,21 +1270,21 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "Plats" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "Status" @@ -1508,7 +1508,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "Serienummer" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1584,13 +1584,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "" @@ -1600,22 +1600,22 @@ msgstr "" msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,7 +1633,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" @@ -1684,7 +1684,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "" @@ -1696,7 +1696,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Visa QR-kod" @@ -1707,7 +1707,7 @@ msgstr "Visa QR-kod" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1786,16 +1786,16 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "Försäljningsorder" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "Utfärdad av" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" @@ -1875,8 +1875,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "Mål" @@ -1890,11 +1890,11 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "Skapad" @@ -2037,15 +2037,15 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,362 +2103,370 @@ msgstr "{name.title()} Fil" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "Unik projektkod" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "Projektbeskrivning" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "Ingen grupp" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "Omstart krävs" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "Serverinstans (Namn)" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "Företagsnamn" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "Internt företagsnamn" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "Bas-URL" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "Bas-URL för serverinstans" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "Standardvaluta" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "dagar" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "Ladda ner från URL" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "Tillåt nedladdning av bilder och filer från extern URL" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "Kräv bekräftelse" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "Kräv uttrycklig användarbekräftelse för vissa åtgärder." -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Stöd för streckkoder" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "" msgid "Template" msgstr "Mall" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "Virtuell" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "Delar är virtuella som standard" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "Visa import i vyer" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "Visa importguiden i vissa delvyer" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "Visa relaterade delar" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "Visa relaterade delar för en del" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "Visningsformat för delnamn" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "Formatera för att visa artikelnamnet" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "Interna priser" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "Aktivera etikettutskrift" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "Aktivera etikettutskrift från webbgränssnittet" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "Etikettbild DPI" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "Aktivera rapporter" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "Aktivera generering av rapporter" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "Debugläge" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "Sidstorlek" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "Standard sidstorlek för PDF-rapporter" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "Aktivera testrapporter" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "Aktivera registrering" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "Tillåtna domäner" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "Aktivera projektkoder" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "Visa nyheter" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "Sök efter artiklar" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "Sök efter leverantörsartikel" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "Sök efter tillverkarartikel" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "Datumformat" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "Användare" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "Länk" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "" msgid "Image" msgstr "Bild" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Bilaga" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "Saknad fil" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Extern länk saknas" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Välj fil att bifoga" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Kommentar" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "Filstorlek" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3957,27 +3965,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Ogiltigt domännamn: {domain}" @@ -4228,26 +4236,26 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "" msgid "Manufacturer" msgstr "Tillverkare" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "Leverantör" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "Välj leverantör" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "" msgid "Company Name" msgstr "Företagsnamn" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "I lager" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,16 +4534,16 @@ msgstr "" msgid "Delete image" msgstr "Radera bild" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "Kund" @@ -4734,7 +4742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "" @@ -5203,7 +5211,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" @@ -5224,9 +5232,9 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" @@ -5239,26 +5247,26 @@ msgstr "" msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "" @@ -5286,7 +5294,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "" @@ -5310,365 +5318,365 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Skickad" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "Leveransdatum" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "Fakturanummer" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6056,12 +6064,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6175,8 +6183,8 @@ msgstr "" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "" @@ -6272,21 +6280,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "Nyckelord" @@ -6298,7 +6306,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "Kategorinamn" @@ -6311,11 +6319,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6331,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6355,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "Artiklar" @@ -6376,13 +6384,17 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "Kategori" @@ -6489,13 +6501,13 @@ msgstr "Kategori" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6516,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Ikon" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "Ikon (valfritt)" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "Standardleverantör" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "Datum" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7302,338 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Underkategorier" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "Välj kategori" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "Kopiera bild" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "Generera rapport" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "Uppdatera" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7679,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "Redigera kategori" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "Redigera kategori" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "Radera kategori" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "Radera kategori" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "Ny kategori" @@ -7772,7 +7785,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7870,15 +7883,15 @@ msgstr "" msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "" @@ -7937,7 +7950,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +7960,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +7972,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8171,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "Redigera" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "Senast uppdaterad" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8345,108 @@ msgstr "Ingen åtgärd specificerad" msgid "No matching action found" msgstr "Ingen matchande åtgärd hittades" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8454,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8526,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9160,7 +9213,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,7 +9226,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9299,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9332,7 @@ msgstr "Leverantörsnamn" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9357,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9372,316 +9425,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "" @@ -9971,7 +10024,7 @@ msgstr "I karantän" msgid "Legacy stock tracking entry" msgstr "Spårningspost för äldre lager" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "Lagerpost skapad" @@ -10027,7 +10080,7 @@ msgstr "Dela från överordnat objekt" msgid "Split child item" msgstr "Dela underordnat objekt" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "Sammanfogade lagerposter" @@ -10047,7 +10100,7 @@ msgstr "Bygg orderutgång slutförd" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "Konsumeras av byggorder" @@ -10108,7 +10161,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10169,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "Bygg" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "" @@ -10321,7 +10374,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10386,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "Radera" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "Inga projektkoder hittades" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "Redigera mall" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "Radera mall" @@ -10954,40 +11007,40 @@ msgstr "Radera mall" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11811,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "" @@ -11948,7 +12001,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12021,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12076,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,12 +12124,12 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "" @@ -12129,13 +12182,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12196,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12749,39 +12802,39 @@ msgstr "" msgid "No results found" msgstr "Inga resultat hittades" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "Söker" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "JA" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "NEJ" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +12919,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12931,358 +12984,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "Ingen kategori" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "Visa som lista" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "Inga underkategorier hittades" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "Ladda underkategorier" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "resultat" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13719,16 @@ msgstr "" msgid "Invalid Customer" msgstr "Ogiltig kund" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13887,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "" @@ -13891,18 +13945,14 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "" @@ -13951,432 +14001,432 @@ msgstr "" msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "Ange serienummer" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "Flytta" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "Lägg till" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "Inga ändringar" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "" diff --git a/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po index 00b86e25fa..fcba9a80f5 100644 --- a/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:39\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:37\n" "Last-Translator: \n" "Language-Team: Thai\n" "Language: th_TH\n" @@ -56,29 +56,29 @@ msgstr "" msgid "Enter date" msgstr "ป้อนวันที่" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "หมายเหตุ" @@ -135,74 +135,74 @@ msgstr "" msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "ปริมาณสินค้าไม่ถูกต้อง" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "หมายเลขซีเรียลซ้ำกัน" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "ไม่พบหมายเลขซีเรียล" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "การเชื่อมต่อขัดข้อง" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "ไฟล์รูปภาพมีขนาดใหญ่เกินไป" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "" @@ -366,158 +366,158 @@ msgstr "" msgid "Email" msgstr "อีเมล" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "ข้อมูลเมตาของปลั๊กอิน" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "ชื่อ" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "คำอธิบาย" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "ข้อมูลบาร์โค้ด" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "บาร์โค้ดนี้มีในระบบแล้ว" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "เกิดข้อผิดพลาดที่เซิร์ฟเวอร์" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "ต้องเป็นตัวเลข" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,17 +726,17 @@ msgstr "เกี่ยวกับ Inventree" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "" @@ -789,72 +789,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "ออกโดย" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "จำนวนต้องมีค่ามากกว่า 0" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" @@ -1260,7 +1260,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "" @@ -1270,21 +1270,21 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "สถานที่" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "สถานะ" @@ -1508,7 +1508,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1584,13 +1584,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "" @@ -1600,22 +1600,22 @@ msgstr "" msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,7 +1633,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" @@ -1684,7 +1684,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "" @@ -1696,7 +1696,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1707,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1786,16 +1786,16 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" @@ -1875,8 +1875,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,11 +1890,11 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -2037,15 +2037,15 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,362 +2103,370 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "" msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "ผู้ใช้งาน" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "ลิงก์" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "ไฟล์แนบ" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "ไม่พบไฟล์" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "เลือกไฟล์ที่ต้องการแนบ" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "ความคิดเห็น" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3957,27 +3965,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4228,26 +4236,26 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,16 +4534,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "" @@ -4734,7 +4742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "" @@ -5203,7 +5211,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" @@ -5224,9 +5232,9 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" @@ -5239,26 +5247,26 @@ msgstr "" msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "" @@ -5286,7 +5294,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "" @@ -5310,365 +5318,365 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "จัดส่งแล้ว" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6056,12 +6064,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6175,8 +6183,8 @@ msgstr "" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "" @@ -6272,21 +6280,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6306,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6319,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6331,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6355,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "ชิ้นส่วน" @@ -6376,13 +6384,17 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" @@ -6489,13 +6501,13 @@ msgstr "" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6516,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7302,338 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7679,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7785,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7870,15 +7883,15 @@ msgstr "" msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "" @@ -7937,7 +7950,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +7960,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +7972,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8171,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8345,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8454,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8526,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9160,7 +9213,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,7 +9226,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9299,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9332,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9357,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9372,316 +9425,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "" @@ -9971,7 +10024,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "" @@ -10027,7 +10080,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "" @@ -10047,7 +10100,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10161,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10169,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "" @@ -10321,7 +10374,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10386,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11007,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11811,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "" @@ -11948,7 +12001,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12021,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12076,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,12 +12124,12 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "" @@ -12129,13 +12182,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12196,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12749,39 +12802,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +12919,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12931,358 +12984,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13719,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13887,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "" @@ -13891,18 +13945,14 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "" @@ -13951,432 +14001,432 @@ msgstr "" msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "" diff --git a/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po index 61d2f50d51..47998c7fca 100644 --- a/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Language: tr_TR\n" @@ -56,29 +56,29 @@ msgstr "Hata detaylarını admin panelinde bulabilirsiniz" msgid "Enter date" msgstr "Tarih giriniz" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "Notlar" @@ -135,74 +135,74 @@ msgstr "Sağlanan e-posta alanı onaylanmadı." msgid "Registration is disabled." msgstr "Kayıt devre dışı." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "Geçersiz veri sağlandı" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Boş seri numarası dizesi" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Yinelenen seri" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Geçersiz grup aralığı: {group}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Grup aralığı {group}, izin verilen miktarı aşmaktadır ({expected_quantity})" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Geçersiz grup aralığı: {group}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Seri numarası bulunamadı" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Benzersiz seri numaralarının sayısı ({len(serials)}) ile miktarın ({expected_quantity}) eşleşmesi gerekmektedir" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Bu değerden HTML etiketlerini kaldır" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Bağlantı hatası" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Sunucu geçersiz durum kodu ile cevap verdi" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "İstisna oluştu" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Sunucu geçersiz Content-Length değeriyle yanıt verdi" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Resim boyutu çok büyük" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Resim indirme boyutu izin verilenden büyük" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Uzak sunucu boş cevap döndü" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "Sağlanan URL geçerli bir resim dosyası değil" @@ -366,158 +366,158 @@ msgstr "[{site_name}] Uygulamaya giriş yap" msgid "Email" msgstr "E-posta" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "Eklenti doğrulama sırasında hata oluştu" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "Metadata, bir python dict nesnesi olmalıdır" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "Plugin Metaverileri" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "Harici eklentiler tarafından kullanım için JSON metadata alanı" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Yanlış biçimlendirilmiş desen" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "Belirtilen bilinmeyen format anahtarı" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "Gerekli format anahtarı eksik" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Referans alanı boş olamaz" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "Referans {pattern} deseniyle mutlaka eşleşmeli" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Referans sayısı çok fazla" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "Aynı kaynak altında birden fazla aynı isim kullanılamaz" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Geçersiz seçim" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "Adı" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "Açıklama" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "Açıklama (isteğe bağlı)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "Yol" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "Markdown notları (isteğe bağlı)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Barkod Verisi" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Üçüncü parti barkod verisi" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "Barkod Hash" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Barkod verisinin benzersiz hash'i" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Var olan barkod bulundu" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Sunucu Hatası" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "Bir hafta sunucu tarafından kayıt edildi." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "Geçerli bir numara olmalı" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "Uzaktan görüntü dosya URL'si" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "Arka plan çalışanı kontrolü başarısız oldu" @@ -726,17 +726,17 @@ msgstr "InvenTree Hakkında" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "Mevcut" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "Yapım İşi Emri" @@ -789,72 +789,72 @@ msgstr "Yapım İşi Emri" msgid "Build Orders" msgstr "Yapım İşi Emirleri" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "Yapım İşi Emri Referansı" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Referans" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Üst Yapım İşi" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "Bu yapım işinin tahsis edildiği yapım işi emri" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "Parça" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "Yapım işi için parça seçin" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Satış Emri Referansı" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "Bu yapım işinin tahsis edildiği satış emri" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Kaynak Konum" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Bu yapım işi için stok alınacak konumu seçin (her hangi bir stok konumundan alınması için boş bırakın)" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "Hedef Konum" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Tamamlanmış ögelerin saklanacağı konumu seçiniz" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "Yapım İşi Miktarı" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Yapım işi stok kalemlerinin sayısı" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "Tamamlanmış ögeler" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Tamamlanan stok kalemlerinin sayısı" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "Yapım İşi Durumu" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "Yapım işi durum kodu" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "Sıra numarası" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "Yapım işi çıktısı için sıra numarası" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Oluşturulma tarihi" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "Hedef tamamlama tarihi" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım işi gecikmiş olacak." -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "Tamamlama tarihi" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "tamamlayan" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "Veren" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "Bu yapım işi emrini veren kullanıcı" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "Sorumlu" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Harici Bağlantı" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "Harici URL'ye bağlantı" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "Yapım işi çıktısı belirtilmedi" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "Yapım işi çıktısı zaten tamamlanmış" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "Yapım işi çıktısı, yapım işi emri ile eşleşmiyor" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "Miktar" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Ana parça izlenebilir olarak işaretlendiğinden, yapım işi çıktısı için bir yapım işi ögesi belirtmelidir" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "Stok kalemi fazladan tahsis edilmiş" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "Seri numaralı stok için miktar bir olmalı" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "Stok Kalemi" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "Kaynak stok kalemi" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "Yapım işi için tahsis edilen stok miktarı" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "Kurulduğu yer" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "Hedef stok kalemi" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" @@ -1260,7 +1260,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Seri Numaraları" @@ -1270,21 +1270,21 @@ msgstr "Yapım işi çıktısı için seri numaraları girin" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "Konum" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "Durum" @@ -1508,7 +1508,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "Üretici Parça Numarası" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "Seri Numara" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1584,13 +1584,13 @@ msgstr "Takip Edilebilir" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "Çeşide İzin Ver" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "" @@ -1600,22 +1600,22 @@ msgstr "" msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,7 +1633,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" @@ -1684,7 +1684,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "Barkod işlemleri" @@ -1696,7 +1696,7 @@ msgstr "Barkod işlemleri" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1707,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1786,16 +1786,16 @@ msgstr "Stok, yapım işi emri için tamamen tahsis edilemedi" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "Sipariş Emri" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "Veren" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" @@ -1875,8 +1875,8 @@ msgstr "Stok Kaynağı" msgid "Stock can be taken from any available location." msgstr "Stok herhangi bir konumdan alınabilir." -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "Hedef" @@ -1890,11 +1890,11 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "Toplu" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "Oluşturuldu" @@ -2037,15 +2037,15 @@ msgstr "" msgid "Incomplete Outputs" msgstr "Tamamlanmamış Çıktılar" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,362 +2103,370 @@ msgstr "{name.title()} Dosya" msgid "Select {name} file to upload" msgstr "{name} dosyasını yüklemek için seçin" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "Anahtar dizesi benzersiz olmalı" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "Şirket adı" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "Ana URL" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "Varsayılan Para Birimi" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "günler" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "URL'den indir" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "Harici URL'den resim ve dosyaların indirilmesine izin ver" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Barkod Desteği" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 +#: common/models.py:1419 +msgid "Barcode Generation Plugin" +msgstr "" + +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" +msgstr "" + +#: common/models.py:1425 msgid "Part Revisions" msgstr "" -#: common/models.py:1407 +#: common/models.py:1426 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1412 +#: common/models.py:1431 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1413 +#: common/models.py:1432 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1418 +#: common/models.py:1437 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1419 +#: common/models.py:1438 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1424 +#: common/models.py:1443 msgid "IPN Regex" msgstr "DPN Regex" -#: common/models.py:1425 +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "Parça DPN eşleştirmesi için Düzenli İfade Kalıbı (Regex)" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "Yinelenen DPN'ye İzin Ver" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "Birden çok parçanın aynı DPN'yi paylaşmasına izin ver" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "DPN Düzenlemeye İzin Ver" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "Parçayı düzenlerken DPN değiştirmeye izin ver" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "Kategori Paremetre Sablonu Kopyala" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "Parça oluştururken kategori parametre şablonlarını kopyala" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "Parça oluştururken kategori parametre şablonlarını kopyala" msgid "Template" msgstr "Şablon" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "Parçaları varsayılan olan şablondur" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "Montaj" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "Parçalar varsayılan olarak başka bileşenlerden monte edilebilir" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "Bileşen" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "Parçalar varsayılan olarak alt bileşen olarak kullanılabilir" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "Satın Alınabilir" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "Parçalar varsayılan olarak satın alınabilir" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "Satılabilir" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "Parçalar varsayılan olarak satılabilir" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "Parçalar varsayılan olarak takip edilebilir" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "Sanal" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "Parçalar varsayılan olarak sanaldır" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "İlgili parçaları göster" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "Hata Ayıklama Modu" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "Raporları hata ayıklama modunda üret (HTML çıktısı)" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "Sayfa Boyutu" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "PDF raporlar için varsayılan sayfa boyutu" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "Stok konumu ve ögeler üzerinde sahiplik kontrolünü etkinleştirin" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "Formlarda Miktarı Göster" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "Kullanıcı" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Fiyat" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "Bağlantı" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "" msgid "Image" msgstr "Resim" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Ek" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "Eksik dosya" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Bozuk dış bağlantı" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Eklenecek dosyayı seç" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Yorum" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3957,27 +3965,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4228,26 +4236,26 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Temel Parça" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "Parça seçin" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "Parça seçin" msgid "Manufacturer" msgstr "Üretici" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "Üretici seçin" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "ÜPN" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "Parametre adı" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "Değer" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "Parametre değeri" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "Tedarikçi Parçası" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "Tedarikçi" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "Tedarikçi seçin" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "" msgid "Note" msgstr "Not" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "temel maliyet" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "Paketleme" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "çoklu" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "Pasif" @@ -4526,16 +4534,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "Müşteri" @@ -4734,7 +4742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "Tedarikçi Parça Stoku" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "Stok Kalemleri" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "" @@ -5203,7 +5211,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" @@ -5224,9 +5232,9 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" @@ -5239,26 +5247,26 @@ msgstr "" msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "" @@ -5286,7 +5294,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "Harici sayfaya bağlantı" @@ -5310,365 +5318,365 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "Sipariş referansı" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Sevk edildi" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Tahsis miktarı stok miktarını aşamaz" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "Seri numaralı stok kalemi için miktar bir olmalı" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "Stok tahsis miktarını girin" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6056,12 +6064,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6175,8 +6183,8 @@ msgstr "" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "İşlemler" @@ -6272,21 +6280,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "DPN" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "Revizyon" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "Anahtar kelimeler" @@ -6298,7 +6306,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6319,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Çeşidi" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Minimum Stok" @@ -6323,19 +6331,19 @@ msgstr "Minimum Stok" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6355,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "Parçalar" @@ -6376,13 +6384,17 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" @@ -6489,13 +6501,13 @@ msgstr "" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "Varsayılan Konum" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6516,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Parça Kategorileri" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "Bu kategori içindeki parçalar için varsayılan konum" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "Yinelenen DPN'ye parça ayarlarında izin verilmiyor" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "Parça adı" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "Şablon Mu" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "Bu parça bir şablon parçası mı?" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "Bu parça başka bir parçanın çeşidi mi?" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "Parça revizyon veya versiyon numarası" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "Varsayılan Tedarikçi" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "Varsayılan tedarikçi parçası" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "Bu parça diğer parçalardan yapılabilir mi?" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "Bu parça diğer parçaların yapımında kullanılabilir mi?" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "Bu parça dış tedarikçilerden satın alınabilir mi?" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "Bu parça müşterilere satılabilir mi?" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "Bu parça aktif mi?" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "Oluşturan Kullanıcı" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "Test şablonları sadece takip edilebilir paçalar için oluşturulabilir" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "Test Adı" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "Test Açıklaması" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "Etkin" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "Gerekli" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "Testi geçmesi için bu gerekli mi?" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "Parametre şablon adı benzersiz olmalıdır" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Parametre Şablonu" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Bu malzeme listesi, çeşit parçalar listesini kalıtsalıdır" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Çeşit parçaların stok kalemleri bu malzeme listesinde kullanılabilir" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7302,338 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Alt kategoriler" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7679,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "Parçalar (Alt kategoriler dahil)" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7785,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7870,15 +7883,15 @@ msgstr "Parça Tedarikçileri" msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "" @@ -7937,7 +7950,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "Etiket Yazdır" @@ -7947,7 +7960,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "Stok işlemleri" @@ -7959,7 +7972,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "Parça işlemleri" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "Stok" @@ -8158,7 +8171,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "Stok Yok" @@ -8332,100 +8345,108 @@ msgstr "İşlem belirtilmedi" msgid "No matching action found" msgstr "Eşleşen eylem bulunamadı" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "Barkod verisi için eşleşme bulunamadı" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "Barkod verisi için eşleşme bulundu" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8454,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8526,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "Şablon için geçerli bir nesne sağlanmadı" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9160,7 +9213,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,7 +9226,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "Seri No" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9299,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9332,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9357,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9372,316 +9425,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Stok Konumu" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Stok Konumları" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "Seri numarası olan ögenin miktarı bir olmalı" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Miktar birden büyük ise seri numarası ayarlanamaz" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "Üst Stok Kalemi" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "Bu stok kalemi için tedarikçi parçası seçin" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "Bu öge için seri numarası" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "Seri numaraları tam sayı listesi olmalı" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "Miktar seri numaları ile eşleşmiyor" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "Seri numaraları zaten mevcut" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "Stok kalemi stokta olmadığı için taşınamaz" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Alt konumlar" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "" @@ -9971,7 +10024,7 @@ msgstr "Karantinaya alındı" msgid "Legacy stock tracking entry" msgstr "Eski stok izleme girişi" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "Stok kalemi oluşturuldu" @@ -10027,7 +10080,7 @@ msgstr "Üst ögeden ayır" msgid "Split child item" msgstr "Alt ögeyi ayır" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "Stok parçalarını birleştir" @@ -10047,7 +10100,7 @@ msgstr "Yapım emri çıktısı tamamlandı" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10161,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10169,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "Konuma Tara" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "Yazdırma işlemleri" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "Stok ayarlama işlemleri" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "Stoku seri numarala" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "Yapım İşi" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "Konum ayarlanmadı" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "" @@ -10321,7 +10374,7 @@ msgstr "Bu işlem kolayca geri alınamaz" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10386,84 @@ msgstr "Bu stok kalemi için seri numaralandırılmış ögeler oluştur." msgid "Select quantity to serialize, and unique serial numbers." msgstr "Seri numaralandırılacak miktarı ve benzersiz seri numaralarını seçin." -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "Konum işlemleri" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "Konumu düzenle" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "Konumu sil" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "Bu konumun sahipleri listesinde değilsiniz. Bu stok konumu düzenlenemez." -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "Yeni stok konumu oluştur" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "Yeni Konum" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11007,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "Hata Raporu Gönder" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "panoya kopyala" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11811,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "" @@ -11948,7 +12001,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12021,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12076,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,12 +12124,12 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "" @@ -12129,13 +12182,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12196,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12749,39 +12802,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +12919,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12931,358 +12984,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13719,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13887,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "" @@ -13891,18 +13945,14 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "" @@ -13951,432 +14001,432 @@ msgstr "" msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "" diff --git a/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po index 53b4c5f083..3be85f9c74 100644 --- a/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -56,29 +56,29 @@ msgstr "Деталі помилки можна знайти на панелі а msgid "Enter date" msgstr "Введіть дату" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "Нотатки" @@ -135,74 +135,74 @@ msgstr "Наданий домен електронної пошти не зат msgid "Registration is disabled." msgstr "Реєстрацію вимкнено." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "Невірна кількість" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Пустий серійний номер" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "" @@ -366,158 +366,158 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,17 +726,17 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "" @@ -789,72 +789,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" @@ -1260,7 +1260,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "" @@ -1270,21 +1270,21 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "" @@ -1508,7 +1508,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1584,13 +1584,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "" @@ -1600,22 +1600,22 @@ msgstr "" msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,7 +1633,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" @@ -1684,7 +1684,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "" @@ -1696,7 +1696,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1707,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1786,16 +1786,16 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" @@ -1875,8 +1875,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,11 +1890,11 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -2037,15 +2037,15 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,362 +2103,370 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "" msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3957,27 +3965,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4228,26 +4236,26 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,16 +4534,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "" @@ -4734,7 +4742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "" @@ -5203,7 +5211,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" @@ -5224,9 +5232,9 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" @@ -5239,26 +5247,26 @@ msgstr "" msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "" @@ -5286,7 +5294,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "" @@ -5310,365 +5318,365 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6056,12 +6064,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6175,8 +6183,8 @@ msgstr "" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "" @@ -6272,21 +6280,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6306,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6319,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6331,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6355,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,13 +6384,17 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" @@ -6489,13 +6501,13 @@ msgstr "" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6516,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7302,338 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7679,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7785,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7870,15 +7883,15 @@ msgstr "" msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "" @@ -7937,7 +7950,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +7960,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +7972,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8171,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8345,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8454,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8526,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9160,7 +9213,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,7 +9226,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9299,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9332,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9357,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9372,316 +9425,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "" @@ -9971,7 +10024,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "" @@ -10027,7 +10080,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "" @@ -10047,7 +10100,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10161,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10169,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "" @@ -10321,7 +10374,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10386,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11007,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11811,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "" @@ -11948,7 +12001,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12021,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12076,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,12 +12124,12 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "" @@ -12129,13 +12182,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12196,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12749,39 +12802,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +12919,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12931,358 +12984,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13719,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13887,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "" @@ -13891,18 +13945,14 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "" @@ -13951,432 +14001,432 @@ msgstr "" msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "" diff --git a/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po index fb25197f85..ad6d2b16da 100644 --- a/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Language: vi_VN\n" @@ -56,29 +56,29 @@ msgstr "Chi tiết lỗi có thể được tìm thấy trong bảng quản tr msgid "Enter date" msgstr "Nhập ngày" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "Ghi chú" @@ -135,74 +135,74 @@ msgstr "Miền email được cung cấp không được phê duyệt." msgid "Registration is disabled." msgstr "Đăng ký bị vô hiệu hóa." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "Số lượng cung cấp không hợp lệ" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Chuỗi số sê-ri trống" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Trùng lặp sê-ri" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Phạm vi nhóm không hợp lệ: {group}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Khoảng nhóm {group} vượt cho phép số lượng ({expected_quantity})" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Thứ tự nhóm không hợp lệ: {group}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Không tìm thấy số sê-ri" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Số sê ri duy nhất ({len(serials)}) phải phù hợp số lượng ({expected_quantity})" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Xóa thẻ HTML từ giá trị này" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Lỗi kết nối" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Máy chủ phản hồi với mã trạng thái không hợp lệ" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Xảy ra Exception" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Máy chủ đã phản hồi với giá trị Content-Length không hợp lệ" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Hình ảnh quá lớn" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Tải xuống hình ảnh vượt quá kích thước tối đa" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Máy chủ trả về phản hồi trống" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "URL được cung cấp không phải là tệp hình ảnh hợp lệ" @@ -366,158 +366,158 @@ msgstr "[{site_name}] Đăng nhập vào ứng dụng" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "Siêu dữ liệu phải là đối tượng từ điển của python" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "Phụ trợ siêu dữ liệu" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "Trường siêu dữ liệu JSON, được sử dụng bởi phụ trợ bên ngoài" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Mẫu được định dạng không thích hợp" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "Khóa định dạng không rõ ràng đã được chỉ định" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "Thiếu khóa định dạng cần thiết" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Trường tham chiếu không thể rỗng" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "Tham chiếu phải phù hợp với mẫu yêu cầu" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Số tham chiếu quá lớn" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "Tên trùng lặp không thể tồn tại trong cùng cấp thư mục" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Lựa chọn sai" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "Tên" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "Mô tả" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "Mô tả (tùy chọn)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "Đường dẫn" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "Ghi chú markdown (không bắt buộc)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Dữ liệu mã vạch" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Dữ liệu mã vạch của bên thứ ba" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "Dữ liệu băm mã vạch" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Chuỗi băm duy nhất của dữ liệu mã vạch" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Mã vạch đã tồn tại" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Lỗi máy chủ" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "Lỗi đã được ghi lại bởi máy chủ." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "Phải là một số hợp lệ" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "URL của tệp hình ảnh bên ngoài" msgid "Downloading images from remote URL is not enabled" msgstr "Chức năng tải hình ảnh từ URL bên ngoài không được bật" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "Nhân công chạy ngầm kiểm tra thất bại" @@ -726,17 +726,17 @@ msgstr "Giới thiệu" msgid "Build must be cancelled before it can be deleted" msgstr "Bạn dựng phải được hủy bỏ trước khi có thể xóa được" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "Vật tư tiêu hao" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "Tuỳ chọn" msgid "Tracked" msgstr "Đã theo dõi" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "Đã cấp phát" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "Có sẵn" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "Tạo đơn hàng" @@ -789,72 +789,72 @@ msgstr "Tạo đơn hàng" msgid "Build Orders" msgstr "Tạo đơn hàng" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "Lựa chọn sai cho bản dựng cha" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "Sản phẩm đơn đặt bản dựng không thể thay đổi được" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "Tham chiếu đơn đặt bản dựng" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Tham chiếu" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "Mô tả ngắn về phiên bạn (Tùy chọn)" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Phiên bản cha" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "Đơn đặt bản dựng với bản dựng này đã được phân bổ" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "Đơn đặt bản dựng với bản dựng này đã được phân b #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "Nguyên liệu" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "Chọn sản phẩm để xây dựng" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "Tham chiếu đơn đặt bản dựng" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "Đơn đặt bán hàng với bản dựng này đã được phân bổ" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Địa điểm nguồn" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Chọn địa điểm để lấy trong kho cho bản dựng này (để trống để lấy từ bất kỳ vị trí kho nào)" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "Địa điểm đích" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "Chọn địa điểm nơi hàng hóa hoàn thiện sẽ được lưu kho" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "Xây dựng số lượng" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "Số kho hàng để dựng" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "Những mục hoàn thành" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "Số sản phẩm trong kho đã được hoàn thiện" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "Trnạg thái bản dựng" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "Mã trạng thái bản dựng" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "Mã lô hàng" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "Mã lô cho đầu ra bản dựng này" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Ngày tạo" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "Ngày hoàn thành mục tiêu" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Ngày mục tiêu để hoàn thành bản dựng. Bản dựng sẽ bị quá hạn sau ngày này." -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "Ngày hoàn thành" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "hoàn thành bởi" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "Cấp bởi" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "Người dùng người đã được phân công cho đơn đặt bản dựng này" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "Chịu trách nhiệm" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "Người dùng hoặc nhóm có trách nhiệm với đơn đặt bản dựng này" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Liên kết bên ngoài" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "Liên kết đến URL bên ngoài" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "Độ ưu tiên" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "Độ quan trọng của đơn đặt bản dựng" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "Độ quan trọng của đơn đặt bản dựng" msgid "Project Code" msgstr "Mã dự án" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "Mã dự án cho đơn đặt bản dựng này" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "Đơn đặt bản dựng {build} đã được hoàn thành" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "Một đơn đặt bản dựng đã được hoàn thành" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "Không có đầu ra bản dựng đã được chỉ ra" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "Đầu ra bản dựng đã được hoàn thiện" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "Đầu ra bản dựng không phù hợp với đơn đặt bản dựng" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "Số lượng phải lớn hơn 0" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "Số lượng không thể lớn hơn số lượng đầu ra" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "Dựng đối tượng" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "Dựng đối tượng" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "Số lượng" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "Yêu cầu số lượng để dựng đơn đặt" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Xây dựng mục phải xác định đầu ra, bởi vì sản phẩm chủ được đánh dấu là có thể theo dõi" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Số lượng được phân bổ ({q}) không thể vượt quá số lượng có trong kho ({a})" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "Kho hàng đã bị phân bổ quá đà" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "Số lượng phân bổ phải lớn hơn 0" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "Số lượng phải là 1 cho kho sê ri" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "Hàng trong kho đã chọn không phù hợp với đường BOM" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "Kho hàng" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "Kho hàng gốc" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "Số lượng kho hàng cần chỉ định để xây dựng" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "Cài đặt vào" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "Kho hàng đích" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "Tên sản phẩm" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "Đầu ra bản dựng" @@ -1260,7 +1260,7 @@ msgstr "Cần nhập số lượng nguyên dương, bởi vì hóa đơn vật l #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Số sê-ri" @@ -1270,21 +1270,21 @@ msgstr "Nhập vào số sêri cho đầu ra bản dựng" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "Địa điểm" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "Vị trí cho đầu ra bản dựng hoàn thiện" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "Trạng thái" @@ -1508,7 +1508,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "Mã số nhà sản xuất" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "ID sản phẩm" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "IPN sản phẩm" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "Số sê-ri" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1584,13 +1584,13 @@ msgstr "Có thể theo dõi" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "Cho phép biến thể" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "Mục BOM" @@ -1600,22 +1600,22 @@ msgstr "Mục BOM" msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "Bật đơn hàng" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "Đang sản xuất" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,7 +1633,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" @@ -1684,7 +1684,7 @@ msgstr "Ảnh thu nhỏ sản phẩm" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "Chức năng mã vạch" @@ -1696,7 +1696,7 @@ msgstr "Chức năng mã vạch" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Hiển thị mã QR" @@ -1707,7 +1707,7 @@ msgstr "Hiển thị mã QR" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "Gỡ mã vạch" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "Liên kết mã vạch" @@ -1786,16 +1786,16 @@ msgstr "Kho không được phân bổ đầy đủ với yêu cầu bản dựn #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "Đầu ra hoàn thiện" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "Đầu ra hoàn thiện" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "Đơn đặt hàng" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "Phát hành bởi" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "Độ ưu tiên" @@ -1875,8 +1875,8 @@ msgstr "Nguồn kho" msgid "Stock can be taken from any available location." msgstr "Kho có thể được lấy từ bất kỳ địa điểm nào." -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "Đích đến" @@ -1890,11 +1890,11 @@ msgstr "Sản phẩm đã phân bổ" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "Hàng loạt" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "Đã tạo" @@ -2037,15 +2037,15 @@ msgstr "Mục dòng" msgid "Incomplete Outputs" msgstr "Đầu ra chưa hoàn thiện" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,362 +2103,370 @@ msgstr "Tập tin {name.title()}" msgid "Select {name} file to upload" msgstr "Chọn tập tin {name} để tải lên" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "Đã cập nhật" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "Nhãn thời gian của lần cập cuối cùng" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "Mã dự án duy nhất" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "Mô tả dự án" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "Người dùng hoặc nhóm có trách nhiệm với dự án này" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "Khóa thiết lập (phải duy nhất - phân biệt hoa thường)" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "Giá trị cài đặt" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "Giá trị đã chọn không hợp lệ" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "Giá trị phải là kiểu boolean" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "Giá trị phải là một số nguyên dương" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "Chuỗi khóa phải duy nhất" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "Không có nhóm" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "Cần khởi động lại" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "Một thiết lập đã bị thay đổi yêu cầu khởi động lại máy chủ" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "Chuyển dữ liệu chờ xử lý" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "Số đợt nâng cấp cơ sở dữ liệu chờ xử lý" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "Tên thực thể máy chủ" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "Mô tả chuỗi cho thực thể máy chủ" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "Sử dụng tên thực thể" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "Sử dụng tên thực thể trên thanh tiêu đề" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "Cấm hiển thị `giới thiệu`" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "Chỉ hiển thị cửa sổ `giới thiệu` với siêu người dùng" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "Tên công ty" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "Tên công ty nội bộ" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "URL cơ sở" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "URL cơ sở cho thực thể máy chủ" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "Tiền tệ mặc định" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "Chọn tiền tệ chính khi tính giá" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "Tần suất cập nhật tiền tệ" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "Mức độ thường xuyên để cập nhật tỉ giá hối đoái (điền 0 để tắt)" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "ngày" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "Phần mở rộng cập nhật tiền tệ" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "Phần mở rộng cập nhật tiền tệ được sử dụng" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "Tải về từ URL" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "Cho phép tải ảnh và tệp tin từ xa theo URL bên ngoài" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "Giới hạn kích thước tải xuống" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "Kích thước tải xuống tối đa với hình ảnh từ xa" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "User-agent được dùng để tải xuống theo URL" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Cho phép ghi đè user-agent được dùng để tải về hình ảnh và tệp tin từ xa theo URL bên ngoài (để trống nghĩa là dùng mặc định)" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "Yêu cầu xác nhận" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "Yêu cầu người dùng xác nhận rõ ràng với một số chức năng nhất định." -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "Cấp độ cây" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Độ sâu cây mặc định cho màn hình cây. Cấp độ sâu hơn sẽ sử dụng kỹ thuật tải chậm nếu cần thiết." -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "Thời gian kiểm tra bản cập nhật" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "Mức độ thường xuyên để kiểm tra bản cập nhật (điền 0 để tắt)" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "Sao lưu tự động" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "Bật tính năng sao lưu tự động cơ sở dữ liệu và tệp tin đa phương tiện" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "Khoảng thời gian sao lưu tự động" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "Xác định số ngày giữa các kỳ sao lưu tự động" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "Khoảng thời gian xóa tác vụ" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "Kết quả tác vụ chạy ngầm sẽ bị xóa sau số ngày được chỉ định" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "Khoảng thời gian xóa nhật ký lỗi" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "Nhật ký lỗi sẽ bị xóa sau số ngày được chỉ định" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "Khoảng thời gian xóa thông báo" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "Thông báo sẽ bị xóa sau số ngày được chỉ định" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Hỗ trợ mã vạch" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "Bật hỗ trợ máy quét mã vạch trong giao diện web" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "Độ trễ quét mã vạch" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "Thời gian trễ xử lý đầu đọc mã vạch" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "Hỗ trợ mã vạch qua webcam" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "Cho phép quét mã vạch qua webcam bên trong trình duyệt" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 +#: common/models.py:1419 +msgid "Barcode Generation Plugin" +msgstr "" + +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" +msgstr "" + +#: common/models.py:1425 msgid "Part Revisions" msgstr "Phiên bản Sản phẩm" -#: common/models.py:1407 +#: common/models.py:1426 msgid "Enable revision field for Part" msgstr "Bật trường phiên bản cho sản phẩm" -#: common/models.py:1412 +#: common/models.py:1431 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1413 +#: common/models.py:1432 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1418 +#: common/models.py:1437 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1419 +#: common/models.py:1438 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1424 +#: common/models.py:1443 msgid "IPN Regex" msgstr "Mẫu IPN" -#: common/models.py:1425 +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "Mẫu dùng nhanh phổ biến dành cho tìm IPN sản phẩm" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "Cho phép trùng IPN" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "Cho phép nhiều sản phẩm dùng IPN giống nhau" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "Cho phép sửa IPN" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "Cho phép đổi giá trị IPN khi sửa một sản phẩm" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "Sao chép dữ liệu BOM của sản phẩm" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "Sao chép dữ liệu BOM mặc định khi nhân bản 1 sản phẩm" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "Sao chép dữ liệu tham số sản phẩm" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "Sao chép dữ liệu tham số mặc định khi nhân bản 1 sản phẩm" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "Chép thông tin kiểm thử sản phẩm" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "Sao chép dữ liệu kiểm thử mặc định khi nhân bản 1 sản phẩm" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "Sao chéo mẫu tham số danh mục" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "Sao chéo mẫu tham số danh mục khi tạo 1 sản phẩm" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "Sao chéo mẫu tham số danh mục khi tạo 1 sản phẩm" msgid "Template" msgstr "Mẫu" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "Sản phẩm là mẫu bởi mặc định" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "Lắp ráp" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "Sản phẩm có thể lắp giáp từ thành phần khác theo mặc định" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "Thành phần" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "Sản phẩm có thể được sử dụng mặc định như thành phần phụ" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "Có thể mua" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "Sản phẩm mặc định có thể mua được" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "Có thể bán" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "Sản phẩm mặc định có thể bán được" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "Sản phẩm mặc định có thể theo dõi được" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "Ảo" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "Sản phẩm mặc định là số hóa" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "Hiển thị Nhập liệu trong khung xem" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "Hiển thị đồ thuật nhập dữ liệu trong một số khung nhìn sản phẩm" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "Hiển thị sản phẩm liên quan" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "Hiện sản phẩm liên quan cho 1 sản phẩm" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "Số liệu tồn kho ban đầu" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "Cho phép tạo tồn kho ban đầu khi thêm 1 sản phẩm mới" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "Dữ liệu nhà cung cấp ban đầu" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Cho phép tạo dữ liệu nhà cung cấp ban đầu khi thêm 1 sản phẩm mới" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "Định dạng tên sản phẩm hiển thị" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "Định dạng để hiển thị tên sản phẩm" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "Biểu tượng mặc định của danh mục sản phẩm" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "Biểu tượng mặc định của danh mục sản phẩm (để trống nghĩa là không có biểu tượng)" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "Bắt buộc đơn vị tham số" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "Nếu đơn vị được cung cấp, giá trị tham số phải phù hợp với các đơn vị xác định" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "Vị trí phần thập phân giá bán tối thiểu" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Số vị trí thập phân tối thiểu cần hiển thị khi tạo dữ liệu giá" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "Vị trí phần thập phân giá bán tối đa" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "Số vị trí thập phân tối đa cần hiển thị khi tạo dữ liệu giá" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "Sử dụng giá bán nhà cung cấp" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Bao gồm giá phá vỡ cả nhà cung cấp trong tính toán giá tổng thể" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "Ghi đè lịch sử mua hàng" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Giá đơn hàng đặt mua trước đó ghi đè giá phá vỡ của nhà cung cấp" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "Sử dụng giá hàng hóa trong kho" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Dùng giá bán từ dữ liệu kho nhập vào thủ công đối với bộ tính toán giá bán" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "Tuổi giá kho hàng" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Loại trừ hàng hóa trong kho cũ hơn số ngày ngày từ bảng tính giá bán" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "Sử dụng giá biến thể" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "Bao gồm giá biến thể trong bộ tính toán giá tổng thể" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "Chỉ các biến thể hoạt động" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "Chỉ sử dụng sản phẩm biến thể hoạt động để tính toán giá bán biến thể" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "Tần suất tạo lại giá" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "Số ngày trước khi giá sản phẩm được tự động cập nhật" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "Giá nội bộ" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "Bật giá nội bộ cho sản phẩm" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "Ghi đè giá nội bộ" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "Nếu khả dụng, giá nội bộ ghi đè tính toán khoảng giá" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "Bật in tem nhãn" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "Bật chức năng in tem nhãn từ giao diện web" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "DPI hỉnh ảnh tem nhãn" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "Độ phân giải DPI khi tạo tệp hình ảnh để cung cấp cho plugin in ấn tem nhãn" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "Bật báo cáo" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "Cho phép tạo báo cáo" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "Chế độ gỡ lỗi" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "Tạo báo cáo trong chế độ gỡ lỗi (đầu ra HTML)" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "Khổ giấy" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "Kích thước trang mặc định cho báo cáo PDF" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "Bật báo cáo kiểm thử" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "Cho phép tạo báo cáo kiểm thử" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "Đính kèm báo cáo kiểm thử" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "Khi in một báo cáo kiểm thử, đính kèm một bản sao của báo cáo kiểm thử với hàng trong kho đã được kết hợp" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "Sê ri toàn cục duy nhất" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "Số sê ri cho hàng trong kho phải là duy nhất trong toàn hệ thống" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "Tự động điền số sê ri" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "Tự động điền số sê ri vào biểu mẫu" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "Xóa kho đã hết hàng" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "Mẫu sinh mã theo lô" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "Mẫu tạo mã theo lô mặc định cho hàng trong kho" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "Quá hạn trong kho" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "Bật chức năng quá hạn tồn kho" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "Bán kho quá hạn" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "Cho phép bán hàng kho quá hạn" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "Thời gian hàng cũ trong kho" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "Số ngày hàng trong kho được xác định là cũ trước khi quá hạn" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "Dựng kho quá hạn" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "Cho phép xây dựng với kho hàng quá hạn" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "Kiểm soát sở hữu kho" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "Bật chức năng kiểm soát sở hữu kho với địa điểm và hàng trong kho" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "Biểu tượng địa điểm kho mặc định" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "Biểu tượng địa điểm kho hàng mặc định (trống nghĩa là không có biểu tượng)" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "Hiển thị hàng hóa đã lắp đặt" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "Hiển thị hàng trong kho đã được lắp đặt trên bảng kho" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "Mã tham chiếu đơn đặt bản dựng" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "Mẫu bắt buộc cho để trường tham chiếu đơn đặt bản dựng" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "Bật đơn hàng trả lại" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "Bật chức năng đơn hàng trả lại trong giao diện người dùng" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "Mẫu tham chiếu đơn hàng trả lại" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "Sửa đơn hàng trả lại đã hoàn thành" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "Cho phép sửa đơn hàng trả lại sau khi đã hoàn thành rồi" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "Mẫu tham chiếu đơn đặt hàng" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "Mẫu bắt buộc để tạo trường tham chiếu đơn đặt hàng" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "Vận chuyển mặc định đơn đặt hàng" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "Cho phép tạo vận chuyển mặc định với đơn đặt hàng" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "Sửa đơn đặt hàng đã hoàn thành" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Cho phép sửa đơn đặt hàng sau khi đã vận chuyển hoặc hoàn thành" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "Mẫu tham chiếu đơn đặt mua" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "Mẫu bắt buộc cho để trường tham chiếu đơn đặt mua" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "Sửa đơn đặt mua đã hoàn thành" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Cho phép sửa đơn đặt mua sau khi đã vận chuyển hoặc hoàn thành" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "Tự động hoàn thành đơn đặt mua" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "Bật quên mật khẩu" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "Bật chức năng quên mật khẩu trong trang đăng nhập" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "Bật đăng ký" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "Cho phép người dùng tự đăng ký tại trang đăng nhập" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "Bật SSO" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "Cho phép SSO tại trang đăng nhập" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "Bật đăng ký SSO" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Cho phép người dùng tự đăng ký SSO tại trang đăng nhập" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "Yêu cầu email" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "Yêu cầu người dùng cung cấp email để đăng ký" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "Người dùng tự động điền SSO" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "Tự động điền thông tin chi tiết từ dữ liệu tài khoản SSO" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "Thư 2 lần" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "Khi đăng ký sẽ hỏi người dùng hai lần thư điện tử của họ" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "Mật khẩu 2 lần" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "Khi đăng ký sẽ hỏi người dùng hai lần mật khẩu của họ" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "Các tên miền được phép" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Cấm đăng ký với 1 số tên miền cụ thể (dấu phẩy ngăn cách, bắt đầu với dấu @)" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "Nhóm khi đăng ký" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "Bắt buộc MFA" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "Người dùng phải sử dụng bảo mật đa nhân tố." -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "Kiểm tra phần mở rộng khi khởi động" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Kiểm tra toàn bộ phần mở rộng đã được cài đặt khi khởi dộng - bật trong môi trường ảo hóa" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "Kiểm tra cập nhật plugin" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "Bật tích hợp URL" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "Bật phần mở rộng để thêm định tuyến URL" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "Bật tích hợp điều hướng" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "Bật phần mở rộng để tích hợp thanh định hướng" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "Bật tích hợp ứng dụng" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "Bật phần mở rộng để thêm ứng dụng" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "Cho phép tích hợp lập lịch" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "Bật phẩn mở rộng để chạy các tác vụ theo lịch" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "Bật tích hợp nguồn cấp sự kiện" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "Bật phần mở rộng để trả lời sự kiện bên trong" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "Bật mã dự án" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "Bật mã dự án để theo dõi dự án" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "Chức năng kiểm kê" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Bật chức năng kiểm kê theo mức độ ghi nhận kho và tính toán giá trị kho" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "Ngoại trừ vị trí bên ngoài" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Loại trừ hàng trong kho thuộc địa điểm bên ngoài ra khỏi tính toán kiểm kê" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "Giai đoạn kiểm kê tự động" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Số ngày giữa ghi chép kiểm kê tự động (đặt không để tắt)" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "Khoảng thời gian xóa báo cáo" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Báo cáo kiểm kê sẽ bị xóa sau số ngày xác định" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "Hiển thị tên đầy đủ của người dùng" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "Hiển thị tên đầy đủ thay vì tên đăng nhập" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "Khóa thiết lập (phải duy nhất - phân biệt hoa thường" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "Ẩn sản phẩm ngừng hoạt động" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Ẩn sản phẩm bị tắt trong kết quả trình bày tại trang chủ" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "Hiện sản phẩm đã đăng ký" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "Hiện sản phẩm đã đăng ký trên trang chủ" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "Hiện danh mục đã đăng ký" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "Hiện danh mục sản phẩm đã đăng ký trên trang chủ" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "Hiển thị nguyên liệu mới nhất" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "Hiển thị nguyên liệu mới nhất trên trang chủ" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "Hiện BOM chờ xác thực tại trang chủ" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "Hiện thay đổi kho hàng gần đây" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "Hiện hàng trong kho được thay đổi gần nhất trên trang chủ" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "Hiển thị hàng còn ít" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "Hiển thị hàng hóa còn ít tại trang chủ" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "Hiển thị hết hàng" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "Hiển thị hàng hóa đã bán hết tại trang chủ" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "Hiển thị hàng cần thiết" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "Hiện hàng trong kho cần thiết cho xây dựng tại trang chủ" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "Bán kho quá hạn" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "Hiển thị hàng hóa đã quá hạn trên trang chủ" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "Hiện kho hàng ế" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "Hiện hàng trong kho bị ế trên trang chủ" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "Hiện bản dựng chờ xử lý" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "Hiện bản dựng chờ xử lý trên trang chủ" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "Hiện bản dựng quá hạn" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "Hiện bản dựng quá hạn trên trang chủ" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "Hiện PO nổi bật" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "Hiện PO nổi bật trên trang chủ" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "Hiện PO quá hạn" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "Hiện đơn mua hàng quá hạn trên trang chủ" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "Hiện đơn hàng vận chuyển nổi bật" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "Hiện đơn hàng vận chuyển nổi bật tại trang chủ" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "Hiện đơn vận chuyển quá hạn" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "Hiện đơn vận chuyển quá hạn trên trang chủ" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "Hiện đơn vận chuyển chờ xử lý" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "Hiện đơn vận chuyển chờ xử lý trên trang chủ" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "Hiện tin tức" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "Hiện tin tức trên trang chủ" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "Hiển thị nhãn cùng dòng" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Hiển thị nhãn PDF trong trình duyệt, thay vì tải về dạng tệp tin" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "Máy in tem nhãn mặc định" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "Cấu hình máy in tem nhãn nào được chọn mặc định" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "Hiển thị báo cáo cùng hàng" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Hiện báo cáo PDF trong trình duyệt, thay vì tải về dạng tệp tin" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "Tìm sản phẩm" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "Hiện hàng hóa trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "Tìm sản phẩm nhà cung cấp" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "Hiện sản phẩm nhà cung cấp trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "Tìm sản phẩm nhà sản xuất" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "Hiện sản phẩm nhà sản xuất trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "Ẩn sản phẩm ngừng hoạt động" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "Loại trừ sản phẩm ngưng hoạt động trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "Tìm kiếm danh mục" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "Hiện danh mục sản phẩm trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "Tìm kiếm kho" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "Hiện hàng hóa ở kho trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "Ẩn hàng hóa trong kho không có sẵn" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "Không bao gồm hàng hóa trong kho mà không sẵn sàng từ màn hình xem trước tìm kiếm" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "Tìm kiếm vị trí" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "Hiện vị trí kho hàng trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "Tìm kiếm công ty" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "Hiện công ty trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "Tìm kiếm đặt hàng xây dựng" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "Hiện đơn đặt xây dựng trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "Tìm kiếm đơn đặt mua" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "Hiện đơn đặt mua trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "Loại trừ đơn đặt mua không hoạt động" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "Loại trừ đơn đặt mua không hoạt động ra khỏi cửa sổ xem trước tìm kiếm" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "Tìm đơn đặt hàng người mua" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "Hiện đơn đặt hàng người mua trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "Loại trừ đơn đặt hàng người mua không hoạt động" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "Không bao gồm đơn đặt hàng người mua không hoạt động trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "Tìm kiếm đơn hàng trả lại" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "Hiện đơn hàng trả lại trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "Loại trừ đơn hàng trả lại không hoạt động" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "Không bao gồm đơn hàng trả lại không hoạt động trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "Kết quả xem trước tìm kiếm" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "Số kết quả cần hiển thị trong từng phần của cửa sổ xem trước tìm kiếm" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "Tìm kiếm biểu thức" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "Bật tìm kiếm biểu thức chính quy trong câu truy vấn tìm kiếm" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "Tìm phù hợp toàn bộ chữ" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "Truy vấn tìm trả về kết quả phù hợp toàn bộ chữ" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "Hiện số lượng trong biểu mẫu" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "Hiển thị số lượng sản phẩm có sẵn trong một số biểu mẫu" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "Phím escape để đóng mẫu biểu" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "Sử dụng phím escape để đóng mẫu biểu hộp thoại" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "Cố định điều hướng" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "Vị trí thành điều hướng là cố định trên cùng màn hình" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "Định dạng ngày" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "Định dạng ưa chuộng khi hiển thị ngày" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Lập lịch sản phẩm" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "Hiển thị thông tin lịch sản phẩm" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Kiểm kê sản phẩm" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Hiển thị thông tin kiểm kê sản phẩm (nếu chức năng kiểm kê được bật)" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "Độ dài chuỗi trong bảng" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "Giới hạn độ dài tối đa cho chuỗi hiển thị trong kiểu xem bảng biểu" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "Nhận báo cáo lỗi" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "Nhận thông báo khi có lỗi hệ thống" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "Người dùng" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "Số lượng giá phá vỡ" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Giá" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "Đơn vị giá theo số lượng cụ thể" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "Đầu mối" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "Đầu mối tại điểm webhook được nhận" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "Tên của webhook này" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "Webhook có hoạt động không" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "Chữ ký số" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "Chữ ký số để truy cập" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "Bí mật" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "Mã bí mật dùng chung cho HMAC" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "Mã Tin nhắn" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "Định danh duy nhất cho tin nhắn này" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "Máy chủ" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "Mãy chủ từ tin nhắn này đã được nhận" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "Đầu mục" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "Đầu mục tin nhắn" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "Thân" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "Thân tin nhắn này" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "Đầu mối của tin nhắn này đã nhận được" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "Làm việc vào" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "Công việc trong tin nhắn này đã kết thúc?" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "Mã" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Tiêu đề" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "Liên kết" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "Đã công bố" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Tác giả" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "Tóm tắt" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "Đọc" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "Tin này đã được đọc?" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "Tin này đã được đọc?" msgid "Image" msgstr "Hình ảnh" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "Tệp ảnh" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "Tên đơn vị phải là một định danh hợp lệ" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "Tên đơn vị" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Biểu tượng" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "Biểu tượng đơn vị tùy chọn" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Định nghĩa" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "Định nghĩa đơn vị" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Đính kèm" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "Tập tin bị thiếu" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Thiếu liên kết bên ngoài" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Chọn file đính kèm" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Bình luận" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3957,27 +3965,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "Tên miền rỗng là không được phép." -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Tên miền không hợp lệ: {domain}" @@ -4228,26 +4236,26 @@ msgstr "Ghi chú nội bộ sử dụng cho chuyển phát nhanh" msgid "Link to address information (external)" msgstr "Liên kết thông tin địa chỉ (bên ngoài)" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Sản phẩm nhà sản xuất" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Sản phẩm cơ bản" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "Chọn sản phẩm" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "Chọn sản phẩm" msgid "Manufacturer" msgstr "Nhà sản xuất" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "Chọn nhà sản xuất" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "URL cho liên kết sản phẩm của nhà sản xuất bên ngoài" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "Mô tả sản phẩm của nhà sản xuất" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "Tên tham số" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "Giá trị" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "Giá trị tham số" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "Đơn vị" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "Đơn vị tham số" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "Sản phẩm nhà cung cấp" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "Đơn vị đóng gói phải tương thích với đơn vị sản phẩm cơ bản" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "Đơn vị đóng gói phải lớn hơn không" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "Sản phẩm nhà sản xuất đã liên kết phải tham chiếu với sản phẩm cơ bản tương tự" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "Nhà cung cấp" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "Chọn nhà cung cấp" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "Đơn vị quản lý kho nhà cung cấp" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "Chọn sản phẩm của nhà sản xuất" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "URL cho liên kết sản phẩm của nhà cung cấp bên ngoài" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "Mô tả sản phẩm nhà cung cấp" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "Mô tả sản phẩm nhà cung cấp" msgid "Note" msgstr "Ghi chú" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "chi phí cơ sở" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "Thu phí tối thiểu (vd: phí kho bãi)" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "Đóng gói" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "Đóng gói sản phẩm" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "Số lượng gói" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Tổng số lượng được cung cấp trong một gói đơn. Để trống cho các hàng hóa riêng lẻ." -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "nhiều" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "Đặt hàng nhiều" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "Số lượng có sẵn từ nhà cung cấp" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "Sẵn hàng đã được cập nhật" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "Ngày cập nhật cuối thông tin tồn kho" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "Tiền tệ mặc định được sử dụng cho nhà cung cấp này" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "Còn hàng" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "Không hoạt động" @@ -4526,16 +4534,16 @@ msgstr "Tải hình ảnh từ URL" msgid "Delete image" msgstr "Xóa ảnh" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "Khách hàng" @@ -4734,7 +4742,7 @@ msgstr "Chưa có thông tin nhà sản xuất" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "Thêm thông số" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "Chưa có thông tin nhà cung cấp" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "Kho sản phẩm nhà cung cấp" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "Thêm mới hàng trong kho" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "Hàng trong kho mới" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "Cập nhật độ sẵn sàng sản phẩm" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "Hàng trong kho" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "Dữ liệu" @@ -5203,7 +5211,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "Tổng tiền" @@ -5224,9 +5232,9 @@ msgstr "" msgid "No matching purchase order found" msgstr "Không tìm thấy đơn đặt mua phù hợp" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "Đặt hàng" @@ -5239,26 +5247,26 @@ msgstr "" msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "Đơn hàng" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "Đơn hàng trả lại" @@ -5286,7 +5294,7 @@ msgstr "Mô tả đơn đặt (tùy chọn)" msgid "Select project code for this order" msgstr "Mã dự án đã chọn cho đơn đặt hàng này" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "Liên kết đến trang bên ngoài" @@ -5310,365 +5318,365 @@ msgstr "Đầu mối liên hệ của đơn đặt này" msgid "Company address for this order" msgstr "Địa chỉ công ty cho đơn đặt này" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "Mã đặt hàng" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "Trạng thái đơn đặt mua" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "Doanh nghiệp từ những hàng hóa đang được đặt mua" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "Tham chiếu nhà cung cấp" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "Mã tham chiếu đơn đặt nhà cung cấp" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "nhận bởi" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "Ngày phát hành" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "Ngày đặt hàng đã phát hành" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "Ngày đặt hàng đã được hoàn thiện" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "Nhà cung cấp sản phẩm phải trùng với nhà cung cấp PO" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "Số lượng phải là số dương" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "Doanh nghiệp từ những hàng hóa đang được bán" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "Tham chiếu khách hàng " -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "Mã tham chiếu đơn đặt của khách hàng" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "Ngày giao hàng" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "vận chuyển bằng" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "Những đơn hàng đang mở thì sẽ được đánh dấu là hoàn thành" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Đơn hàng không thể hoàn thành được vì vận chuyển chưa xong" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "Đơn hàng không thể hoàn thành được vì những khoản riêng chưa xong" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "Số lượng mặt hàng" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "Tham chiếu khoản riêng" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "Ghi chú khoản riêng" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Ngày mục tiêu cho khoản riêng này (để trống để sử dụng ngày mục tiêu từ đơn đặt)" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "Mô tả khoản riêng (tùy chọn)" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "Ngữ cảnh" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "Ngữ cảnh bổ sung" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "Đơn giá" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "Sản phẩm nhà cung cấp phải phù hợp với nhà cung cung cấp" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "đã bị xóa" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "Sản phẩm nhà cung cấp" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "Đã nhận" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "Số mục đã nhận" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "Giá mua" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "Giá đơn vị mua" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "Có phải người mua hàng muốn mặt hàng này được tích trữ?" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "Không thể gán sản phẩm ảo vào trong đơn đặt bán hàng" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "Chỉ có thể gán sản phẩm có thể bán vào đơn đặt bán hàng" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Giá bán" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "Giá bán đơn vị" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Đã chuyển" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "Số lượng đã vận chuyển" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "Ngày vận chuyển" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "Ngày giao hàng" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "Ngày giao hàng của vận chuyển" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "Kiểm tra bởi" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "Người dùng đã kiểm tra vận chuyển này" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "Vận chuyển" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "Mã vận chuyển" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "Số theo dõi" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "Thông tin theo dõi vận chuyển" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "Mã hóa đơn" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "Số tham chiếu liên kết với hóa đơn" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "Vận đơn đã được gửi đi" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "Vận đơn chưa có hàng hóa được phân bổ" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "Hàng trong kho chưa được giao" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "Không thể phân bổ hàng hóa vào cùng với dòng với sản phẩm khác" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "Không thể phân bổ hàng hóa vào một dòng mà không có sản phẩm nào" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Số lượng phân bổ không thể vượt quá số lượng của kho" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "Số lượng phải là 1 cho hàng hóa sêri" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "Đơn bán hàng không phù hợp với vận đơn" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "Vận đơn không phù hợp với đơn bán hàng" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "Dòng" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "Tham chiếu vận đơn của đơn hàng bán" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "Hàng hóa" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "Chọn hàng trong kho để phân bổ" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "Nhập số lượng phân kho" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "Tham chiếu đơn hàng trả lại" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "Công ty có hàng hóa sẽ được trả lại" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "Trạng thái đơn hàng trả lại" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "Chỉ hàng hóa thêo sêri mới có thể được gán vào đơn hàng trả lại" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "Chọn hàng hóa để trả lại từ khách hàng" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "Ngày nhận được" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "Ngày mà hàng hóa trả lại đã được nhận" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "Kết quả" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "Kết quả cho hàng hóa dòng này" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "Chi phí gắn với hàng trả lại hoặc sửa chữa cho dòng hàng hóa này" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "Mã sản phẩm nội bộ" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "Chọn vị trí đích cho hàng hóa đã nhận" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "Nhập mã lô cho hàng trong kho đang đến" @@ -6056,12 +6064,12 @@ msgstr "Lựa chọn trùng lặp" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Xóa hàng" @@ -6175,8 +6183,8 @@ msgstr "Mã khách hàng" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "Vận chuyển đang chờ xử lý" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "Chức năng" @@ -6272,21 +6280,21 @@ msgstr "Cập nhật {part} giá đơn vị đến {price}" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "Cập nhật {part} giá đơn vị đến {price} và số lượng đến {qty}" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "Phiên bản" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "Từ khóa" @@ -6298,7 +6306,7 @@ msgstr "Ảnh sản phẩm" msgid "Category ID" msgstr "ID danh mục" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "Tên danh mục" @@ -6311,11 +6319,11 @@ msgstr "ID vị trí mặc định" msgid "Default Supplier ID" msgstr "ID nhà cung ứng mặc định" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Biến thể của" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Kho tối thiểu" @@ -6323,19 +6331,19 @@ msgstr "Kho tối thiểu" msgid "Used In" msgstr "Sử dụng trong" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "Đang dựng" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "Chi phí tối thiểu" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "Chi phí tối đa" @@ -6347,19 +6355,19 @@ msgstr "ID cha" msgid "Parent Name" msgstr "Tên cha" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "Đưỡng dẫn danh mục" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "Nguyên liệu" @@ -6376,13 +6384,17 @@ msgstr "ID hàng hóa BOM" msgid "Parent IPN" msgstr "IPN cha" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "Giá thấp nhất" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "Danh mục" @@ -6489,13 +6501,13 @@ msgstr "Danh mục" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "Điểm bán mặc định" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Tổng số lượng" @@ -6504,784 +6516,785 @@ msgstr "Tổng số lượng" msgid "Input quantity for price calculation" msgstr "Số lượng đầu ra cho tính toán giá bán" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Danh mục sản phẩm" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Danh mục sản phẩm" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "Vị trí mặc định cho sản phẩm trong danh mục này" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "Cấu trúc" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "Hàng hóa không được gán trực tiếp vào danh mục có cấu trúc nhưng có thể được gán vào danh mục con." -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "Từ khóa mặc định" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "Từ khóa mặc định cho sản phẩm trong danh mục này" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Biểu tượng" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "Biểu tượng (tùy chọn)" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "Bạn không thể thay đổi cấu trúc nhóm sản phẩm này vì một số sản phẩm đã được gắn với nó rồi!" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "Lựa chọn sai cho sản phẩm cha" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "Không thể dùng sản phẩm '{self}' trong BOM cho '{parent}' (đệ quy)" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "Sản phẩm '{parent}' được dùng trong BOM cho '{self}' (đệ quy)" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "IPN phải phù hợp mẫu biểu thức chính quy {pattern}" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "Hàng trong kho với số sê ri này đã tồn tại" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "IPN trùng lặp không được cho phép trong thiết lập sản phẩm" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "Sản phẩm với Tên, IPN và Duyệt lại đã tồn tại." -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "Sản phẩm không thể được phân vào danh mục sản phẩm có cấu trúc!" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "Tên sản phẩm" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "Là Mẫu" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "Sản phẩm này có phải là sản phẩm mẫu?" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "Đây có phải là 1 biến thể của sản phẩm khác?" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "Mô tả (không bắt buộc)" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "Từ khóa sản phẩm để cải thiện sự hiện diện trong kết quả tìm kiếm" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "Danh mục sản phẩm" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "Số phiên bản hoặc bản duyệt lại sản phẩm" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "Hàng hóa này sẽ được cất vào đâu?" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "Nhà cung ứng mặc định" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "Nhà cung ứng sản phẩm mặc định" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "Hết hạn mặc định" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "Thời gian hết hạn (theo ngày) để nhập kho hàng hóa cho sản phẩm này" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "Cấp độ kho tối thiểu được phép" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "Đơn vị đo cho sản phẩm này" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "Sản phẩm này có thể được dựng từ sản phẩm khác?" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "Sản phẩm này có thể dùng để dựng các sản phẩm khác?" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "Sản phẩm này có đang theo dõi cho hàng hóa duy nhất?" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "Sản phẩm này có thể mua được từ nhà cung ứng bên ngoài?" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "Sản phẩm này có thể được bán cho khách hàng?" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "Sản phẩm này đang hoạt động?" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "Đây là sản phẩm ảo, ví dụ như sản phẩm phần mềm hay bản quyền?" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "Giá trị tổng kiểm BOM" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "Giá trị tổng kiểm BOM đã được lưu" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "BOM kiểm tra bởi" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "Ngày kiểm tra BOM" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "Tạo người dùng" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "Trách nhiệm chủ sở hữu cho sản phẩm này" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "Kiểm kê cuối cùng" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "Bán nhiều" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "Tiền được dùng để làm đệm tính toán giá bán" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "Chi phí BOM tối thiểu" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "Chi phí thành phần sản phẩm tối thiểu" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "Chi phí BOM tối đa" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "Chi phí thành phần sản phẩm tối đa" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "Chi phí mua vào tối thiểu" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "Chi phí mua vào tối thiểu trong lịch sử" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "Chi phí mua tối đa" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "Chi phí thành phần sản phẩm tối đa trong lịch sử" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "Giá nội bộ tối thiểu" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "Chi phí tối thiểu dựa trên phá vỡ giá nội bộ" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "Giá nội bộ tối đa" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "Chi phí tối đa dựa trên phá vỡ giá nội bộ" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "Giá nhà cung ứng tối thiểu" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "Giá sản phẩm tối thiểu từ nhà cung ứng bên ngoài" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "Giá nhà cung ứng tối đa" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "Giá sản phẩm tối đã từ nhà cung ứng bên ngoài" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "Giá trị biến thể tối thiểu" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "Chi phí tối thiểu của sản phẩm biến thể đã tính" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "Chi phí biến thể tối đa" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "Chi phí tối đa của sản phẩm biến thể đã tính" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "Ghi đề chi phí tối thiểu" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "Ghi đề chi phí tối đa" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "Chi phí tối thiểu tính toán tổng thể" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "Chi phí tối đa tính toán tổng thể" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "Giá bán thấp nhất" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "Giá bán tối thiểu dựa trên phá giá" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "Giá bán cao nhất" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "Giá bán cao nhất dựa trên phá giá" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "Chi phí bán hàng tối thiểu" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "Giá bán hàng tối thiểu trong lịch sử" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "Giá bán hàng tối đa" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "Giá bán hàng tối đa trong lịch sử" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "Sản phẩm dành cho kiểm kê" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "Tổng số hàng" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "Số mục kho độc lậo tại thời điểm kiểm kê" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "Tống số kho tại thời điểm kiểm kê" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "Ngày" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "Kiểm kê đã thực hiện" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "Ghi chú bổ sung" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "Người dùng đã thực hiện đợt kiểm kê này" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "Chi phí kho tối thiểu" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "Chi phí kho tối thiểu ước tính của kho đang có" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "Chi phí kho tối đa" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "Chi phí kho tối đa ước tính của kho đang có" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "Báo cáo" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "Tệp báo cáo kiểm kê (được sinh nội bộ)" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "Bộ đếm sản phẩm" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "Số sản phẩm đã được bao quát bởi kiểm kê" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "Người dùng đã yêu cầu báo cáo kiểm kê này" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "Lựa chọn phải duy nhất" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "Chỉ có thể tạo mẫu kiểm thử cho sản phẩm có thể theo dõi" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "Tên kiểm thử" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "Nhập tên cho kiểm thử" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "Mô tả kiểm thử" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "Nhập mô tả cho kiểm thử này" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "Đã bật" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "Bắt buộc" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "Kiểm thử này bắt buộc phải đạt?" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "Giá trị bắt buộc" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "Kiểm thử này yêu cầu 1 giá trị khi thêm một kết quả kiểm thử?" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "Yêu cầu đính kèm" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "Kiểm thử này yêu cầu tệp đính kèm khi thêm một kết quả kiểm thử?" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "Lựa chọn" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "Tham số hộp kiểm tra không thể có đơn vị" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "Tham số hộp kiểm tra không thể có lựa chọn" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "Tên tham số mẫu phải là duy nhất" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "Tên tham số" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "Đơn vị vật lý cho tham số này" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "Mô tả tham số" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "Ô lựa chọn" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "Tham số này có phải là hộp kiểm tra?" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "Lựa chọn hợp lệ từ tham số này (ngăn cách bằng dấu phẩy)" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "Lựa chọn sai cho giá trị tham số" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "Sản phẩm cha" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Mẫu tham số" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "Giá trị tham số" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Giá trị mặc định" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "Giá trị tham số mặc định" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "Tên hoặc mã sản phẩm" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "Giá trị mã sản phẩm duy nhất" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "Giá trị IPN sản phẩm" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "Cấp độ" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "Cấp độ BOM" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "Chọn sản phẩm cha" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "Sản phẩm phụ" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "Chọn sản phẩm được dùng trong BOM" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "Số lượng BOM cho mục BOM này" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "Mục BOM này là tùy chọn" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Mục BOM này bị tiêu hao (không được theo dõi trong đơn đặt bản dựng)" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Dư thừa" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Số lượng bản dựng lãng phí ước tính (tuyệt đối hoặc phần trăm)" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "Tham chiếu mục BOM" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "Ghi chú mục BOM" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "Giá trị tổng kiểm" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "Giá trị tổng kiểm dòng BOM" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "Đã xác minh" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "Mục BOM này là hợp lệ" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "Nhận thừa hưởng" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Mục BOM này được thừa kế bởi BOM cho sản phẩm biến thể" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Hàng trong kho cho sản phẩm biến thể có thể được dùng bởi mục BOM này" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "Số lượng phải là giá trị nguyên dùng cho sản phẩm có thể theo dõi được" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "Sản phẩm phụ phải được chỉ định" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "Sảm phẩm thay thế mục BOM" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "Sản phẩm thay thế không thể giống sản phẩm chủ đạo" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "Hàng hóa BOM cha" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "Sản phẩm thay thế" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "Sản phẩm 1" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "Sản phẩm 2" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "Chọn sản phẩm liên quan" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "Không thể tạo mối quan hệ giữa một sản phẩm và chính nó" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "Đã tồn tại mối quan hệ trùng lặp" @@ -7289,338 +7302,338 @@ msgstr "Đã tồn tại mối quan hệ trùng lặp" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Phụ mục" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "Loại tiền mua hàng của hàng hóa này" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "Chưa chọn sản phẩm" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "Chọn danh mục" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "Sản phẩm gốc" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "Chọn sản phẩm gốc để nhân bản" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "Sao chép ảnh" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "Sao chép hình ảnh từ sản phẩm gốc" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "Sao chép BOM" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "Sao chép định mức nguyên vật liệu từ sản phẩm gốc" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "Sao chép thông số" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "Sao chép thông tin tham số từ sản phẩm gốc" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "Sao chép ghi chú" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "Sao chép ghi chú từ sản phẩm gốc" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "Số liệu tồn kho ban đầu" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Chỉ ra số lượng tồn kho ban đầu cho sản phẩm. Nếu điền là không, không thêm kho nào." -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "Vị trí kho ban đầu" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "Chỉ định vị trí kho ban đầu cho sản phẩm này" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "Chọn nhà cung cấp (hoặc để trống để bỏ qua)" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "Chọn nhà sản xuất (hoặc để trống để bỏ qua)" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "Mã số nhà sản xuất" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "Công ty đã chọn không phải là nhà cung ứng hợp lệ" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "Công ty đã chọn không phải là nhà sản xuất hợp lệ" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "Mã số nhà sản xuất khớp với MPN này đã tồn tại" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "Mã số nhà cung cấp khớp với SKU này đã tồn tại" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "Nhân bản sản phẩm" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "Sao chép dữ liệu ban đầu từ sản phẩm khác" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "Số liệu kho ban đầu" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "Tạo sản phẩm với số lượng tồn kho ban đầu" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "Thông tin nhà cung cấp" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "Thêm thông tin nhà cung cấp ban đầu cho sản phẩm này" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "Sao chép thông số nhóm hàng" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "Sao chép mẫu tham số từ nhóm sản phẩm được chọn" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "Ảnh hiện có" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "Tên tệp của ảnh sản phẩm hiện hữu" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "Tệp hình ảnh không tồn tại" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "Hạn chế báo cáo kiểm kê với sản phẩm riêng biệt và sản phẩm biến thể bất kỳ" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "Hạn chế báo cáo kiểm kê với danh mục sản phẩm riêng biệt và danh mục con bất kỳ" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "Hạn chế báo cáo kiểm kê với vị trí kho riêng biệt và vị trí con bất kỳ" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "Ngoại trừ kho bên ngoài" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "Loại trừ hàng trong kho của vị trí bên ngoài" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "Tạo báo cáo" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "Tạo tệp báo cáo chứa dữ liệu kiểm kê đã tính toán" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "Cập nhật sản phẩm" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "Cập nhật sản phẩm cụ thể với dữ liệu kiểm kê đã tính" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "Chức năng kiểm kê chưa được bật" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "Giá trị tính toán ghi đè cho giá tối thiểu" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "Tiền tế giá tối thiểu" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "Giá trị tính toán ghi đè cho giá tối đa" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "Tiền tế giá tối đa" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "Cập nhật" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "Cập nhật giá cho sản phẩm này" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "Không thể chuyển đổi từ tiền tệ đã cung cấp cho {default_currency}" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "Giá tối thiểu không được lớn hơn giá tối đa" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "Giá tối đa không được nhỏ hơn giá tối thiểu" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "Có thể dựng" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "Chọn sản phẩm để sao chép định mức nguyên vật liệu" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "Xóa dữ liệu đã tồn tại" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "Xóa mục BOM đã tồn tại trước khi sao chép" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "Bao gồm thừa hưởng" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "Bao gồm mục BOM được thừa hưởng từ sản phẩm mẫu" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "Bỏ qua dòng không hợp lệ" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "Bật tùy chọn này để bỏ qua dòng không hợp lệ" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "Sao chép sản phẩm thay thế" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "Sao chép sản phẩm thay thế khi nhân bản hàng hóa BOM" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "Dọn dẹp BOM đang tồn tại" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "Xóa mục BOM đang tồn tại trước khi tải lên" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "Chưa chỉ ra cột sản phẩm" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "Tìm thấy nhiều sản phẩm phù hợp" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "Không tìm thấy sản phẩm nào" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "Sản phẩm không được chỉ định như là một thành phần" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "Chưa cung cấp số lượng" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "Số lượng không hợp lệ" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "Buộc phải nhập ít nhất một mục BOM" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "Tổng số lượng" @@ -7666,65 +7679,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "Thực hiện kiểm kê cho danh mục hàng hóa này" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "Bạn đã được đăng ký nhận thông báo cho danh mục này" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "Đăng ký nhận thông báo cho danh mục này" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "Chức năng danh mục" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "Sửa danh mục" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "Sửa danh mục" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "Xóa danh mục" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "Xóa danh mục" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "Danh mục sản phẩm cấp đầu" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "Sản phẩm (bao gồm các phụ mục)" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "Tạo sản phẩm mới" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "Sản phẩm mới" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "Thông số phụ tùng" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "Thêm danh mục sản phẩm mới" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "Danh mục mới" @@ -7772,7 +7785,7 @@ msgstr "Thêm thông tin kiểm kê" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "Kiểm kê" @@ -7870,15 +7883,15 @@ msgstr "Nhà cung cấp sản phẩm" msgid "Part Manufacturers" msgstr "Nhà sản xuất sản phẩm" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "" @@ -7937,7 +7950,7 @@ msgstr "Đăng ký nhận thông báo về sản phẩm này" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "In tem nhãn" @@ -7947,7 +7960,7 @@ msgstr "Hiện thông tin giá cả" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "Chức năng kho" @@ -7959,7 +7972,7 @@ msgstr "Đếm kho sản phẩm" msgid "Transfer part stock" msgstr "Chuyển kho sản phẩm" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "Chức năng sản phẩm" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "Cấp kho tối thiểu" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "Biến thể" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "Kiện hàng" @@ -8158,7 +8171,7 @@ msgstr "Ghi đè định giá sản phẩm" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "Sửa" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "Cập nhật lần cuối" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "Cập nhập giá bán" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "Hết hàng" @@ -8332,100 +8345,108 @@ msgstr "Chưa chỉ ra hành động cụ thể" msgid "No matching action found" msgstr "Không tìm thấy chức năng phù hợp" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "Không tìm thấy dữ liệu mã vạch phù hợp" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "Đã tìm thấy dữ liệu mã vạch phù hợp" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "Mã vạch phù hợp với hàng hóa hiện có" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "Không tìm thấy thông tin sản phẩm phù hợp" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "Không tìm thấy sản phẩm nhà cung cấp phù hợp" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "Tìm thấy nhiều sản phẩm nhà cung cấp phù hợp" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "Sản phẩm nhà cung cấp phù hợp" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "Hàng hóa này đã được nhận" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "Không phù hợp với mã vạch nhà cung cấp" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "Kho không đủ hạn mức khả dụng" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "Không đủ thông tin" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "Tìm thấy nhiều sản phẩm nhà cung cấp cho mã vạch" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "Tìm thấy nhiều đơn đặt mua phù hợp với '{order}'" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "Không có đơn đặt mua phù hợp với '{order}'" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "Đơn đặt mua không phù hợp với nhà cung cấp" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "Không tìm thấy mục dòng chờ xử lý cho sản phẩm nhà cung cấp" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "Buộc phải nhập thông tin khác để nhận mục dòng này" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "Mục dòng đơn đặt mua đã nhận" @@ -8433,51 +8454,59 @@ msgstr "Mục dòng đơn đặt mua đã nhận" msgid "Scanned barcode data" msgstr "Thông tin mã vạch đã quét" -#: plugin/base/barcodes/serializers.py:81 +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" +msgstr "" + +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:87 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order is not pending" msgstr "Đơn đặt mua không chờ xử lý" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:129 msgid "PurchaseOrder to receive items against" msgstr "Đơn đặt mua để nhận hàng hóa" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "Đơn đặt mua vẫn chưa được thực hiện" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "Địa điểm để nhận hàng hóa vào bên trong" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "Không thể chọn một địa điểm có cấu trúc" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "Số lượng cần phân bổ" @@ -8497,15 +8526,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "Mã vạch InvenTree" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "Cung cấp hỗ trợ gốc cho mã vạch" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "Cung cấp hỗ trợ gốc cho mã vạch" msgid "InvenTree contributors" msgstr "Người đóng góp InvenTree" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "Thông báo InvenTree" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "Chưa cung cấp đối tượng hợp lệ cho bản mẫu" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9160,7 +9213,7 @@ msgstr "Nhà cung cấp đã bị xóa" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "Đơn giá" @@ -9173,7 +9226,7 @@ msgstr "Bảng liệt kê mở rộng" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "Tổng cộng" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "Kết quả kiểm tra" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "Thử nghiệm" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "Kết quả" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "Mục đã cài đặt" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "Sê-ri" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "Tệp tin tài sản không tồn tại" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "Không tìm thấy tệp hình ảnh" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "thẻ part_image yêu cầu 1 thực thể sản phẩm" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "thẻ company_image yêu cầu một thực thể doanh nghiệp" @@ -9246,8 +9299,8 @@ msgstr "thẻ company_image yêu cầu một thực thể doanh nghiệp" msgid "Location ID" msgstr "ID địa điểm" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "Đường dẫn địa điểm" @@ -9279,7 +9332,7 @@ msgstr "Tên nhà cung cấp" msgid "Customer ID" msgstr "ID Khách hàng" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "Đã cài đặt trong" @@ -9304,9 +9357,9 @@ msgstr "Cần xem xét" msgid "Delete on Deplete" msgstr "Xóa khi thiếu hụt" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "Ngày hết hạn" @@ -9372,316 +9425,316 @@ msgstr "Sản phẩm nhà cung cấp có kích thước đóng gói được đ msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Số sê-ri không thê được cung cấp cho sản phẩm không thể theo dõi" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "Loại vị trí kho hàng" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "Loại vị trí kho hàng" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "Biểu tượng mặc định cho vị trí không được đặt biểu tượng (tùy chọn)" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Kho hàng" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Vị trí kho hàng" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Chủ sở hữu" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "Chọn chủ sở hữu" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Không thể đưa trực tiếp hàng trong kho vào bên trong vị trí kho hàng có cấu trúc, nhưng có thể đặt vào kho con." -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "Bên ngoài" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "Đây là vị trí kho bên ngoài" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "Loại vị trí" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "Loại vị trí kho hàng của địa điểm này" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "Bạn không thể chuyển đổi vị trí kho hàng này thành cấu trúc vì đã có hàng hóa trong kho được đặt vào bên trong nó!" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "Không thể đặt hàng trong kho vào trong địa điểm kho có cấu trúc!" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "Không thể tạo hàng hóa trong kho cho sản phẩm ảo" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "Loại sản phẩm ('{self.supplier_part.part}') phải là {self.part}" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "Số lượng phải là 1 cho hàng hóa với số sê ri" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Số sê ri không thể đặt được nếu số lượng lớn hơn 1" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "Hàng hóa không thể thuộc về chính nó" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "Hàng hóa phải có 1 tham chiếu bản dựng nếu is_building=True" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "Tham chiếu bản dựng không thể trỏ vào cùng một đối tượng sản phẩm" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "Hàng trong kho cha" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "Sản phẩm cơ bản" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "Chọn sản phẩm nhà cung cấp khớp với hàng hóa trong kho này" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "Hàng trong kho này được đặt ở đâu?" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "Đóng gói hàng hóa này được lưu trữ lại" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "Mục này đã được cài đặt trong mục khác?" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "Số sê ri cho mục này" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "Mã lô cho hàng trong kho này" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "Số lượng tồn kho" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "Bản dựng nguồn" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "Bản dựng cho hàng hóa này" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "Tiêu thụ bởi" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "Đơn đặt bản dựng đã dùng hàng hóa này" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "Đơn đặt mua nguồn" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "Đơn đặt mua cho hàng hóa này" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "Đơn hàng bán đích" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Ngày hết hạn của hàng hóa này. Kho sẽ được nhắc tình trạng hết hạn sau ngày này" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "Xóa khi thiếu hụt" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "Xóa hàng trong kho này khi kho hàng bị thiếu hụt" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "Giá mua riêng lẻ tại thời điểm mua" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "Đã chuyển đổi sang sản phẩm" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "Chưa đặt sản phẩm thành có thể theo dõi" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "Số lượng phải là số nguyên" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "Số lượng không thể vượt quá số lượng trong kho đang có ({self.quantity})" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "Số sêri phải là một danh sách dãy số nguyên" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "Số lượng không khớp với số sêri" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "Số sêri đã tồn tại" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "Hàng trong kho đã được gán vào đơn hàng bán" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "Hàng trong kho đã được cài đặt vào hàng hóa khác" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "Hàng trong kho chứa hàng hóa khác" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "Hàng trong kho đã được gắn với một khách hàng" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "Hàng trong kho hiện đang sản xuất" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "Không thể hợp nhất kho nối tiếp" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "Mặt hàng trùng lặp" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "Mặt hàng phải tham chiếu đến sản phẩm tương tự" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "Mặt hàng phải tham chiếu đến sản phẩm nhà cung cấp tương tự" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "Mã trạng thái kho phải phù hợp" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "Không thể xóa mặt hàng không ở trong kho" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "Ghi chú đầu vào" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "Phải cung cấp giá trị cho kiểm thử này" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "Phải tải liên đính kèm cho kiểm thử này" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "Kết quả kiểm thử" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "Giá trị đầu ra kiểm thử" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "Đính kèm kết quả kiểm thử" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "Ghi chú kiểm thử" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "Không có mặt hàng nào được chọn" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Kho phụ" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "" @@ -9971,7 +10024,7 @@ msgstr "Đã cách ly" msgid "Legacy stock tracking entry" msgstr "Mục theo dõi kho cổ điển" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "Kho hàng đã được khởi tạo" @@ -10027,7 +10080,7 @@ msgstr "Tách từ mục cha" msgid "Split child item" msgstr "Tách mục con" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "Kho hàng đã được gộp" @@ -10047,7 +10100,7 @@ msgstr "Đầu ra đơn đặt bản dựng đã hoàn thành" msgid "Build order output rejected" msgstr "Đầu ra đơn đặt bản dựng bị từ chối" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "Tiêu hao bởi đơn đặt bản dựng" @@ -10108,7 +10161,7 @@ msgstr "Ghi chú tại kho hàng" msgid "Installed Stock Items" msgstr "Hàng hóa đã lắp đặt" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "Lắp đặt hàng hóa trong kho" @@ -10116,7 +10169,7 @@ msgstr "Lắp đặt hàng hóa trong kho" msgid "Delete all test results for this stock item" msgstr "Xóa toàn bộ kết quả kiểm thử cho kho hàng này" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "Quét vào điểm bán" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "Chức năng in" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "Chức năng điều chỉnh kho" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "Đếm hàng" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "Thêm hàng" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "Xóa hàng hóa" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "Sắp xếp hàng hóa" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "Chuyển giao hàng" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "Chỉ định cho khách hàng" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "Xóa mặt hàng" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "Dựng" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "Bạn không thuộc danh sách chủ sở hữu hàng hóa này. Mặt hàng này không thể sửa đổi." #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "Chỉ đọc" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "Điều hướng đến số sêri tiếp" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "Không có vị trí nào được đặt" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "Chưa thực hiện kiểm kê" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "" @@ -10321,7 +10374,7 @@ msgstr "Thao tác này không thể khôi phục lại một cách dễ dàng" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10386,84 @@ msgstr "Tạo hàng hóa tuần tự từ mặt hàng này." msgid "Select quantity to serialize, and unique serial numbers." msgstr "Chọn số lượng cần tuần tự hóa và số sêri duy nhất." -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "Thực hiện kiểm kê cho vị trí kho này" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "Xác định vị trí kho" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "Quét các mặt hàng vào vị trí kho này" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "Quét vào trong mặt hàng" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "Quét kho chứa vào trong vị trí kho này" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "Quét vào trong bộ chứa" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "In báo cáo vị trí" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "Chức năng vị trí" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "Sửa vị trí" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "Xóa vị trí" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "Vị trí kho cấp đầu" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "Chủ sở hữu vị trí" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "Bạn không thuộc danh sách chủ sở hữu của vị trí này. Vị trí kho này không thể sửa được." -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "Tạo mới vị trí kho" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "Vị trí mới" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "Xóa" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11007,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "Loại vị trí mới" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "Gửi báo cáo lỗi" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "sao chép đến bảng tạm" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "Sản phẩm sau còn ít hàng trong kho yêu cầu" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "Số lượng bắt buộc" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "Nhấp chuột vào liên kết dưới đây để xem sản phẩm này" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "Số lượng tối thiểu" @@ -11758,7 +11811,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "" @@ -11948,7 +12001,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12021,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12076,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,12 +12124,12 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "" @@ -12129,13 +12182,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12196,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12749,39 +12802,39 @@ msgstr "Lỗi biểu mẫu tồn tại" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +12919,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12931,358 +12984,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13719,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13887,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "" @@ -13891,18 +13945,14 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "" @@ -13951,432 +14001,432 @@ msgstr "" msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "Thêm" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "" diff --git a/src/backend/InvenTree/locale/zh/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/zh/LC_MESSAGES/django.po index a5a0510d47..2c214897e3 100644 --- a/src/backend/InvenTree/locale/zh/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/zh/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Chinese Traditional\n" "Language: zh_TW\n" @@ -56,29 +56,29 @@ msgstr "" msgid "Enter date" msgstr "" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 msgid "Notes" msgstr "" @@ -135,74 +135,74 @@ msgstr "" msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "" @@ -366,158 +366,158 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:75 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 msgid "Name" msgstr "" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 +#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 msgid "Description" msgstr "" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:82 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2835 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,9 +567,9 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -662,7 +662,7 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,17 +726,17 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:583 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 #: templates/js/translated/table_filters.js:587 @@ -748,22 +748,22 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 #: templates/js/translated/table_filters.js:571 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 #: templates/js/translated/table_filters.js:575 msgid "Available" @@ -774,7 +774,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 msgid "Build Order" msgstr "" @@ -789,72 +789,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:129 +#: build/models.py:134 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:141 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:148 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:179 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:240 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:247 +#: build/models.py:252 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1820 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -873,177 +873,177 @@ msgstr "" #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 +#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 +#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 +#: templates/js/translated/stock.js:3313 msgid "Part" msgstr "" -#: build/models.py:269 +#: build/models.py:274 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:288 build/serializers.py:1009 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:297 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:305 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:312 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:318 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:322 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: templates/js/translated/stock.js:1193 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:342 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:346 order/models.py:526 order/models.py:2115 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:352 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:361 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 #: templates/js/translated/table_filters.js:531 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:853 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:853 msgid "Link to external URL" msgstr "" -#: build/models.py:375 +#: build/models.py:380 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:383 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1051,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:391 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:652 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:881 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 +#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1373 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1398 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1127,96 +1127,96 @@ msgstr "" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 +#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 +#: templates/js/translated/stock.js:3182 msgid "Quantity" msgstr "" -#: build/models.py:1408 +#: build/models.py:1413 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1583 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 +#: templates/js/translated/stock.js:3055 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1656 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1677 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1678 msgid "Destination stock item" msgstr "" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" @@ -1226,7 +1226,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" @@ -1260,7 +1260,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "" @@ -1270,21 +1270,21 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 +#: templates/js/translated/stock.js:2949 msgid "Location" msgstr "" @@ -1333,17 +1333,17 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 +#: templates/js/translated/stock.js:3198 msgid "Status" msgstr "" @@ -1508,7 +1508,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" @@ -1526,34 +1526,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN" msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:596 msgid "Serial Number" msgstr "" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1573,8 +1573,8 @@ msgstr "" msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1584,13 +1584,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "" @@ -1600,22 +1600,22 @@ msgstr "" msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1579 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1581 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1633,7 +1633,7 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" @@ -1684,7 +1684,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 +#: stock/templates/stock/location.html:52 #: templates/js/translated/filters.js:335 msgid "Barcode actions" msgstr "" @@ -1696,7 +1696,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1707,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1720,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1786,16 +1786,16 @@ msgstr "" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1824,8 +1824,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,7 +1835,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3002 msgid "Sales Order" msgstr "" @@ -1847,7 +1847,7 @@ msgid "Issued By" msgstr "" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" @@ -1875,8 +1875,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1467 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,11 +1890,11 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 +#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1904,7 +1904,7 @@ msgstr "" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -2037,15 +2037,15 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,362 +2103,370 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2466,1291 +2474,1291 @@ msgstr "" msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3114 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3768,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3957,27 +3965,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4228,26 +4236,26 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:785 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 @@ -4257,125 +4265,125 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1601 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: order/serializers.py:462 stock/models.py:796 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2359 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 +#: templates/js/translated/purchase_order.js:1759 #: templates/js/translated/table_filters.js:809 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4387,64 +4395,64 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2503 msgid "Packaging" msgstr "" -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4464,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4475,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,16 +4534,16 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:838 +#: stock/models.py:839 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 +#: templates/js/translated/stock.js:3037 #: templates/js/translated/table_filters.js:813 msgid "Customer" msgstr "" @@ -4734,7 +4742,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4759,7 +4767,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4825,11 +4833,11 @@ msgid "No supplier information available" msgstr "" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4846,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:537 msgid "New Stock Item" msgstr "" @@ -4879,16 +4887,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 #: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5010,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "" @@ -5203,7 +5211,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" @@ -5224,9 +5232,9 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" @@ -5239,26 +5247,26 @@ msgstr "" msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3019 msgid "Return Order" msgstr "" @@ -5286,7 +5294,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "" @@ -5310,365 +5318,365 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:503 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1044 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1047 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1051 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1349 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1380 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1446 order/templates/order/order_base.html:196 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:602 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2390 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1522 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1551 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1686 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1847 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1876 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:1967 order/models.py:2290 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2071 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2083 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2261 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2291 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2327 msgid "Return Order Extra Line" msgstr "" @@ -5712,7 +5720,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "" @@ -5749,7 +5757,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1194 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6056,12 +6064,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6175,8 +6183,8 @@ msgstr "" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6241,7 +6249,7 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 #: templates/js/translated/filters.js:296 msgid "Actions" msgstr "" @@ -6272,21 +6280,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2115 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6306,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6319,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6331,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6355,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,13 +6384,17 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6420,7 +6432,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6476,12 +6488,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" @@ -6489,13 +6501,13 @@ msgstr "" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6516,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2850 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:168 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:988 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1025 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1122 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1129 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1183 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1188 templates/js/translated/part.js:818 #: templates/js/translated/table_filters.js:721 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1201 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1210 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1215 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1231 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2119 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3270 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2899 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3292 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3612 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3622 templates/js/translated/part.js:2924 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3759 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3774 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3780 templates/js/translated/part.js:1631 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3932 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3946 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4097 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4098 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4226 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4236 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4275 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4283 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4289 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4393 stock/models.py:683 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4585 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4601 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4609 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4610 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7302,338 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1583 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1821 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1829 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1830 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1835 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1836 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1841 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1842 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1847 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1848 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1885 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1886 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1918 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1962 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1965 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1968 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1977 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1985 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2008 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7679,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7785,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2295 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7870,15 +7883,15 @@ msgstr "" msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:656 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:664 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:749 msgid "Add Test Result Template" msgstr "" @@ -7937,7 +7950,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +7960,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +7972,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8040,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8129,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 +#: templates/js/translated/stock.js:2149 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8171,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8181,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2325 msgid "Last Updated" msgstr "" @@ -8240,9 +8253,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8345,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8454,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8526,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8545,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8930,7 +8983,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9111,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9160,7 +9213,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,7 +9226,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 msgid "Total" msgstr "" @@ -9191,11 +9244,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1574 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 msgid "Result" msgstr "" @@ -9221,24 +9274,24 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 +#: templates/js/translated/stock.js:3188 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9299,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9332,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:823 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9357,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:917 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2309 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9372,316 +9425,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:62 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:63 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:89 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:129 stock/models.py:805 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:130 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:178 stock/models.py:966 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:179 stock/models.py:967 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:187 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:194 templates/js/translated/stock.js:2859 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:195 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:201 templates/js/translated/stock.js:2868 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:205 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:277 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:662 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:689 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:706 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:716 stock/models.py:729 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:719 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:741 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:746 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:759 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:775 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:787 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:797 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:809 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:817 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:828 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:847 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:861 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:866 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:876 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:879 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:886 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:889 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:898 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:902 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:908 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:919 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:937 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:938 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:958 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:989 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1509 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1515 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1523 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1529 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1534 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1542 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1639 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1657 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1661 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1664 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1667 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1670 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1673 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1680 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1684 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1692 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1697 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1958 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2339 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2372 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2412 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2445 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2450 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2455 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2479 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2486 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2494 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2498 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2506 templates/js/translated/stock.js:1627 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2507 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2513 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2514 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2520 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2521 msgid "The timestamp of the test finish" msgstr "" @@ -9865,13 +9918,13 @@ msgid "No stock items selected" msgstr "" #: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1154 templates/js/translated/stock.js:154 msgid "Parent stock location" msgstr "" @@ -9971,7 +10024,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:544 msgid "Stock item created" msgstr "" @@ -10027,7 +10080,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 msgid "Merged stock items" msgstr "" @@ -10047,7 +10100,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10161,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10169,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 msgid "Add Test Result" msgstr "" @@ -10129,7 +10182,7 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 +#: stock/templates/stock/location.html:67 #: templates/js/translated/filters.js:431 msgid "Printing actions" msgstr "" @@ -10139,17 +10192,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1885 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1894 msgid "Remove stock" msgstr "" @@ -10158,12 +10211,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1966 msgid "Assign to customer" msgstr "" @@ -10204,7 +10257,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10270,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10315,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10342,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2031 msgid "stock item" msgstr "" @@ -10321,7 +10374,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10386,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2651 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10899,8 +10952,8 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 #: templates/js/translated/stock.js:246 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +10975,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +10994,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11007,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11377,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11632,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11646,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11811,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 msgid "Remove stock item" msgstr "" @@ -11948,7 +12001,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12021,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12076,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,12 +12124,12 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 #: templates/js/translated/stock.js:295 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 #: templates/js/translated/stock.js:297 msgid "Latest serial number" msgstr "" @@ -12129,13 +12182,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12196,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12624,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12641,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12749,39 +12802,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +12919,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12915,7 +12968,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12931,358 +12984,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 +#: templates/js/translated/stock.js:176 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 +#: templates/js/translated/part.js:685 #: templates/js/translated/table_filters.js:752 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2748 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13550,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1209 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13598,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13719,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13887,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1855 msgid "Shipped to customer" msgstr "" @@ -13891,18 +13945,14 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:100 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:131 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - #: templates/js/translated/stock.js:167 msgid "Add Location type" msgstr "" @@ -13951,432 +14001,432 @@ msgstr "" msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:362 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:368 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:439 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:459 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:475 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:480 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:501 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:543 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:555 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:568 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:593 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:614 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:634 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:643 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:751 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:752 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:829 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:830 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:832 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:833 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:927 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:928 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1025 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1026 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1032 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1033 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1037 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1038 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1042 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1043 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1047 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1146 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1162 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1172 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1251 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1297 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1442 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1444 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1449 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1529 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1532 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1535 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1555 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1619 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1632 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1641 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1795 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1815 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1847 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1851 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1859 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1865 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1921 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1930 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1979 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2032 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2037 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2048 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2092 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2170 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2175 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2178 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2181 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2183 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2185 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2188 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2190 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2194 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2196 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2201 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2203 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2205 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2209 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2374 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2421 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2549 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2652 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2807 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2924 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2928 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2940 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2962 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2979 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:2994 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3011 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3028 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3047 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3065 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3083 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3091 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3163 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3274 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3295 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3296 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3298 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3299 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3300 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3301 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3314 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3377 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3390 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3394 msgid "Change Stock Status" msgstr "" diff --git a/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po index 1706ed4846..52b1833fe7 100644 --- a/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-16 03:18+0000\n" +"POT-Creation-Date: 2024-07-22 10:29+0000\n" "PO-Revision-Date: 2023-02-28 22:38\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" @@ -62,15 +62,18 @@ msgstr "在管理面板中可以找到错误详细信息" msgid "Enter date" msgstr "输入日期" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 +#: InvenTree/fields.py:205 InvenTree/models.py:919 build/serializers.py:462 #: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:824 company/templates/company/sidebar.html:37 -#: order/models.py:1305 order/templates/order/po_sidebar.html:11 +#: company/models.py:836 +#: company/templates/company/manufacturer_part_sidebar.html:11 +#: company/templates/company/sidebar.html:37 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1315 +#: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3264 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 +#: stock/admin.py:230 stock/models.py:2361 stock/models.py:2488 #: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 #: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 #: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 @@ -138,79 +141,79 @@ msgstr "提供的电子邮件域未被核准。" msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:567 order/models.py:777 msgid "Invalid quantity provided" msgstr "提供的数量无效" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "空序列号字符串" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "重复的序列号" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, fuzzy, python-brace-format #| msgid "Invalid group range: {g}" msgid "Invalid group range: {group}" msgstr "无效的组范围: {g}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, fuzzy, python-brace-format #| msgid "Group range {g} exceeds allowed quantity ({q})" msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "组 {g} 超出了允许的数量 ({q})" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, fuzzy, python-brace-format #| msgid "Invalid group sequence: {g}" msgid "Invalid group sequence: {group}" msgstr "无效的组序列: {g}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "未找到序列号" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 #, fuzzy #| msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "唯一序列号 ({s}) 必须匹配数量 ({q})" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "从这个值中删除 HTML 标签" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "连接错误" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "服务器响应状态码无效" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "发生异常" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "服务器响应的内容长度值无效" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "图片尺寸过大" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "图像下载超过最大尺寸" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "远程服务器返回了空响应" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "提供的 URL 不是一个有效的图片文件" @@ -380,59 +383,59 @@ msgstr "" msgid "Email" msgstr "电子邮件" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 #, fuzzy #| msgid "Error reading file (invalid format)" msgid "Error running plugin validation" msgstr "读取文件时发生错误 (无效编码)" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "格式不正确" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "指定了未知格式密钥" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "缺少必需的格式密钥" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "引用字段不能为空" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "引用必须匹配所需的图案" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "参考编号过大" -#: InvenTree/models.py:722 +#: InvenTree/models.py:720 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:737 msgid "Invalid choice" msgstr "选择无效" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:587 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 +#: InvenTree/models.py:767 common/models.py:2692 common/models.py:3122 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:956 part/models.py:3731 plugin/models.py:51 #: report/models.py:150 stock/models.py:74 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -450,14 +453,14 @@ msgstr "选择无效" msgid "Name" msgstr "名称" -#: InvenTree/models.py:775 build/models.py:242 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:515 company/models.py:815 +#: InvenTree/models.py:773 build/models.py:249 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:408 part/models.py:979 +#: part/models.py:3746 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 @@ -487,16 +490,16 @@ msgstr "名称" msgid "Description" msgstr "描述信息" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:774 stock/models.py:81 msgid "Description (optional)" msgstr "描述 (可选)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 +#: InvenTree/models.py:789 templates/js/translated/part.js:2813 #: templates/js/translated/stock.js:2838 msgid "Path" msgstr "路径" -#: InvenTree/models.py:921 +#: InvenTree/models.py:919 #, fuzzy #| msgid "Add transaction note (optional)" msgid "Markdown notes (optional)" @@ -518,24 +521,24 @@ msgstr "条码哈希" msgid "Unique hash of barcode data" msgstr "条码数据的唯一哈希" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1025 msgid "Existing barcode found" msgstr "发现现有条码" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1068 msgid "Server Error" msgstr "服务器错误" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1069 msgid "An error has been logged by the server." msgstr "服务器记录了一个错误。" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4354 msgid "Must be a valid number" msgstr "必须是有效数字" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3082 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -587,9 +590,9 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:789 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2697 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1156 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 @@ -632,7 +635,7 @@ msgstr "关于 InventTree" msgid "Invalid value" msgstr "无效值" -#: InvenTree/serializers.py:581 importer/models.py:62 +#: InvenTree/serializers.py:581 importer/models.py:63 msgid "Data File" msgstr "数据文件" @@ -754,7 +757,7 @@ msgstr "关于 InventTree" msgid "Build must be cancelled before it can be deleted" msgstr "在删除前必须取消生产" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4232 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:190 @@ -762,7 +765,7 @@ msgstr "在删除前必须取消生产" msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4226 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:186 @@ -783,7 +786,7 @@ msgstr "" msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:879 company/serializers.py:388 +#: build/api.py:303 company/models.py:891 company/serializers.py:390 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -817,45 +820,45 @@ msgstr "生产订单" msgid "Build Orders" msgstr "生产订单" -#: build/models.py:127 +#: build/models.py:134 #, fuzzy #| msgid "Some stock items have been overallocated" msgid "Assembly BOM has not been validated" msgstr "一些库存项已被过度分配" -#: build/models.py:134 +#: build/models.py:141 #, fuzzy #| msgid "Print build order report" msgid "Build order cannot be created for an inactive part" msgstr "打印构建订单报告" -#: build/models.py:141 +#: build/models.py:148 #, fuzzy #| msgid "Build output cannot be specified for allocation of untracked parts" msgid "Build order cannot be created for an unlocked part" msgstr "对于未被追踪的部件,无法指定生产产出" -#: build/models.py:155 +#: build/models.py:162 msgid "Invalid choice for parent build" msgstr "上级生产选项无效" -#: build/models.py:166 order/models.py:240 +#: build/models.py:173 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:172 +#: build/models.py:179 #, fuzzy #| msgid "Order cannot be cancelled" msgid "Build order part cannot be changed" msgstr "无法取消订单" -#: build/models.py:233 +#: build/models.py:240 msgid "Build Order Reference" msgstr "相关生产订单" -#: build/models.py:234 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:241 build/serializers.py:1233 order/models.py:468 +#: order/models.py:945 order/models.py:1308 order/models.py:2070 +#: part/admin.py:411 part/models.py:4247 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -869,29 +872,29 @@ msgstr "相关生产订单" msgid "Reference" msgstr "引用" -#: build/models.py:245 +#: build/models.py:252 #, fuzzy #| msgid "Brief description of the build" msgid "Brief description of the build (optional)" msgstr "生产的简短描述." -#: build/models.py:253 build/templates/build/build_base.html:183 +#: build/models.py:260 build/templates/build/build_base.html:183 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "上级生产" -#: build/models.py:254 +#: build/models.py:261 msgid "BuildOrder to which this build is allocated" msgstr "此次生产匹配的订单" -#: build/models.py:259 build/serializers.py:1224 +#: build/models.py:266 build/serializers.py:1224 #: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1034 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 +#: order/models.py:1438 order/models.py:1593 order/models.py:1594 +#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3093 +#: part/models.py:3237 part/models.py:3385 part/models.py:3406 +#: part/models.py:3428 part/models.py:3564 part/models.py:3904 +#: part/models.py:4067 part/models.py:4198 part/models.py:4557 #: part/serializers.py:1182 part/serializers.py:1812 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -936,108 +939,108 @@ msgstr "此次生产匹配的订单" msgid "Part" msgstr "商品" -#: build/models.py:267 +#: build/models.py:274 msgid "Select part to build" msgstr "选择要生产的商品" -#: build/models.py:272 +#: build/models.py:279 msgid "Sales Order Reference" msgstr "相关销售订单" -#: build/models.py:276 +#: build/models.py:283 msgid "SalesOrder to which this build is allocated" msgstr "此次生产匹配的销售订单" -#: build/models.py:281 build/serializers.py:1009 +#: build/models.py:288 build/serializers.py:1009 #: templates/js/translated/build.js:1906 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "来源地点" -#: build/models.py:285 +#: build/models.py:292 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "此次生产从哪个仓储位置获取库存(留空即可从任何仓储位置取出)" -#: build/models.py:290 +#: build/models.py:297 msgid "Destination Location" msgstr "目标地点" -#: build/models.py:294 +#: build/models.py:301 msgid "Select location where the completed items will be stored" msgstr "选择已完成项目仓储地点" -#: build/models.py:298 +#: build/models.py:305 msgid "Build Quantity" msgstr "生产数量" -#: build/models.py:301 +#: build/models.py:308 msgid "Number of stock items to build" msgstr "要生产的项目数量" -#: build/models.py:305 +#: build/models.py:312 msgid "Completed items" msgstr "已完成项目" -#: build/models.py:307 +#: build/models.py:314 msgid "Number of stock items which have been completed" msgstr "已完成的库存项目数量" -#: build/models.py:311 +#: build/models.py:318 msgid "Build Status" msgstr "生产状态" -#: build/models.py:315 +#: build/models.py:322 msgid "Build status code" msgstr "生产状态代码" -#: build/models.py:324 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:633 stock/models.py:837 stock/serializers.py:76 +#: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 +#: order/serializers.py:641 stock/models.py:847 stock/serializers.py:76 #: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 #: templates/js/translated/stock.js:1195 msgid "Batch Code" msgstr "批量代码" -#: build/models.py:328 build/serializers.py:297 +#: build/models.py:335 build/serializers.py:297 msgid "Batch code for this build output" msgstr "此生产产出的批量代码" -#: build/models.py:331 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:338 order/models.py:316 order/serializers.py:127 +#: part/models.py:1196 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "创建日期" -#: build/models.py:335 +#: build/models.py:342 msgid "Target completion date" msgstr "预计完成日期" -#: build/models.py:336 +#: build/models.py:343 msgid "Target date for build completion. Build will be overdue after this date." msgstr "生产完成的目标日期。生产将在此日期之后逾期。" -#: build/models.py:339 order/models.py:521 order/models.py:2100 +#: build/models.py:346 order/models.py:526 order/models.py:2115 #: templates/js/translated/build.js:2422 msgid "Completion Date" msgstr "完成日期:" -#: build/models.py:345 +#: build/models.py:352 msgid "completed by" msgstr "完成人" -#: build/models.py:353 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2382 msgid "Issued by" msgstr "发布者" -#: build/models.py:354 +#: build/models.py:361 msgid "User who issued this build order" msgstr "发布此生产订单的用户" -#: build/models.py:362 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 +#: build/models.py:369 build/templates/build/build_base.html:204 +#: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: order/templates/order/sales_order_base.html:232 part/models.py:1213 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1048,36 +1051,36 @@ msgstr "发布此生产订单的用户" msgid "Responsible" msgstr "责任人" -#: build/models.py:363 +#: build/models.py:370 msgid "User or group responsible for this build order" msgstr "构建此订单的用户或组" -#: build/models.py:368 build/templates/build/detail.html:108 +#: build/models.py:375 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: part/templates/part/part_base.html:392 stock/models.py:843 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "外部链接" -#: build/models.py:369 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:376 common/models.py:3263 part/models.py:1031 +#: stock/models.py:843 msgid "Link to external URL" msgstr "链接到外部 URL" -#: build/models.py:373 +#: build/models.py:380 msgid "Build Priority" msgstr "创建优先级" -#: build/models.py:376 +#: build/models.py:383 msgid "Priority of this build order" msgstr "此构建订单的优先级" -#: build/models.py:383 common/models.py:122 common/models.py:136 +#: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2319 @@ -1091,74 +1094,74 @@ msgstr "此构建订单的优先级" msgid "Project Code" msgstr "商品二维码" -#: build/models.py:384 +#: build/models.py:391 #, fuzzy #| msgid "Priority of this build order" msgid "Project code for this build order" msgstr "此构建订单的优先级" -#: build/models.py:617 build/models.py:682 +#: build/models.py:624 build/models.py:689 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:639 +#: build/models.py:646 #, python-brace-format msgid "Build order {build} has been completed" msgstr "生产订单 {build} 已完成" -#: build/models.py:645 +#: build/models.py:652 msgid "A build order has been completed" msgstr "生产订单已完成" -#: build/models.py:871 build/models.py:956 +#: build/models.py:878 build/models.py:963 msgid "No build output specified" msgstr "未指定生产产出" -#: build/models.py:874 +#: build/models.py:881 msgid "Build output is already completed" msgstr "生产产出已完成" -#: build/models.py:877 +#: build/models.py:884 msgid "Build output does not match Build Order" msgstr "生产产出与订单不匹配" -#: build/models.py:960 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:462 -#: order/serializers.py:628 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:967 build/serializers.py:229 build/serializers.py:278 +#: build/serializers.py:876 order/models.py:564 order/serializers.py:470 +#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 +#: stock/models.py:688 stock/models.py:1508 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "数量必须大于0" -#: build/models.py:965 build/serializers.py:234 +#: build/models.py:972 build/serializers.py:234 #, fuzzy #| msgid "Quantity must be greater than zero" msgid "Quantity cannot be greater than the output quantity" msgstr "数量必须大于0" -#: build/models.py:1025 build/serializers.py:557 +#: build/models.py:1032 build/serializers.py:557 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1366 +#: build/models.py:1373 #, fuzzy #| msgid "Delete parameters" msgid "Build Order Line Item" msgstr "删除参数" -#: build/models.py:1391 +#: build/models.py:1398 #, fuzzy #| msgid "Build Notes" msgid "Build object" msgstr "生产备注" -#: build/models.py:1405 build/models.py:1661 build/serializers.py:216 +#: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1405 +#: build/templates/build/detail.html:34 common/models.py:2569 +#: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: part/forms.py:48 part/models.py:3251 part/models.py:4220 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1200,41 +1203,41 @@ msgstr "生产备注" msgid "Quantity" msgstr "数量" -#: build/models.py:1406 +#: build/models.py:1413 #, fuzzy #| msgid "Stock required for build order" msgid "Required quantity for build order" msgstr "生产订单所需的库存" -#: build/models.py:1486 +#: build/models.py:1493 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "生产项必须指定生产产出,因为主部件已经被标记为可追踪的" -#: build/models.py:1495 +#: build/models.py:1502 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "分配数量 ({q}) 不得超过可用库存数量 ({a})" -#: build/models.py:1505 order/models.py:1917 +#: build/models.py:1512 order/models.py:1927 msgid "Stock item is over-allocated" msgstr "库存物品分配过度!" -#: build/models.py:1511 order/models.py:1920 +#: build/models.py:1518 order/models.py:1930 msgid "Allocation quantity must be greater than zero" msgstr "分配数量必须大于0" -#: build/models.py:1517 +#: build/models.py:1524 msgid "Quantity must be 1 for serialized stock" msgstr "序列化库存的数量必须是 1" -#: build/models.py:1576 +#: build/models.py:1583 #, fuzzy #| msgid "Selected stock item not found in BOM" msgid "Selected stock item does not match BOM line" msgstr "在BOM中找不到选定的库存项" -#: build/models.py:1648 build/serializers.py:856 order/serializers.py:1249 -#: order/serializers.py:1270 stock/models.py:359 stock/serializers.py:93 +#: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 +#: order/serializers.py:1278 stock/models.py:364 stock/serializers.py:93 #: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 @@ -1251,24 +1254,24 @@ msgstr "在BOM中找不到选定的库存项" msgid "Stock Item" msgstr "库存项" -#: build/models.py:1649 +#: build/models.py:1656 msgid "Source stock item" msgstr "源库存项" -#: build/models.py:1662 +#: build/models.py:1669 msgid "Stock quantity to allocate to build" msgstr "分配到生产的数量" -#: build/models.py:1670 +#: build/models.py:1677 msgid "Install into" msgstr "安装到" -#: build/models.py:1671 +#: build/models.py:1678 msgid "Destination stock item" msgstr "目标库存项" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:405 part/models.py:4069 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" @@ -1312,7 +1315,7 @@ msgstr "对于可追踪的部件,需要整数型数值" msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "需要整数型数值,因为BOM包含可追踪的部件" -#: build/serializers.py:303 order/serializers.py:641 order/serializers.py:1409 +#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 #: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 msgid "Serial Numbers" @@ -1323,7 +1326,7 @@ msgid "Enter serial numbers for build outputs" msgstr "输入生产产出的序列号" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:617 order/serializers.py:741 order/serializers.py:1736 +#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 #: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 #: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 @@ -1397,8 +1400,8 @@ msgid "Location for completed build outputs" msgstr "已完成生产产出的仓储地点" #: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:649 stock/admin.py:164 +#: build/templates/build/detail.html:62 order/models.py:969 +#: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 #: stock/serializers.py:995 stock/serializers.py:1536 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 @@ -1475,7 +1478,7 @@ msgstr "接受库存项未被完成分配至此生产订单" msgid "Required stock has not been fully allocated" msgstr "所需库存尚未完全分配" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1312 +#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 msgid "Accept Incomplete" msgstr "接受未完成" @@ -1519,7 +1522,7 @@ msgstr "bom_item.part 必须与生产订单指向相同的部件" msgid "Item must be in stock" msgstr "项目必须在库存中" -#: build/serializers.py:910 order/serializers.py:1303 +#: build/serializers.py:910 order/serializers.py:1311 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "可用量 ({q}) 超出了限制" @@ -1532,7 +1535,7 @@ msgstr "对于被追踪的部件的分配,必须指定生产产出" msgid "Build output cannot be specified for allocation of untracked parts" msgstr "对于未被追踪的部件,无法指定生产产出" -#: build/serializers.py:947 order/serializers.py:1555 +#: build/serializers.py:947 order/serializers.py:1563 msgid "Allocation items must be provided" msgstr "必须提供分配的项" @@ -1582,7 +1585,7 @@ msgstr "" msgid "Supplier Part Number" msgstr "供应商商品订单" -#: build/serializers.py:1135 company/models.py:500 +#: build/serializers.py:1135 company/models.py:506 msgid "Manufacturer Part Number" msgstr "制造商商品编号" @@ -1604,18 +1607,18 @@ msgid "BOM Reference" msgstr "引用" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4068 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "商品ID" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: part/models.py:4070 msgid "Part IPN" msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:833 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 #: templates/js/translated/build.js:2530 @@ -1657,8 +1660,8 @@ msgstr "商品类别" msgid "Part Category Name" msgstr "商品类别" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 +#: part/models.py:1139 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:776 msgid "Trackable" @@ -1668,13 +1671,13 @@ msgstr "可追踪" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1238 part/models.py:4280 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1242 part/models.py:4077 part/models.py:4549 #: stock/api.py:796 msgid "BOM Item" msgstr "BOM项" @@ -1744,7 +1747,7 @@ msgstr "生产中" msgid "Cancelled" msgstr "已取消" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:501 +#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 #: importer/status_codes.py:19 order/status_codes.py:14 #: order/status_codes.py:44 order/status_codes.py:69 #: order/templates/order/order_base.html:158 @@ -1880,7 +1883,7 @@ msgstr "库存尚未被完全分配到此构建订单" #: build/templates/build/build_base.html:160 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 +#: order/models.py:1326 order/serializers.py:175 #: order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 @@ -1918,8 +1921,8 @@ msgid "Completed Outputs" msgstr "已完成输出" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:859 +#: order/models.py:1585 order/models.py:1700 order/models.py:1859 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1973,7 +1976,7 @@ msgstr "库存来源" msgid "Stock can be taken from any available location." msgstr "库存可以从任何可用的地点获得。" -#: build/templates/build/detail.html:49 order/models.py:1457 +#: build/templates/build/detail.html:49 order/models.py:1467 #: templates/js/translated/purchase_order.js:2260 msgid "Destination" msgstr "目的地" @@ -2226,380 +2229,390 @@ msgstr "{name.title()} 文件" msgid "Select {name} file to upload" msgstr "选择 {name} 文件上传" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "已更新" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "最后一次更新时间" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 #, fuzzy #| msgid "Part description" msgid "Project description" msgstr "商品描述" -#: common/models.py:153 +#: common/models.py:166 #, fuzzy #| msgid "User or group responsible for this order" msgid "User or group responsible for this project" msgstr "负责此订单的用户或群组" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "设置键值(必须是唯一的 - 大小写不敏感)" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "设定值" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "选择的值不是一个有效的选项" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "值必须是布尔量" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "值必须为整数" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "关键字必须是唯一的" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "无群组" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "需要重启" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "设置已更改,需要服务器重启" -#: common/models.py:1227 +#: common/models.py:1240 #, fuzzy #| msgid "Printing Actions" msgid "Pending migrations" msgstr "打印操作" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "服务器实例名称" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "公司名称" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "内部公司名称" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 #, fuzzy #| msgid "Not a valid currency code" msgid "List of supported currency codes" msgstr "不是有效的货币代码" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1626 common/models.py:1648 common/models.py:1763 +#: common/models.py:2136 msgid "days" msgstr "天" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 #, fuzzy #| msgid "Enable barcode scanner support" msgid "Enable barcode scanner support in the web interface" msgstr "启用条形码扫描支持" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 #, fuzzy #| msgid "Barcode Data" msgid "Barcode Show Data" msgstr "条码数据" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 +#: common/models.py:1419 +#, fuzzy +#| msgid "Barcode Settings" +msgid "Barcode Generation Plugin" +msgstr "条形码设置" + +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" +msgstr "" + +#: common/models.py:1425 #, fuzzy #| msgid "Part description" msgid "Part Revisions" msgstr "商品描述" -#: common/models.py:1407 +#: common/models.py:1426 #, fuzzy #| msgid "Enable internal prices for parts" msgid "Enable revision field for Part" msgstr "启用内部商品价格" -#: common/models.py:1412 +#: common/models.py:1431 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1413 +#: common/models.py:1432 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1418 +#: common/models.py:1437 #, fuzzy #| msgid "Removed from assembly" msgid "Allow Deletion from Assembly" msgstr "已从组装中删除" -#: common/models.py:1419 +#: common/models.py:1438 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1424 +#: common/models.py:1443 msgid "IPN Regex" msgstr "" -#: common/models.py:1425 +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3912 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 @@ -2607,1298 +2620,1298 @@ msgstr "" msgid "Template" msgstr "模板" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 +#: common/models.py:1489 part/admin.py:91 part/admin.py:425 part/models.py:1127 #: templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:726 msgid "Assembly" msgstr "组装" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 +#: common/models.py:1495 part/admin.py:95 part/models.py:1133 #: templates/js/translated/table_filters.js:734 msgid "Component" msgstr "组件" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1145 msgid "Purchaseable" msgstr "可购买" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "商品默认可购买" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 +#: common/models.py:1507 part/admin.py:104 part/models.py:1151 #: templates/js/translated/table_filters.js:760 msgid "Salable" msgstr "可销售" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "商品默认可销售" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "商品默认可跟踪" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1167 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:780 msgid "Virtual" msgstr "虚拟" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "商品默认是虚拟的" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "视图中显示导入" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "在一些商品视图中显示导入向导" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "显示相关商品" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1563 #, fuzzy #| msgid "Parameter units" msgid "Enforce Parameter Units" msgstr "参数单位" -#: common/models.py:1546 +#: common/models.py:1565 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1571 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1573 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1584 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1586 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1597 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1605 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1607 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1615 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1623 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1630 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1631 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1636 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1638 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1644 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1646 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1653 msgid "Internal Prices" msgstr "内部价格" -#: common/models.py:1635 +#: common/models.py:1654 msgid "Enable internal prices for parts" msgstr "启用内部商品价格" -#: common/models.py:1640 +#: common/models.py:1659 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1661 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1667 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1668 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1673 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1675 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1681 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1682 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1687 templates/stats.html:25 msgid "Debug Mode" msgstr "调试模式" -#: common/models.py:1669 +#: common/models.py:1688 msgid "Generate reports in debug mode (HTML output)" msgstr "在调试模式生成报告(HTML输出)" -#: common/models.py:1674 +#: common/models.py:1693 #, fuzzy #| msgid "No Reports Found" msgid "Log Report Errors" msgstr "没有找到报表" -#: common/models.py:1675 +#: common/models.py:1694 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1699 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "页面大小" -#: common/models.py:1681 +#: common/models.py:1700 msgid "Default page size for PDF reports" msgstr "PDF 报表默认页面大小" -#: common/models.py:1686 +#: common/models.py:1705 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1706 msgid "Enable generation of test reports" msgstr "启用生成测试报表" -#: common/models.py:1692 +#: common/models.py:1711 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1713 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1719 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1720 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1725 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1726 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1731 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1733 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1739 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1741 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1746 msgid "Stock Expiry" msgstr "库存到期" -#: common/models.py:1728 +#: common/models.py:1747 msgid "Enable stock expiry functionality" msgstr "启用库存到期功能" -#: common/models.py:1733 +#: common/models.py:1752 msgid "Sell Expired Stock" msgstr "销售过期库存" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Allow sale of expired stock" msgstr "允许销售过期库存" -#: common/models.py:1739 +#: common/models.py:1758 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1760 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1767 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1768 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1773 msgid "Stock Ownership Control" msgstr "库存所有权控制" -#: common/models.py:1755 +#: common/models.py:1774 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1779 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1780 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1784 #, fuzzy #| msgid "Select Stock Items" msgid "Show Installed Stock Items" msgstr "选择库存项" -#: common/models.py:1766 +#: common/models.py:1785 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1790 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1792 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1798 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1800 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1806 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1808 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1814 common/models.py:1862 common/models.py:1884 +#: common/models.py:1920 #, fuzzy #| msgid "Responsible" msgid "Require Responsible Owner" msgstr "责任人" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1815 common/models.py:1863 common/models.py:1885 +#: common/models.py:1921 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1820 #, fuzzy #| msgid "Build to allocate parts" msgid "Require Active Part" msgstr "生产以分配部件" -#: common/models.py:1802 +#: common/models.py:1821 #, fuzzy #| msgid "Print build order report" msgid "Prevent build order creation for inactive parts" msgstr "打印构建订单报告" -#: common/models.py:1807 +#: common/models.py:1826 #, fuzzy #| msgid "Build to allocate parts" msgid "Require Locked Part" msgstr "生产以分配部件" -#: common/models.py:1808 +#: common/models.py:1827 #, fuzzy #| msgid "Print build order report" msgid "Prevent build order creation for unlocked parts" msgstr "打印构建订单报告" -#: common/models.py:1813 +#: common/models.py:1832 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1834 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1840 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1842 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1848 #, fuzzy #| msgid "Sales Orders" msgid "Enable Return Orders" msgstr "销售订单" -#: common/models.py:1830 +#: common/models.py:1849 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1854 #, fuzzy #| msgid "Build Order Reference" msgid "Return Order Reference Pattern" msgstr "相关生产订单" -#: common/models.py:1837 +#: common/models.py:1856 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1868 #, fuzzy #| msgid "Complete Build Order" msgid "Edit Completed Return Orders" msgstr "生产订单完成" -#: common/models.py:1851 +#: common/models.py:1870 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1876 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1878 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1890 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1891 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1896 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1898 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1904 #, fuzzy #| msgid "Build Order is incomplete" msgid "Mark Shipped Orders as Complete" msgstr "生产订单未完成" -#: common/models.py:1887 +#: common/models.py:1906 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1912 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1914 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1926 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1928 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1934 #, fuzzy #| msgid "Create Purchase Order" msgid "Auto Complete Purchase Orders" msgstr "创建采购订单" -#: common/models.py:1917 +#: common/models.py:1936 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1943 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1944 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1949 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1950 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1955 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1956 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1961 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1963 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1969 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1971 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1977 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1979 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1985 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1987 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1993 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1995 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2001 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2002 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2007 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2009 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2015 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2016 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2021 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2022 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2027 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2029 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2035 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2037 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2043 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2044 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2049 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2051 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2059 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2060 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2066 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2067 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2073 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2074 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2080 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2081 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2087 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2088 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2094 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2095 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2101 #, fuzzy #| msgid "Sales Orders" msgid "Enable project codes" msgstr "销售订单" -#: common/models.py:2083 +#: common/models.py:2102 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2107 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2109 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2115 #, fuzzy #| msgid "Exclude Location" msgid "Exclude External Locations" msgstr "排除地点" -#: common/models.py:2098 +#: common/models.py:2117 #, fuzzy #| msgid "Exclude stock items from this selected location" msgid "Exclude stock items in external locations from stocktake calculations" msgstr "从该选定的仓储地点排除库存项" -#: common/models.py:2104 +#: common/models.py:2123 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2125 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2131 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2133 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2140 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2141 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2146 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2147 #, fuzzy #| msgid "Enable generation of test reports" msgid "Enable test station data collection for test results" msgstr "启用生成测试报表" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2159 common/models.py:2539 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2202 #, fuzzy #| msgid "Build to allocate parts" msgid "Hide inactive parts" msgstr "生产以分配部件" -#: common/models.py:2185 +#: common/models.py:2204 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2210 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2211 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2216 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2217 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2222 msgid "Show latest parts" msgstr "显示最近商品" -#: common/models.py:2204 +#: common/models.py:2223 msgid "Show latest parts on the homepage" msgstr "在主页上显示最近商品" -#: common/models.py:2209 +#: common/models.py:2228 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2229 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2234 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2235 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2240 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2241 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2246 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2247 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2252 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2253 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2258 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2259 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2264 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2265 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2270 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2271 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2276 msgid "Show overdue builds" msgstr "显示逾期生产" -#: common/models.py:2258 +#: common/models.py:2277 msgid "Show overdue builds on the homepage" msgstr "在主页上显示逾期的生产" -#: common/models.py:2263 +#: common/models.py:2282 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2283 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2288 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2289 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2294 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2295 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2300 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2301 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2306 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2307 #, fuzzy #| msgid "Show latest parts on the homepage" msgid "Show pending SO shipments on the homepage" msgstr "在主页上显示最近商品" -#: common/models.py:2293 +#: common/models.py:2312 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2313 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2318 msgid "Inline label display" msgstr "内嵌标签显示" -#: common/models.py:2301 +#: common/models.py:2320 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "在浏览器中显示 PDF 标签,而不是以文件形式下载" -#: common/models.py:2307 +#: common/models.py:2326 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2328 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2334 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2336 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "在浏览器中显示 PDF 报告,而不是以文件形式下载" -#: common/models.py:2323 +#: common/models.py:2342 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2343 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2348 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2349 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2354 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2355 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2360 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2361 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2366 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2367 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2372 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2373 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2378 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2380 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2386 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2387 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2392 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2393 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2398 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2399 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2404 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2405 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2410 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2412 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2418 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2419 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2424 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2426 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2432 #, fuzzy #| msgid "Purchase Orders" msgid "Search Return Orders" msgstr "采购订单" -#: common/models.py:2414 +#: common/models.py:2433 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2438 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2440 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2446 msgid "Search Preview Results" msgstr "搜索预览结果" -#: common/models.py:2429 +#: common/models.py:2448 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2454 #, fuzzy #| msgid "Search" msgid "Regex Search" msgstr "搜索" -#: common/models.py:2436 +#: common/models.py:2455 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2460 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2461 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2466 msgid "Show Quantity in Forms" msgstr "在表格中显示数量" -#: common/models.py:2448 +#: common/models.py:2467 msgid "Display available part quantity in some forms" msgstr "在某些表格中显示可用的商品数量" -#: common/models.py:2453 +#: common/models.py:2472 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2473 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2478 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2479 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2484 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2485 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2498 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2499 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2504 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2506 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2512 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2514 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2520 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2521 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2526 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2527 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:87 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2547 common/models.py:2548 common/models.py:2705 +#: common/models.py:2706 common/models.py:2951 common/models.py:2952 +#: common/models.py:3278 common/models.py:3279 importer/models.py:88 +#: part/models.py:3274 part/models.py:3361 part/models.py:3435 +#: part/models.py:3463 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3117 users/models.py:111 msgid "User" msgstr "用户" -#: common/models.py:2551 +#: common/models.py:2570 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:506 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 +#: common/models.py:2577 company/serializers.py:508 order/admin.py:42 +#: order/models.py:1365 order/models.py:2316 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:740 msgid "Price" msgstr "价格" -#: common/models.py:2559 +#: common/models.py:2578 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2682 common/models.py:2867 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2683 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2693 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2697 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2713 users/models.py:159 msgid "Token" msgstr "令牌" -#: common/models.py:2687 +#: common/models.py:2714 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2722 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2723 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2831 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2832 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2840 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2841 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2849 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2850 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2857 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2858 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2868 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2873 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2874 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3000 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3002 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:506 company/models.py:806 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3004 common/models.py:3262 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 +#: part/admin.py:55 part/models.py:1030 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 @@ -3912,28 +3925,28 @@ msgstr "" msgid "Link" msgstr "链接" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3006 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3008 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3010 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3013 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3013 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3030 company/models.py:159 part/models.py:1040 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3943,120 +3956,120 @@ msgstr "" msgid "Image" msgstr "图片" -#: common/models.py:3003 +#: common/models.py:3030 #, fuzzy #| msgid "Image" msgid "Image file" msgstr "图片" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3042 common/models.py:3246 #, fuzzy #| msgid "Part Parameter Templates" msgid "Target model type for this image" msgstr "商品参数模板" -#: common/models.py:3019 +#: common/models.py:3046 #, fuzzy #| msgid "Part Parameter Templates" msgid "Target model ID for this image" msgstr "商品参数模板" -#: common/models.py:3041 +#: common/models.py:3068 #, fuzzy #| msgid "New Customer" msgid "Custom Unit" msgstr "新建客户" -#: common/models.py:3062 +#: common/models.py:3089 #, fuzzy #| msgid "Key string must be unique" msgid "Unit symbol must be unique" msgstr "关键字必须是唯一的" -#: common/models.py:3077 +#: common/models.py:3104 #, fuzzy #| msgid "Must be a valid number" msgid "Unit name must be a valid identifier" msgstr "必须是有效数字" -#: common/models.py:3096 +#: common/models.py:3123 #, fuzzy #| msgid "Part name" msgid "Unit name" msgstr "商品名称" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3130 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3131 #, fuzzy #| msgid "Optional Items" msgid "Optional unit symbol" msgstr "可选项目" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3137 templates/InvenTree/settings/settings_staff_js.html:71 #, fuzzy #| msgid "Destination" msgid "Definition" msgstr "目的地" -#: common/models.py:3111 +#: common/models.py:3138 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3196 common/models.py:3253 stock/models.py:2483 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "附件" -#: common/models.py:3181 +#: common/models.py:3208 msgid "Missing file" msgstr "缺少文件" -#: common/models.py:3182 +#: common/models.py:3209 msgid "Missing external link" msgstr "缺少外部链接" -#: common/models.py:3227 +#: common/models.py:3254 msgid "Select file to attach" msgstr "选择附件" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3269 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "注释" -#: common/models.py:3243 +#: common/models.py:3270 #, fuzzy #| msgid "Attachments" msgid "Attachment comment" msgstr "附件" -#: common/models.py:3259 +#: common/models.py:3286 #, fuzzy #| msgid "upload date" msgid "Upload date" msgstr "上传日期" -#: common/models.py:3260 +#: common/models.py:3287 #, fuzzy #| msgid "Select file to upload" msgid "Date the file was uploaded" msgstr "选择要上传的文件" -#: common/models.py:3264 +#: common/models.py:3291 #, fuzzy #| msgid "File Fields" msgid "File size" msgstr "文件字段" -#: common/models.py:3264 +#: common/models.py:3291 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3329 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -4495,24 +4508,24 @@ msgstr "" msgid "Link to address information (external)" msgstr "描述 (可选)" -#: company/models.py:469 company/models.py:581 company/models.py:799 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "制造商商品" -#: company/models.py:481 company/models.py:767 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:775 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:483 company/models.py:769 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "选择商品" -#: company/models.py:492 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 #: company/templates/company/supplier_part.html:145 part/serializers.py:545 #: stock/templates/stock/item_base.html:207 @@ -4524,12 +4537,12 @@ msgstr "选择商品" msgid "Manufacturer" msgstr "制造商" -#: company/models.py:493 +#: company/models.py:499 msgid "Select manufacturer" msgstr "选择制造商" -#: company/models.py:499 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:519 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:527 #: part/serializers.py:555 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 @@ -4539,50 +4552,51 @@ msgstr "选择制造商" msgid "MPN" msgstr "" -#: company/models.py:507 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:516 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "制造商商品描述" -#: company/models.py:569 +#: company/models.py:575 #, fuzzy #| msgid "Manufacturer Part Number" msgid "Manufacturer Part Parameter" msgstr "制造商商品编号" -#: company/models.py:588 +#: company/models.py:594 msgid "Parameter name" msgstr "参数名称" -#: company/models.py:594 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2475 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 #: templates/js/translated/stock.js:1603 msgid "Value" msgstr "数值" -#: company/models.py:595 +#: company/models.py:601 msgid "Parameter value" msgstr "参数值" -#: company/models.py:602 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1120 part/models.py:3738 #: part/templates/part/part_base.html:293 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 #: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 msgid "Units" msgstr "单位" -#: company/models.py:603 +#: company/models.py:609 msgid "Parameter units" msgstr "参数单位" -#: company/models.py:655 company/templates/company/supplier_part.html:7 +#: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: stock/models.py:776 stock/templates/stock/item_base.html:233 +#: order/serializers.py:462 stock/models.py:786 +#: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1054 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 @@ -4590,22 +4604,22 @@ msgstr "参数单位" msgid "Supplier Part" msgstr "供应商商品" -#: company/models.py:707 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:714 +#: company/models.py:726 #, fuzzy #| msgid "Quantity must be greater than zero" msgid "Pack units must be greater than zero" msgstr "数量必须大于0" -#: company/models.py:728 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:777 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:491 #: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 #: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 @@ -4620,34 +4634,34 @@ msgstr "" msgid "Supplier" msgstr "供应商" -#: company/models.py:778 +#: company/models.py:790 msgid "Select supplier" msgstr "选择供应商" -#: company/models.py:784 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:540 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:790 +#: company/models.py:802 #, fuzzy #| msgid "Delete supplier part" msgid "Is this supplier part active?" msgstr "删除供应商商品" -#: company/models.py:800 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "选择制造商商品" -#: company/models.py:807 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "外部供货商商品链接URL" -#: company/models.py:816 +#: company/models.py:828 msgid "Supplier part description" msgstr "供应商商品描述" -#: company/models.py:823 company/templates/company/supplier_part.html:187 -#: order/serializers.py:661 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:669 part/admin.py:412 part/models.py:4255 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4659,16 +4673,16 @@ msgstr "供应商商品描述" msgid "Note" msgstr "备注" -#: company/models.py:832 part/models.py:2079 +#: company/models.py:844 part/models.py:2084 msgid "base cost" msgstr "" -#: company/models.py:833 part/models.py:2080 +#: company/models.py:845 part/models.py:2085 msgid "Minimum charge (e.g. stocking fee)" msgstr "最低收费(例如库存费)" -#: company/models.py:840 company/templates/company/supplier_part.html:160 -#: order/serializers.py:653 stock/admin.py:228 stock/models.py:796 +#: company/models.py:852 company/templates/company/supplier_part.html:160 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:806 #: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 @@ -4678,11 +4692,11 @@ msgstr "最低收费(例如库存费)" msgid "Packaging" msgstr "打包" -#: company/models.py:841 +#: company/models.py:853 msgid "Part packaging" msgstr "商品打包" -#: company/models.py:846 templates/js/translated/company.js:1651 +#: company/models.py:858 templates/js/translated/company.js:1651 #: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 @@ -4692,31 +4706,31 @@ msgstr "商品打包" msgid "Pack Quantity" msgstr "" -#: company/models.py:848 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:867 part/models.py:2086 +#: company/models.py:879 part/models.py:2091 msgid "multiple" msgstr "" -#: company/models.py:868 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:880 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:886 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:887 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1015 +#: company/models.py:1027 #, fuzzy #| msgid "Supplier Part Orders" msgid "Supplier Price Break" @@ -4732,7 +4746,7 @@ msgstr "该公司使用的默认货币" msgid "Company Name" msgstr "公司名称" -#: company/serializers.py:386 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4804,10 +4818,10 @@ msgstr "从 URL 下载图片" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:957 +#: order/models.py:2082 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:148 stock/models.py:828 +#: stock/models.py:829 stock/serializers.py:1296 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 @@ -5016,7 +5030,7 @@ msgstr "删除生产商商品" #: company/templates/company/manufacturer_part.html:65 #: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:527 +#: order/serializers.py:535 msgid "Internal Part" msgstr "内部商品" @@ -5046,7 +5060,13 @@ msgstr "参数" msgid "New Parameter" msgstr "新建参数" -#: company/templates/company/manufacturer_part.html:196 +#: company/templates/company/manufacturer_part.html:177 +#, fuzzy +#| msgid "Manufacturer Parts" +msgid "Manufacturer Part Notes" +msgstr "制造商商品" + +#: company/templates/company/manufacturer_part.html:225 #: templates/js/translated/part.js:1428 msgid "Add Parameter" msgstr "添加参数" @@ -5114,7 +5134,7 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:516 +#: company/templates/company/supplier_part.html:139 order/serializers.py:524 #: part/bom.py:279 part/bom.py:311 part/serializers.py:539 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 #: templates/js/translated/pricing.js:510 @@ -5152,15 +5172,21 @@ msgstr "价格信息" msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:276 +#: company/templates/company/supplier_part.html:270 +#, fuzzy +#| msgid "Supplier Parts" +msgid "Supplier Part Notes" +msgstr "供应商商品" + +#: company/templates/company/supplier_part.html:305 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:287 +#: company/templates/company/supplier_part.html:316 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:359 +#: company/templates/company/supplier_part.html:388 msgid "Update Part Availability" msgstr "" @@ -5214,101 +5240,107 @@ msgstr "已添加" msgid "Invalid export format" msgstr "无效的备损值" -#: importer/models.py:58 +#: importer/models.py:59 msgid "Timestamp" msgstr "" -#: importer/models.py:63 +#: importer/models.py:64 #, fuzzy #| msgid "Select file to upload" msgid "Data file to import" msgstr "选择要上传的文件" -#: importer/models.py:72 templates/js/translated/tables.js:558 +#: importer/models.py:73 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:83 +#: importer/models.py:84 #, fuzzy #| msgid "Import Part" msgid "Import status" msgstr "导入商品" -#: importer/models.py:93 +#: importer/models.py:94 #, fuzzy #| msgid "Build Details" msgid "Field Defaults" msgstr "生产详情" -#: importer/models.py:100 +#: importer/models.py:101 #, fuzzy #| msgid "Print actions" msgid "Field Overrides" msgstr "打印操作" -#: importer/models.py:222 +#: importer/models.py:108 +#, fuzzy +#| msgid "Filters" +msgid "Field Filters" +msgstr "筛选器" + +#: importer/models.py:230 #, fuzzy #| msgid "Required build quantity has not been completed" msgid "Some required fields have not been mapped" msgstr "所需生产数量尚未完成" -#: importer/models.py:379 +#: importer/models.py:387 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:384 +#: importer/models.py:392 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:393 +#: importer/models.py:401 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:398 +#: importer/models.py:406 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:405 +#: importer/models.py:413 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:409 +#: importer/models.py:417 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:414 importer/models.py:485 +#: importer/models.py:422 importer/models.py:493 #, fuzzy #| msgid "Report Settings" msgid "Import Session" msgstr "报表设置" -#: importer/models.py:418 +#: importer/models.py:426 #, fuzzy #| msgid "File Fields" msgid "Field" msgstr "文件字段" -#: importer/models.py:420 +#: importer/models.py:428 msgid "Column" msgstr "" -#: importer/models.py:489 +#: importer/models.py:497 msgid "Row Index" msgstr "" -#: importer/models.py:492 +#: importer/models.py:500 msgid "Original row data" msgstr "" -#: importer/models.py:495 part/models.py:3913 +#: importer/models.py:503 part/models.py:3918 msgid "Data" msgstr "" -#: importer/models.py:497 machine/models.py:110 +#: importer/models.py:505 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:499 part/api.py:874 +#: importer/models.py:507 part/api.py:874 msgid "Valid" msgstr "" @@ -5328,41 +5360,47 @@ msgstr "" msgid "Invalid data file dimensions" msgstr "内嵌标签显示" -#: importer/serializers.py:90 +#: importer/serializers.py:91 #, fuzzy #| msgid "Build Details" msgid "Invalid field defaults" msgstr "生产详情" -#: importer/serializers.py:103 +#: importer/serializers.py:104 #, fuzzy #| msgid "Invalid quantity provided" msgid "Invalid field overrides" msgstr "提供的数量无效" -#: importer/serializers.py:164 +#: importer/serializers.py:117 +#, fuzzy +#| msgid "Build Details" +msgid "Invalid field filters" +msgstr "生产详情" + +#: importer/serializers.py:178 msgid "Rows" msgstr "" -#: importer/serializers.py:165 +#: importer/serializers.py:179 msgid "List of row IDs to accept" msgstr "" -#: importer/serializers.py:178 +#: importer/serializers.py:192 #, fuzzy #| msgid "No data rows provided" msgid "No rows provided" msgstr "没有提供数据行" -#: importer/serializers.py:182 +#: importer/serializers.py:196 msgid "Row does not belong to this session" msgstr "" -#: importer/serializers.py:185 +#: importer/serializers.py:199 msgid "Row contains invalid data" msgstr "" -#: importer/serializers.py:188 +#: importer/serializers.py:202 #, fuzzy #| msgid "This build output has already been completed" msgid "Row has already been completed" @@ -5554,9 +5592,9 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:417 order/api.py:755 order/models.py:1419 order/models.py:1533 +#: order/models.py:1584 order/models.py:1699 order/models.py:1858 +#: order/models.py:2282 order/models.py:2338 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" @@ -5573,8 +5611,8 @@ msgstr "订单编码" msgid "Order Pending" msgstr "待定" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1382 order/models.py:380 order/models.py:1420 +#: order/models.py:1534 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 @@ -5587,8 +5625,8 @@ msgstr "待定" msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1386 order/models.py:2026 order/models.py:2283 +#: order/models.py:2339 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 @@ -5632,7 +5670,7 @@ msgstr "描述 (可选)" msgid "Select project code for this order" msgstr "负责此订单的用户或群组" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1320 order/models.py:1752 msgid "Link to external page" msgstr "" @@ -5660,152 +5698,152 @@ msgstr "此构建订单的优先级" msgid "Company address for this order" msgstr "负责此订单的用户或群组" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:946 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:477 order/models.py:970 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:492 msgid "Company from which the items are being ordered" msgstr "订购该商品的公司" -#: order/models.py:498 order/templates/order/order_base.html:148 +#: order/models.py:503 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1773 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:504 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:513 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:519 order/models.py:2108 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:520 order/models.py:2109 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:527 order/models.py:2116 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:571 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:773 msgid "Quantity must be a positive number" msgstr "数量必须大于0" -#: order/models.py:948 +#: order/models.py:958 msgid "Company to which the items are being sold" msgstr "向其出售该商品的公司" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:981 order/models.py:2101 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:982 order/models.py:2102 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:986 order/models.py:1706 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:995 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1044 #, fuzzy #| msgid "Build output is already completed" msgid "Order is already complete" msgstr "生产产出已完成" -#: order/models.py:1037 +#: order/models.py:1047 #, fuzzy #| msgid "Order cannot be cancelled" msgid "Order is already cancelled" msgstr "无法取消订单" -#: order/models.py:1041 +#: order/models.py:1051 #, fuzzy #| msgid "Build Order is ready to mark as completed" msgid "Only an open order can be marked as complete" msgstr "构建订单已准备好标记为已完成" -#: order/models.py:1045 +#: order/models.py:1055 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1060 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1292 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1309 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1316 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1328 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1349 #, fuzzy #| msgid "Description (optional)" msgid "Line item description (optional)" msgstr "描述 (可选)" -#: order/models.py:1345 +#: order/models.py:1355 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1356 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1366 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1380 #, fuzzy #| msgid "Delete parameters" msgid "Purchase Order Line Item" msgstr "删除参数" -#: order/models.py:1394 +#: order/models.py:1404 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1411 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1439 msgid "Supplier part" msgstr "供应商商品" -#: order/models.py:1436 order/templates/order/order_base.html:196 +#: order/models.py:1446 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 #: templates/js/translated/purchase_order.js:1369 #: templates/js/translated/purchase_order.js:2240 @@ -5815,238 +5853,238 @@ msgstr "供应商商品" msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1447 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:947 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2392 msgid "Purchase Price" msgstr "采购价格" -#: order/models.py:1446 +#: order/models.py:1456 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1471 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1522 #, fuzzy #| msgid "Purchase Order Settings" msgid "Purchase Order Extra Line" msgstr "采购订单设置" -#: order/models.py:1541 +#: order/models.py:1551 #, fuzzy #| msgid "Delete parameters" msgid "Sales Order Line Item" msgstr "删除参数" -#: order/models.py:1562 +#: order/models.py:1572 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1577 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1603 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "销售价格" -#: order/models.py:1594 +#: order/models.py:1604 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1613 order/status_codes.py:43 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "已发货" -#: order/models.py:1604 +#: order/models.py:1614 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1686 #, fuzzy #| msgid "Sales Order Settings" msgid "Sales Order Shipment" msgstr "销售订单设置" -#: order/models.py:1697 +#: order/models.py:1707 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1713 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1714 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1722 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1723 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1420 -#: order/serializers.py:1530 templates/js/translated/model_renderers.js:454 +#: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1731 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1739 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1740 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1747 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1748 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1768 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1771 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1847 #, fuzzy #| msgid "Sales Order Settings" msgid "Sales Order Extra Line" msgstr "销售订单设置" -#: order/models.py:1866 +#: order/models.py:1876 #, fuzzy #| msgid "Sales Order Settings" msgid "Sales Order Allocation" msgstr "销售订单设置" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1899 order/models.py:1901 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1908 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1911 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1914 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1297 +#: order/models.py:1933 order/serializers.py:1305 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:1936 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:1937 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:1945 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:1954 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 +#: order/models.py:1967 order/models.py:2290 #: templates/js/translated/return_order.js:721 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:1968 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:1977 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2071 #, fuzzy #| msgid "Build Order Reference" msgid "Return Order reference" msgstr "相关生产订单" -#: order/models.py:2068 +#: order/models.py:2083 #, fuzzy #| msgid "Company from which the items are being ordered" msgid "Company from which items are being returned" msgstr "订购该商品的公司" -#: order/models.py:2080 +#: order/models.py:2095 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2261 #, fuzzy #| msgid "Delete parameters" msgid "Return Order Line Item" msgstr "删除参数" -#: order/models.py:2260 +#: order/models.py:2275 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2291 #, fuzzy #| msgid "Returned from customer" msgid "Select item to return from customer" msgstr "从客户退货" -#: order/models.py:2282 +#: order/models.py:2297 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2298 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:732 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2310 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2317 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2327 #, fuzzy #| msgid "Build Order Settings" msgid "Return Order Extra Line" @@ -6062,186 +6100,186 @@ msgstr "已完成项目" msgid "Order cannot be cancelled" msgstr "无法取消订单" -#: order/serializers.py:321 order/serializers.py:1313 +#: order/serializers.py:321 order/serializers.py:1321 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1323 +#: order/serializers.py:331 order/serializers.py:1331 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:469 +#: order/serializers.py:477 msgid "Order is not open" msgstr "" -#: order/serializers.py:490 +#: order/serializers.py:498 #, fuzzy #| msgid "Part Pricing" msgid "Auto Pricing" msgstr "商品价格" -#: order/serializers.py:492 +#: order/serializers.py:500 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:502 +#: order/serializers.py:510 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:508 +#: order/serializers.py:516 #, fuzzy #| msgid "Select Stock Items" msgid "Merge Items" msgstr "选择库存项" -#: order/serializers.py:510 +#: order/serializers.py:518 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:523 part/models.py:1001 +#: order/serializers.py:531 part/models.py:1006 msgid "Internal Part Number" msgstr "内部商品编号" -#: order/serializers.py:531 +#: order/serializers.py:539 #, fuzzy #| msgid "Internal Part Number" msgid "Internal Part Name" msgstr "内部商品编号" -#: order/serializers.py:547 +#: order/serializers.py:555 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:550 +#: order/serializers.py:558 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:566 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:559 +#: order/serializers.py:567 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:602 order/serializers.py:1391 +#: order/serializers.py:610 order/serializers.py:1399 msgid "Line Item" msgstr "" -#: order/serializers.py:608 +#: order/serializers.py:616 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:618 order/serializers.py:742 order/serializers.py:1737 +#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:634 templates/js/translated/purchase_order.js:1130 +#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 #: templates/js/translated/stock.js:1196 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:654 +#: order/serializers.py:662 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:662 +#: order/serializers.py:670 #, fuzzy #| msgid "Destination stock item" msgid "Additional note for incoming stock items" msgstr "目标库存项" -#: order/serializers.py:669 templates/js/translated/barcode.js:52 +#: order/serializers.py:677 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "条形码" -#: order/serializers.py:670 +#: order/serializers.py:678 #, fuzzy #| msgid "Scan Barcode" msgid "Scanned barcode" msgstr "扫描条形码" -#: order/serializers.py:686 +#: order/serializers.py:694 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:710 +#: order/serializers.py:718 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:758 order/serializers.py:1753 +#: order/serializers.py:766 order/serializers.py:1761 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:774 +#: order/serializers.py:782 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:785 +#: order/serializers.py:793 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1139 +#: order/serializers.py:1147 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1200 +#: order/serializers.py:1208 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1261 order/serializers.py:1400 +#: order/serializers.py:1269 order/serializers.py:1408 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1280 +#: order/serializers.py:1288 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1410 +#: order/serializers.py:1418 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1432 order/serializers.py:1538 +#: order/serializers.py:1440 order/serializers.py:1546 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1435 order/serializers.py:1541 +#: order/serializers.py:1443 order/serializers.py:1549 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1482 +#: order/serializers.py:1490 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1489 +#: order/serializers.py:1497 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1707 +#: order/serializers.py:1715 msgid "Return order line item" msgstr "" -#: order/serializers.py:1713 +#: order/serializers.py:1721 #, fuzzy #| msgid "Build output does not match Build Order" msgid "Line item does not match return order" msgstr "生产产出与订单不匹配" -#: order/serializers.py:1716 +#: order/serializers.py:1724 #, fuzzy #| msgid "This build output has already been completed" msgid "Line item has already been received" msgstr "此生产产出已经完成" -#: order/serializers.py:1745 +#: order/serializers.py:1753 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1828 +#: order/serializers.py:1836 #, fuzzy #| msgid "Uses default currency" msgid "Line price currency" @@ -6700,20 +6738,20 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1005 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 #: templates/js/translated/stock.js:2117 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 +#: part/admin.py:50 part/models.py:1014 part/templates/part/part_base.html:286 #: report/models.py:162 templates/js/translated/part.js:1237 #: templates/js/translated/part.js:2353 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 +#: part/admin.py:53 part/admin.py:319 part/models.py:987 #: part/templates/part/category.html:94 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "关键词" @@ -6741,11 +6779,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:973 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1111 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "最低库存" @@ -6759,12 +6797,12 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 +#: part/admin.py:155 part/models.py:3169 part/models.py:3183 #: templates/js/translated/part.js:975 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 +#: part/admin.py:158 part/models.py:3176 part/models.py:3190 #: templates/js/translated/part.js:985 msgid "Maximum Cost" msgstr "" @@ -6922,7 +6960,7 @@ msgstr "商品描述" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 +#: part/api.py:1518 part/models.py:997 part/models.py:3456 part/models.py:4013 #: part/serializers.py:421 part/serializers.py:1192 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6935,7 +6973,7 @@ msgstr "类别" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 +#: part/bom.py:170 part/models.py:105 part/models.py:1050 #: part/templates/part/category.html:116 part/templates/part/part_base.html:376 #: templates/js/translated/part.js:2397 msgid "Default Location" @@ -6950,7 +6988,7 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:86 part/models.py:4014 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "商品类别" @@ -6965,7 +7003,7 @@ msgstr "商品类别" msgid "Default location for parts in this category" msgstr "此类别商品的默认仓储地点" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 +#: part/models.py:111 stock/models.py:180 templates/js/translated/part.js:2829 #: templates/js/translated/stock.js:2853 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 @@ -6984,12 +7022,12 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "此类别商品的默认关键字" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 +#: part/models.py:129 stock/models.py:87 stock/models.py:163 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:130 stock/models.py:164 msgid "Icon (optional)" msgstr "" @@ -6997,390 +7035,390 @@ msgstr "" msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:492 #, fuzzy #| msgid "Print actions" msgid "Cannot delete this part as it is locked" msgstr "打印操作" -#: part/models.py:490 +#: part/models.py:495 #, fuzzy #| msgid "Print actions" msgid "Cannot delete this part as it is still active" msgstr "打印操作" -#: part/models.py:495 +#: part/models.py:500 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:538 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:586 part/models.py:593 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:605 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:668 #, fuzzy, python-brace-format #| msgid "IPN must match regex pattern {pat}" msgid "IPN must match regex pattern {pattern}" msgstr "IPN 必须匹配正则表达式 {pat}" -#: part/models.py:671 +#: part/models.py:676 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:683 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:690 #, fuzzy #| msgid "Destination location not specified" msgid "Revision code must be specified" msgstr "目标位置未指定" -#: part/models.py:692 +#: part/models.py:697 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:704 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:710 #, fuzzy #| msgid "Build output must point to the same build" msgid "Parent part must point to the same template" msgstr "生产产出必须指向相同的生产" -#: part/models.py:784 +#: part/models.py:789 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:890 msgid "Duplicate IPN not allowed in part settings" msgstr "在商品设置中不允许重复的IPN" -#: part/models.py:894 +#: part/models.py:899 #, fuzzy #| msgid "Attachment with this filename already exists" msgid "Duplicate part revision already exists." msgstr "使用此文件名的附件已存在" -#: part/models.py:904 +#: part/models.py:909 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:924 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:956 part/models.py:4069 msgid "Part name" msgstr "商品名称" -#: part/models.py:956 +#: part/models.py:961 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:962 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:972 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:980 #, fuzzy #| msgid "Description (optional)" msgid "Part description (optional)" msgstr "描述 (可选)" -#: part/models.py:983 +#: part/models.py:988 msgid "Part keywords to improve visibility in search results" msgstr "提高搜索结果可见性的关键字" -#: part/models.py:993 +#: part/models.py:998 msgid "Part category" msgstr "商品类别" -#: part/models.py:1008 +#: part/models.py:1013 msgid "Part revision or version number" msgstr "商品版本号" -#: part/models.py:1018 +#: part/models.py:1023 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1024 part/templates/part/part_base.html:277 #, fuzzy #| msgid "Part description" msgid "Revision Of" msgstr "商品描述" -#: part/models.py:1043 +#: part/models.py:1048 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1094 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1095 msgid "Default supplier part" msgstr "默认供应商商品" -#: part/models.py:1097 +#: part/models.py:1102 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1103 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1112 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1121 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1128 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1134 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1140 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1146 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1152 msgid "Can this part be sold to customers?" msgstr "此商品可以销售给客户吗?" -#: part/models.py:1151 +#: part/models.py:1156 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 +#: part/models.py:1161 templates/js/translated/part.js:820 #: templates/js/translated/table_filters.js:721 #, fuzzy #| msgid "Stock Item" msgid "Locked" msgstr "库存项" -#: part/models.py:1157 +#: part/models.py:1162 #, fuzzy #| msgid "Order cannot be cancelled" msgid "Locked parts cannot be edited" msgstr "无法取消订单" -#: part/models.py:1163 +#: part/models.py:1168 msgid "Is this a virtual part, such as a software product or license?" msgstr "这是一个虚拟商品,如软件产品或许可证吗?" -#: part/models.py:1169 +#: part/models.py:1174 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1175 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1183 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1188 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1204 msgid "Creation User" msgstr "新建用户" -#: part/models.py:1209 +#: part/models.py:1214 #, fuzzy #| msgid "User or group responsible for this order" msgid "Owner responsible for this part" msgstr "负责此订单的用户或群组" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1219 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2490 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2092 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3083 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3099 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3100 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3106 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3107 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3113 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3114 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3120 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3121 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3127 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3128 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3134 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3135 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3141 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3142 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3148 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3149 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3155 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3156 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3162 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3163 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3170 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3177 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3184 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3191 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3197 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3198 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3204 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3205 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3211 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3212 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3218 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3219 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3238 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3243 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3244 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3252 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3256 part/models.py:3339 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7392,381 +7430,381 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3257 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3265 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3275 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3281 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3282 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3288 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3289 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3345 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3346 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3351 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3352 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3362 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3372 #, fuzzy #| msgid "Sale Price" msgid "Part Sale Price Break" msgstr "销售价格" -#: part/models.py:3479 +#: part/models.py:3484 #, fuzzy #| msgid "Parameter Template" msgid "Part Test Template" msgstr "参数模板" -#: part/models.py:3505 +#: part/models.py:3510 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3531 part/models.py:3700 #, fuzzy #| msgid "Key string must be unique" msgid "Choices must be unique" msgstr "关键字必须是唯一的" -#: part/models.py:3537 +#: part/models.py:3542 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3553 #, fuzzy #| msgid "Attachment with this filename already exists" msgid "Test template with the same key already exists for part" msgstr "使用此文件名的附件已存在" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3570 templates/js/translated/part.js:2899 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3571 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3577 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3578 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3585 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3586 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 +#: part/models.py:3590 report/models.py:209 #: templates/js/translated/part.js:2920 #: templates/js/translated/table_filters.js:481 msgid "Enabled" msgstr "已启用" -#: part/models.py:3585 +#: part/models.py:3590 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 +#: part/models.py:3595 templates/js/translated/part.js:2928 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3596 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3601 templates/js/translated/part.js:2936 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3602 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3607 templates/js/translated/part.js:2943 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3609 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3615 part/models.py:3759 templates/js/translated/part.js:1642 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3616 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3648 #, fuzzy #| msgid "Part Parameter Templates" msgid "Part Parameter Template" msgstr "商品参数模板" -#: part/models.py:3670 +#: part/models.py:3675 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3680 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3717 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3732 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3739 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3747 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 +#: part/models.py:3753 templates/js/translated/part.js:1633 #: templates/js/translated/table_filters.js:830 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3754 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3760 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3794 #, fuzzy #| msgid "Part Parameters" msgid "Part Parameter" msgstr "商品参数" -#: part/models.py:3815 +#: part/models.py:3820 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3856 #, fuzzy #| msgid "Invalid choice for parent build" msgid "Invalid choice for parameter value" msgstr "上级生产选项无效" -#: part/models.py:3900 +#: part/models.py:3905 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3913 part/models.py:4021 part/models.py:4022 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "参数模板" -#: part/models.py:3914 +#: part/models.py:3919 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3969 #, fuzzy #| msgid "Create Category Parameter Template" msgid "Part Category Parameter Template" msgstr "创建类别参数模板" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4028 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "默认值" -#: part/models.py:4024 +#: part/models.py:4029 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4067 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4068 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4070 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4071 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4071 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4182 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4189 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4199 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4209 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4210 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4221 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4227 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4233 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4240 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4241 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4248 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4256 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4262 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4263 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4268 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4269 #, fuzzy #| msgid "Some stock items have been overallocated" msgid "This BOM item has been validated" msgstr "一些库存项已被过度分配" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4274 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4275 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4281 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4366 stock/models.py:673 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4376 part/models.py:4378 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4516 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4537 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4550 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4558 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4574 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4582 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4583 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4602 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4607 msgid "Duplicate relationship already exists" msgstr "" @@ -8841,7 +8879,7 @@ msgstr "未找到商品图像" msgid "Part Pricing" msgstr "商品价格" -#: plugin/api.py:170 +#: plugin/api.py:172 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8853,122 +8891,132 @@ msgstr "未指定操作" msgid "No matching action found" msgstr "未找到指定操作" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "未找到匹配条形码数据" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "找到匹配条形码数据" -#: plugin/base/barcodes/api.py:154 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +#, fuzzy +#| msgid "Part image not found" +msgid "Model instance not found" +msgstr "未找到商品图像" + +#: plugin/base/barcodes/api.py:197 #: templates/js/translated/purchase_order.js:1469 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 #, fuzzy #| msgid "No matching action found" msgid "No matching part data found" msgstr "未找到指定操作" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 #, fuzzy #| msgid "No supplier parts found" msgid "No matching supplier parts found" msgstr "未找到供应商商品" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 #, fuzzy #| msgid "No supplier parts found" msgid "Multiple matching supplier parts found" msgstr "未找到供应商商品" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 #, fuzzy #| msgid "Delete supplier part" msgid "Matched supplier part" msgstr "删除供应商商品" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 #, fuzzy #| msgid "This build output has already been completed" msgid "Item has already been received" msgstr "此生产产出已经完成" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 #, fuzzy #| msgid "No match found for barcode data" msgid "No match for supplier barcode" msgstr "未找到匹配条形码数据" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 #, fuzzy #| msgid "No supplier parts found" msgid "Multiple matching line items found" msgstr "未找到供应商商品" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 #, fuzzy #| msgid "No matching action found" msgid "No matching line item found" msgstr "未找到指定操作" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 #, fuzzy #| msgid "Selected stock item not found in BOM" msgid "Stock item does not match line item" msgstr "在BOM中找不到选定的库存项" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2783 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 #, fuzzy #| msgid "Stock quantity to allocate to build" msgid "Stock item allocated to sales order" msgstr "分配到生产的数量" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 #, fuzzy #| msgid "No user information" msgid "Not enough information" msgstr "没有用户信息" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 #, fuzzy #| msgid "Received against purchase order" msgid "Received purchase order line item" @@ -8980,73 +9028,85 @@ msgstr "收到定购单" msgid "Scanned barcode data" msgstr "扫描条形码" -#: plugin/base/barcodes/serializers.py:81 +#: plugin/base/barcodes/serializers.py:30 +#, fuzzy +#| msgid "User or group responsible for this order" +msgid "Model name to generate barcode for" +msgstr "负责此订单的用户或群组" + +#: plugin/base/barcodes/serializers.py:35 +#, fuzzy +#| msgid "User or group responsible for this order" +msgid "Primary key of model object to generate barcode for" +msgstr "负责此订单的用户或群组" + +#: plugin/base/barcodes/serializers.py:105 #, fuzzy #| msgid "Purchase Order Settings" msgid "Purchase Order to allocate items against" msgstr "采购订单设置" -#: plugin/base/barcodes/serializers.py:87 +#: plugin/base/barcodes/serializers.py:111 #, fuzzy #| msgid "Purchase Order Settings" msgid "Purchase order is not pending" msgstr "采购订单设置" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:129 #, fuzzy #| msgid "Purchase Order Settings" msgid "PurchaseOrder to receive items against" msgstr "采购订单设置" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:135 #, fuzzy #| msgid "Email backend not configured" msgid "Purchase order has not been placed" msgstr "未配置电子邮件后端" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 #, fuzzy #| msgid "Location not specified" msgid "Location to receive items into" msgstr "未指定仓储地点" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 #, fuzzy #| msgid "Create new stock location" msgid "Cannot select a structural location" msgstr "新建仓储地点" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 #, fuzzy #| msgid "Purchase Order Settings" msgid "Sales Order to allocate items against" msgstr "采购订单设置" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 #, fuzzy #| msgid "Purchase Order Settings" msgid "Sales order is not pending" msgstr "采购订单设置" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 #, fuzzy #| msgid "Purchase Order Settings" msgid "Sales order line item to allocate items against" msgstr "采购订单设置" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 #, fuzzy #| msgid "Purchase Order Settings" msgid "Sales order shipment to allocate items against" msgstr "采购订单设置" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 #, fuzzy #| msgid "This build output has already been completed" msgid "Shipment has already been delivered" msgstr "此生产产出已经完成" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 #, fuzzy #| msgid "Stock quantity to allocate to build" msgid "Quantity to allocate" @@ -9074,15 +9134,15 @@ msgstr "重命名文件出错" msgid "No items provided to print" msgstr "没有为模板提供有效对象" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -9093,6 +9153,34 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +#, fuzzy +#| msgid "Enter barcode data" +msgid "Internal Barcode Format" +msgstr "输入条形码数据" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +#, fuzzy +#| msgid "User or group responsible for this order" +msgid "Select an internal barcode format" +msgstr "负责此订单的用户或群组" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -9865,7 +9953,7 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2469 msgid "Result" msgstr "" @@ -9902,17 +9990,17 @@ msgstr "" msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:152 report/templatetags/report.py:231 #, fuzzy #| msgid "Part image not found" msgid "Image file not found" msgstr "未找到商品图像" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:256 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:297 msgid "company_image tag requires a Company instance" msgstr "" @@ -9957,7 +10045,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:813 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9984,7 +10072,7 @@ msgstr "" msgid "Delete on Deplete" msgstr "删除模板" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:907 #: stock/templates/stock/item_base.html:433 #: templates/js/translated/stock.js:2311 users/models.py:124 msgid "Expiry Date" @@ -10078,7 +10166,7 @@ msgstr "仓储地点" msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:125 stock/models.py:795 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" @@ -10090,316 +10178,316 @@ msgstr "仓储地点" msgid "Stock Locations" msgstr "仓储地点" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:173 stock/models.py:956 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:174 stock/models.py:957 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:182 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:189 templates/js/translated/stock.js:2862 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:190 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:196 templates/js/translated/stock.js:2871 #: templates/js/translated/table_filters.js:246 #, fuzzy #| msgid "Location" msgid "Location type" msgstr "地点" -#: stock/models.py:195 +#: stock/models.py:200 #, fuzzy #| msgid "Stock item created" msgid "Stock location type of this location" msgstr "库存项已创建" -#: stock/models.py:262 +#: stock/models.py:267 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:652 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:679 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:696 #, fuzzy, python-brace-format #| msgid "Part type ('{pf}') must be {pe}" msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "商品类型 ('{pf}') 必须是 {pe}" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:706 stock/models.py:719 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:709 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:731 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:736 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:749 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:765 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:777 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:787 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:799 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:807 stock/serializers.py:1547 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:818 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:837 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:851 stock/serializers.py:1530 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:856 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:866 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:869 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:876 stock/templates/stock/item_base.html:363 #, fuzzy #| msgid "Issued By" msgid "Consumed By" msgstr "发布者" -#: stock/models.py:869 +#: stock/models.py:879 #, fuzzy #| msgid "BuildOrder to which this build is allocated" msgid "Build order which consumed this stock item" msgstr "此次生产匹配的订单" -#: stock/models.py:878 +#: stock/models.py:888 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:892 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:898 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:909 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:927 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:928 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:948 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:979 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1499 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1505 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1513 #, fuzzy, python-brace-format #| msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "分配数量 ({q}) 不得超过可用库存数量 ({a})" -#: stock/models.py:1509 +#: stock/models.py:1519 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1524 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1532 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "序列号已存在" -#: stock/models.py:1619 +#: stock/models.py:1629 #, fuzzy #| msgid "Part image not found" msgid "Test template does not exist" msgstr "未找到商品图像" -#: stock/models.py:1637 +#: stock/models.py:1647 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1651 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1654 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1657 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1660 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1663 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1670 stock/serializers.py:1436 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1674 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1682 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1687 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1948 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2329 #, fuzzy #| msgid "Stock Item" msgid "Stock Item Tracking" msgstr "库存项" -#: stock/models.py:2352 +#: stock/models.py:2362 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2402 #, fuzzy #| msgid "Stock Items" msgid "Stock Item Test Result" msgstr "库存项" -#: stock/models.py:2425 +#: stock/models.py:2435 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2440 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2445 #, fuzzy #| msgid "Invalid value for overage" msgid "Invalid value for this test" msgstr "无效的备损值" -#: stock/models.py:2459 +#: stock/models.py:2469 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2476 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2484 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2488 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2496 templates/js/translated/stock.js:1629 #, fuzzy #| msgid "Destination" msgid "Test station" msgstr "目的地" -#: stock/models.py:2487 +#: stock/models.py:2497 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2503 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2504 #, fuzzy #| msgid "Timestamp of last update" msgid "The timestamp of the test start" msgstr "最后一次更新时间" -#: stock/models.py:2500 +#: stock/models.py:2510 #, fuzzy #| msgid "Danish" msgid "Finished" msgstr "丹麦语" -#: stock/models.py:2501 +#: stock/models.py:2511 #, fuzzy #| msgid "Timestamp of last update" msgid "The timestamp of the test finish" @@ -11836,7 +11924,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2185 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2200 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -13230,7 +13318,7 @@ msgid "No builds matching query" msgstr "" #: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 -#: templates/js/translated/forms.js:2181 templates/js/translated/forms.js:2197 +#: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 #: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 msgid "Select" @@ -13693,27 +13781,27 @@ msgstr "" msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1993 +#: templates/js/translated/forms.js:2008 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2304 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2518 +#: templates/js/translated/forms.js:2533 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3120 +#: templates/js/translated/forms.js:3135 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3120 +#: templates/js/translated/forms.js:3135 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3132 +#: templates/js/translated/forms.js:3147 msgid "Select Columns" msgstr "" diff --git a/src/frontend/src/locales/ar/messages.po b/src/frontend/src/locales/ar/messages.po index 48f6911b13..202e7084a5 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: 2024-07-17 16:39\n" +"PO-Revision-Date: 2024-07-24 18:23\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" @@ -30,12 +30,20 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" msgstr "" #: src/components/buttons/PrintingActions.tsx:93 @@ -54,16 +62,14 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "" msgid "No" msgstr "" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "" @@ -152,21 +150,20 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "" @@ -179,34 +176,34 @@ msgstr "" msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "" @@ -321,19 +318,19 @@ msgstr "" msgid "The preview has been updated successfully." msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "" @@ -341,11 +338,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "" @@ -357,11 +354,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -397,7 +394,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "" @@ -405,17 +403,20 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" @@ -587,9 +588,10 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -639,6 +641,32 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "" @@ -926,6 +958,30 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1164,11 +1220,6 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1190,7 +1241,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "" @@ -1253,25 +1304,25 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "" @@ -1308,23 +1359,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "" @@ -1486,17 +1536,17 @@ msgstr "" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1511,16 +1561,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 -msgid "Import Sessions" -msgstr "" - -#: src/components/render/ModelType.tsx:212 -msgid "Label Template" +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" msgstr "" #: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 +msgid "Import Sessions" +msgstr "" + +#: src/components/render/ModelType.tsx:220 +msgid "Label Template" +msgstr "" + +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1626,48 +1686,48 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2395,74 +2455,74 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "" @@ -2470,20 +2530,20 @@ msgstr "" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "" @@ -2664,105 +2724,106 @@ msgstr "" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2816,7 +2878,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2824,15 +2886,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2840,82 +2902,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -3032,7 +3094,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" @@ -3053,7 +3115,7 @@ msgstr "" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -3114,7 +3176,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3403,83 +3465,128 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "" @@ -3558,9 +3665,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3683,11 +3794,6 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3704,7 +3810,7 @@ msgstr "" msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "" @@ -3716,29 +3822,29 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "" @@ -3754,11 +3860,11 @@ msgstr "" msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" @@ -3991,12 +4097,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "" +#: src/pages/company/CompanyDetail.tsx:175 +msgid "Manufactured Parts" +msgstr "" + #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" #~ msgstr "Edit company" -#: src/pages/company/CompanyDetail.tsx:176 -msgid "Manufactured Parts" -msgstr "" - -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -4077,192 +4183,202 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" @@ -4357,25 +4473,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4498,7 +4595,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4540,25 +4637,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4824,7 +4921,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4870,64 +4967,64 @@ msgstr "" msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5044,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5097,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5158,19 @@ msgstr "" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5178,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5243,83 @@ msgstr "" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6305,7 +6409,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6597,10 +6701,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6714,10 +6814,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6803,71 +6899,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7332,32 +7428,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/bg/messages.po b/src/frontend/src/locales/bg/messages.po index 3436fc53d3..67745b6996 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: 2024-07-17 16:37\n" +"PO-Revision-Date: 2024-07-24 18:22\n" "Last-Translator: \n" "Language-Team: Bulgarian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -30,12 +30,20 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" msgstr "" #: src/components/buttons/PrintingActions.tsx:93 @@ -54,16 +62,14 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "" msgid "No" msgstr "" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "" @@ -152,21 +150,20 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "" @@ -179,34 +176,34 @@ msgstr "" msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "" @@ -321,19 +318,19 @@ msgstr "" msgid "The preview has been updated successfully." msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "" @@ -341,11 +338,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "" @@ -357,11 +354,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -397,7 +394,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "" @@ -405,17 +403,20 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" @@ -587,9 +588,10 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -639,6 +641,32 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "" @@ -926,6 +958,30 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1164,11 +1220,6 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1190,7 +1241,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "" @@ -1253,25 +1304,25 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "" @@ -1308,23 +1359,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "" @@ -1486,17 +1536,17 @@ msgstr "" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1511,16 +1561,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 -msgid "Import Sessions" -msgstr "" - -#: src/components/render/ModelType.tsx:212 -msgid "Label Template" +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" msgstr "" #: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 +msgid "Import Sessions" +msgstr "" + +#: src/components/render/ModelType.tsx:220 +msgid "Label Template" +msgstr "" + +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1626,48 +1686,48 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2395,74 +2455,74 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "" @@ -2470,20 +2530,20 @@ msgstr "" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "" @@ -2664,105 +2724,106 @@ msgstr "" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2816,7 +2878,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2824,15 +2886,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2840,82 +2902,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -3032,7 +3094,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" @@ -3053,7 +3115,7 @@ msgstr "" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -3114,7 +3176,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3403,83 +3465,128 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "" @@ -3558,9 +3665,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3683,11 +3794,6 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3704,7 +3810,7 @@ msgstr "" msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "" @@ -3716,29 +3822,29 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "" @@ -3754,11 +3860,11 @@ msgstr "" msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" @@ -3991,12 +4097,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "" +#: src/pages/company/CompanyDetail.tsx:175 +msgid "Manufactured Parts" +msgstr "" + #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" #~ msgstr "Edit company" -#: src/pages/company/CompanyDetail.tsx:176 -msgid "Manufactured Parts" -msgstr "" - -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -4077,192 +4183,202 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" @@ -4357,25 +4473,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4498,7 +4595,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4540,25 +4637,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4824,7 +4921,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4870,64 +4967,64 @@ msgstr "" msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5044,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5097,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5158,19 @@ msgstr "" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5178,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5243,83 @@ msgstr "" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6305,7 +6409,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6597,10 +6701,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6714,10 +6814,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6803,71 +6899,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7332,32 +7428,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/cs/messages.po b/src/frontend/src/locales/cs/messages.po index 80ff06608c..9a0eca8e56 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: 2024-07-17 16:37\n" +"PO-Revision-Date: 2024-07-24 18:22\n" "Last-Translator: \n" "Language-Team: Czech\n" "Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n" @@ -30,13 +30,21 @@ msgstr "Došlo k chybě při vykreslování této komponenty. Více informací n msgid "Title" msgstr "Titulek" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "Otevřít v administrátorském rozhraní" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" -msgstr "Zkopírovat do schránky" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "Zkopírováno" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" +msgstr "Kopírovat" #: src/components/buttons/PrintingActions.tsx:93 msgid "Print Label" @@ -54,16 +62,14 @@ msgstr "Tisk štítků byl úspěšně dokončen" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "Ano" msgid "No" msgstr "Ne" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "Žádný název není definován" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "Zkopírováno" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "Kopírovat" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "Odstranit obrázek" @@ -152,21 +150,20 @@ 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:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "Odstranit" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "Zrušit" @@ -179,34 +176,34 @@ msgstr "Nahrajte přetažením" msgid "Click to select file(s)" msgstr "Klepnutím vyberte soubor(y)" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "Vymazat" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "Odeslat" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "Vybrat z existujících obrázků" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "Vybrat obrázek" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "Nahrát nový obrázek" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "Nahrát obrázek" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "Smazat obrázek" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "Nahrání obrázku se nezdařilo" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "Dokončeno" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "Chyba při ukládání šablony" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "Uložit a znovu načíst náhled" @@ -321,19 +318,19 @@ msgstr "Náhled aktualizován" msgid "The preview has been updated successfully." msgstr "Náhled byl úspěšně aktualizován." -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "Aktualizovat náhled" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "Použít aktuálně uloženou šablonu ze serveru" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "Aktualizovat náhled" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "Použít aktuálně uloženou šablonu ze serveru" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "Uložit aktuální šablonu a znovu načíst náhled" @@ -341,11 +338,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:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "Vyberte instanci pro náhled" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "Chyba při načítání šablony" @@ -357,11 +354,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -397,7 +394,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "Chyba formuláře" @@ -405,17 +403,20 @@ msgstr "Chyba formuláře" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "Aktualizovat" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "Obnovit heslo" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "E-mail" @@ -587,9 +588,10 @@ msgstr "Server" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "Server" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "Jméno" @@ -639,6 +641,32 @@ msgstr "Název: {0}" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "Stav: <0>worker ({0}), <1>pluginy{1}" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "Hledat..." + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "Hledat" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "Načítání" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "Akce čárového kódu" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "Zobrazit" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "Zobrazit čárový kód" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "Přiřadit čárový kód" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "Přiřadit vlatní čárový kód" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "Odstranit čárový kód" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "Odstranit vlastní čárový kód" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "Upravit" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "Smazat položku" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "Duplikovat" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "Duplikovat produkt" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "Zjistit více" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "Neznámá chyba" @@ -926,6 +958,30 @@ msgstr "PLH" msgid "This panel is a placeholder." msgstr "Tento panel je zástupným znakem." +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "Informace o verzi" @@ -1164,11 +1220,6 @@ msgstr "Verze" msgid "Server Version" msgstr "Verze serveru" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "Hledat..." - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "Nic nenalezeno..." @@ -1190,7 +1241,7 @@ msgstr "Nastavení účtu" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "Nastavení systému" @@ -1253,25 +1304,25 @@ msgstr "Dokumentace" msgid "About" msgstr "O aplikaci" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "Notifikace" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "Nemáš žádné nové notifikace." -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "Notifikace" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "Označit jako přečtené" @@ -1308,23 +1359,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "Díl" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "Díly" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "Skladová položka" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "Skladové položky" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "Umístění skladu" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "Historie skladů" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "Firma" @@ -1486,17 +1536,17 @@ msgstr "Kódy projektu" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1511,16 +1561,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "Adresa" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "Adresy" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "Kontakt" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "Kontakty" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "Správci" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "Uživatelé" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" +msgstr "Skupiny" + +#: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:212 +#: src/components/render/ModelType.tsx:220 msgid "Label Template" msgstr "" -#: src/components/render/ModelType.tsx:213 +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1626,48 +1686,48 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "Neaktivní" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "Zásoby" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "Sériové číslo" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "Čínština (tradiční)" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "Domů" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "Navštivte dokumentaci pro více informací o InvenTree" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "O InvenTree" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "O InvenTree.org" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "Informace o serveru" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "O této instanci Inventree" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "Informace o licenci" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2395,74 +2455,74 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "Webová stránka" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "GitHub" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "Demo" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "Nákup" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "Prodej" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "Playground" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "Začínáme" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "Začínáme s InvenTree" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "API" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "Dokumentace InvenTree API" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "Příručka vývojáře" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "Příručka pro vývojáře InvenTree" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "Často kladené dotazy" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "Často kladené dotazy" @@ -2470,20 +2530,20 @@ msgstr "Často kladené dotazy" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "Systémové Informace" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "Systémové Informace" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "Licence" @@ -2664,105 +2724,106 @@ msgstr "Nadřazená kategorie" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "Zvolte umístění" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "Cíl položky byl vybrán" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "Nastavit umístění" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "Lokace" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "Stav" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "Akce" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2816,7 +2878,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2824,15 +2886,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2840,82 +2902,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "Na skladě" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "Přesunout" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "Přidat" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "Počet" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -3032,7 +3094,7 @@ msgstr "Položka odstraněna" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" @@ -3053,7 +3115,7 @@ msgstr "" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -3114,7 +3176,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3403,83 +3465,128 @@ msgstr "Příjmení:" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "Primární" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "Ověřeno" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "Neověřeno" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "Přidat e-mailovou adresu" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "E-mail" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "E-mailová adresa" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "Nastavit jako výchozí" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "Vlastní jednotky" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "Parametry dílu" @@ -3558,9 +3665,13 @@ msgid "Category Parameters" msgstr "Parametry kategorie" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3683,11 +3794,6 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "Skupiny" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3704,7 +3810,7 @@ msgstr "Přihlášení" msgid "Barcodes" msgstr "Čárové kódy" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "Ceník" @@ -3716,29 +3822,29 @@ msgstr "Ceník" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "Štítky" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "" @@ -3754,11 +3860,11 @@ msgstr "" msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "Reference" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "Reference" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "Popis" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" @@ -3991,12 +4097,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "" +#: src/pages/company/CompanyDetail.tsx:175 +msgid "Manufactured Parts" +msgstr "" + #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" #~ msgstr "Edit company" -#: src/pages/company/CompanyDetail.tsx:176 -msgid "Manufactured Parts" -msgstr "" - -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -4077,192 +4183,202 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "Upravit společnost" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" @@ -4357,25 +4473,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4498,7 +4595,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4540,25 +4637,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4824,7 +4921,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4870,64 +4967,64 @@ msgstr "" msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5044,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5097,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5158,19 @@ msgstr "" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5178,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5243,83 @@ msgstr "" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6305,7 +6409,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "Vybrat" @@ -6597,10 +6701,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6714,10 +6814,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6803,71 +6899,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7332,32 +7428,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/da/messages.po b/src/frontend/src/locales/da/messages.po index 02724b37e8..fc2a320625 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: 2024-07-17 16:37\n" +"PO-Revision-Date: 2024-07-24 18:22\n" "Last-Translator: \n" "Language-Team: Danish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -30,12 +30,20 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" msgstr "" #: src/components/buttons/PrintingActions.tsx:93 @@ -54,16 +62,14 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "" msgid "No" msgstr "" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "" @@ -152,21 +150,20 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "" @@ -179,34 +176,34 @@ msgstr "" msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "" @@ -321,19 +318,19 @@ msgstr "" msgid "The preview has been updated successfully." msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "" @@ -341,11 +338,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "" @@ -357,11 +354,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -397,7 +394,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "" @@ -405,17 +403,20 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" @@ -587,9 +588,10 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -639,6 +641,32 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "" @@ -926,6 +958,30 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1164,11 +1220,6 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1190,7 +1241,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "" @@ -1253,25 +1304,25 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "" @@ -1308,23 +1359,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "" @@ -1486,17 +1536,17 @@ msgstr "" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1511,16 +1561,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 -msgid "Import Sessions" -msgstr "" - -#: src/components/render/ModelType.tsx:212 -msgid "Label Template" +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" msgstr "" #: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 +msgid "Import Sessions" +msgstr "" + +#: src/components/render/ModelType.tsx:220 +msgid "Label Template" +msgstr "" + +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1626,48 +1686,48 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2395,74 +2455,74 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "" @@ -2470,20 +2530,20 @@ msgstr "" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "" @@ -2664,105 +2724,106 @@ msgstr "" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2816,7 +2878,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2824,15 +2886,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2840,82 +2902,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -3032,7 +3094,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" @@ -3053,7 +3115,7 @@ msgstr "" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -3114,7 +3176,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3403,83 +3465,128 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "" @@ -3558,9 +3665,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3683,11 +3794,6 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3704,7 +3810,7 @@ msgstr "" msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "" @@ -3716,29 +3822,29 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "" @@ -3754,11 +3860,11 @@ msgstr "" msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" @@ -3991,12 +4097,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "" +#: src/pages/company/CompanyDetail.tsx:175 +msgid "Manufactured Parts" +msgstr "" + #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" #~ msgstr "Edit company" -#: src/pages/company/CompanyDetail.tsx:176 -msgid "Manufactured Parts" -msgstr "" - -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -4077,192 +4183,202 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" @@ -4357,25 +4473,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4498,7 +4595,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4540,25 +4637,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4824,7 +4921,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4870,64 +4967,64 @@ msgstr "" msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5044,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5097,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5158,19 @@ msgstr "" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5178,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5243,83 @@ msgstr "" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6305,7 +6409,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6597,10 +6701,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6714,10 +6814,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6803,71 +6899,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7332,32 +7428,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/de/messages.po b/src/frontend/src/locales/de/messages.po index 0cde4f6a3f..842f1328c6 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: 2024-07-17 16:37\n" +"PO-Revision-Date: 2024-07-24 18:22\n" "Last-Translator: \n" "Language-Team: German\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -30,13 +30,21 @@ msgstr "Beim Rendern dieser Komponente ist ein Fehler aufgetreten. Weitere Infor msgid "Title" msgstr "Titel" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "Im Admin-Interface öffnen" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" -msgstr "In die Zwischenablage kopieren" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "Kopiert" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" +msgstr "Kopieren" #: src/components/buttons/PrintingActions.tsx:93 msgid "Print Label" @@ -54,16 +62,14 @@ msgstr "Etikettendruck erfolgreich abgeschlossen" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "Ja" msgid "No" msgstr "Nein" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "Kein Name festgelegt" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "Kopiert" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "Kopieren" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "Bild entfernen" @@ -152,21 +150,20 @@ msgid "Remove the associated image from this item?" msgstr "Verknüpftes Bild von diesem Teil entfernen?" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "Entfernen" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "Abbrechen" @@ -179,34 +176,34 @@ msgstr "Ziehen und Ablegen zum Hochladen" msgid "Click to select file(s)" msgstr "Klicken, um Datei(en) auszuwählen" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "Leeren" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "Speichern" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "Aus vorhandenen Bildern auswählen" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "Bild auswählen" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "Neues Bild hochladen" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "Bild hochladen" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "Bild löschen" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "Das Bild konnte nicht hochgeladen werden" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "Abgeschlossen" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "Fehler beim Speichern der Vorlage" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "Vorschau speichern & neu laden" @@ -321,19 +318,19 @@ msgstr "Vorschau aktualisiert" msgid "The preview has been updated successfully." msgstr "Die Vorlage wurde erfolgreich aktualisiert." -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "Vorschau neu laden" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "Benutze die aktuell auf dem Server gespeicherte Vorlage" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "Vorschau neu laden" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "Benutze die aktuell auf dem Server gespeicherte Vorlage" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "Die aktuelle Vorlage speichern und die Vorschau neu laden" @@ -341,11 +338,11 @@ msgstr "Die aktuelle Vorlage speichern und die Vorschau neu laden" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "Instanz für Vorschau auswählen" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "Fehler bei Darstellung der Vorlage" @@ -357,11 +354,11 @@ msgstr "Client Fehler" msgid "Client error occurred" msgstr "Client-Fehler aufgetreten" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -397,7 +394,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "Formularfehler" @@ -405,17 +403,20 @@ msgstr "Formularfehler" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "Aktualisieren" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "Passwort zurücksetzen" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "Mail" @@ -587,9 +588,10 @@ msgstr "Adresse" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "Adresse" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "Name" @@ -639,6 +641,32 @@ msgstr "Name: {0}" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "Status: <0>worker ({0}), <1>Plugins{1}" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "Suchen..." + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "Suche" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "Wird geladen" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "Barcode-Aktionen" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "Anzeigen" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "Barcode anzeigen" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "Link-Barcode" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "Benutzerdefinierter Barcode verknüpfen" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "Verknüpfung des Barcodes aufheben" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "Verknüpfung von benutzerdefiniertem Barcode aufheben" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "Bearbeiten" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "Element löschen" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "Duplizieren" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "Artikel duplizieren" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "Mehr lesen" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "Unbekannter Fehler" @@ -926,6 +958,30 @@ msgstr "PLH" msgid "This panel is a placeholder." msgstr "Dieses Panel ist ein Platzhalter." +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "Versionsinformationen" @@ -1164,11 +1220,6 @@ msgstr "Version" msgid "Server Version" msgstr "Serverversion" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "Suchen..." - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "Nichts gefunden..." @@ -1190,7 +1241,7 @@ msgstr "Benutzereinstellungen" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "Einstellungen" @@ -1253,25 +1304,25 @@ msgstr "Dokumentation" msgid "About" msgstr "Über uns" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "Benachrichtigungen" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "Du hast keine ungelesenen Benachrichtigungen. " -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "Benachrichtigung" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "Als gelesen markieren" @@ -1308,23 +1359,23 @@ msgstr "Keine Ergebnisse" msgid "No results available for search query" msgstr "Keine Ergebnisse für Suchanfrage verfügbar" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "Unbekanntes Modell: {model}" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "Teil" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "Teile" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "Testvorlagen für Teil" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "Zuliefererteile" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "Herstellerteil" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "Herstellerteile" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "Teilkategorie" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "Teil-Kategorien" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "Lagerartikel" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "Lagerartikel" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "Lagerort" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "Lagerorte" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "Bestandshistorie" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "Bauauftrag" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "Firma" @@ -1486,17 +1536,17 @@ msgstr "Projektnummern" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "Einkaufsbestellung" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Nachbestellungen" @@ -1511,16 +1561,16 @@ msgstr "Bestellpositionen" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "Verkaufsauftrag" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Aufträge" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "Rückgabe Auftrag" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "Reklamationen" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "Adresse" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "Adressen" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "Kontakt" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "Kontakte" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "Eigentümer" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "Benutzer" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" +msgstr "Gruppen" + +#: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:212 +#: src/components/render/ModelType.tsx:220 msgid "Label Template" msgstr "" -#: src/components/render/ModelType.tsx:213 +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "Plugin-Konfiguration" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "Plugin-Konfigurationen" @@ -1626,48 +1686,48 @@ msgstr "Plugin-Konfigurationen" msgid "Shipment" msgstr "Sendung" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "Inaktiv" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "Kein Bestand" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "Lager" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "Seriennummer" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "Chinesisch (Traditionell)" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "Startseite" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "Besuche die Dokumentation, um mehr über InvenTree zu erfahren" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "Über InvenTree" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "Über die InvenTree Organisation" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "Server Informationen" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "Über diese InvenTree Instanz" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "Lizenz Informationen" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "Lizenzen für Abhängigkeiten des Services" @@ -2395,74 +2455,74 @@ msgstr "Aktuelles" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "Webseite" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "GitHub" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "Demo" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "Einkauf" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "Verkäufe" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "Spielplatz" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "Erste Schritte" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "Erste Schritte mit InvenTree" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "API" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "InvenTree API Dokumentation" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "Entwicklerhandbuch" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "InvenTree Entwicklerhandbuch" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "FAQ" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "Häufig gestellte Fragen" @@ -2470,20 +2530,20 @@ msgstr "Häufig gestellte Fragen" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "Systeminformationen" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "Systeminformationen" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "Lizenzen" @@ -2664,105 +2724,106 @@ msgstr "Übergeordnete Teilkategorie" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "Lagerort wählen" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "Teile-Zielort ausgewählt" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "Standard-Lagerort der Teile-Kategorie ausgewählt" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "Lagerort zuvor empfangener Artikel ausgewählt" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "Standard-Lagerort ausgewählt" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "Barcode scannen" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "Lagerort festlegen" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "Batch-Code{0} zuweisen" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "Status ändern" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "Artikel aus Liste entfernen" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "Lagerort" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "Am Standard-Lagerort einbuchen" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "Am Zielort der Bauauftragsposition speichern" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "Bei bereits vorhandenen Lagerbestand einbuchen" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "Losnummer" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "Verpackung" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "Verpackung" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "Status" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "Notiz" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "Art.-Nr." -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "Erhalten" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "Aktionen" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "Positionen empfangen" @@ -2816,7 +2878,7 @@ msgstr "Positionen empfangen" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "Angegebene Menge als Packungen anstatt einzelner Artikel hinzufügen" @@ -2824,15 +2886,15 @@ msgstr "Angegebene Menge als Packungen anstatt einzelner Artikel hinzufügen" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "Ausgangsmenge für diesen Lagerartikel eingeben" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "Seriennummern" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Seriennummern für neue Lagerartikel eingeben (oder leer lassen)" @@ -2840,82 +2902,82 @@ msgstr "Seriennummern für neue Lagerartikel eingeben (oder leer lassen)" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "Lagerartikel hinzufügen" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "Lade..." -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "Zum Standard-Lagerort verschieben" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "Auf Lager" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "Verschieben" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "Hinzufügen" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "Anzahl" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "Bestand hinzufügen" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "Bestand entfernen" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "Bestand verschieben" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "Bestand zählen" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "Bestandsstatus ändern" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "Bestand zusammenführen" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "Bestand löschen" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "Übergeordneter Lagerort" @@ -3032,7 +3094,7 @@ msgstr "Element gelöscht" msgid "Are you sure you want to delete this item?" msgstr "Sind Sie sicher, dass Sie dieses Element löschen möchten?" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "Prüfe ob Sie bereits angemeldet sind" @@ -3053,7 +3115,7 @@ msgstr "Registrieren" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "Abmelden" @@ -3114,7 +3176,7 @@ msgstr "Diese Seite ist ein Ersatz für die alte Startseite mit den gleichen Inf msgid "Welcome to your Dashboard{0}" msgstr "Willkommen zu deinem Dashboard{0}" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "Diese Seite ist ein Schaufenster für die Möglichkeiten der Plattform-Oberfläche." @@ -3403,83 +3465,128 @@ msgstr "Nachname:" msgid "Use pseudo language" msgstr "Pseudosprache verwenden" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "Single Sign On Konten" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "Nicht aktiviert" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "Single Sign On ist für diesen Server nicht aktiviert" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "Multifaktor" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "Multifaktor-Authentifizierung ist nicht für Ihr Konto eingerichtet" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "Die folgenden E-Mail-Adressen sind mit deinem Konto verknüpft:" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "Primär" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "Verifiziert" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "Unbestätigt" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "Emailadresse hinzufügen" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "E-Mail" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "E-Mail Adresse" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "Primär machen" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "Senden Sie die Bestätigung erneut" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "E-Mail hinzufügen" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "Anbieter wurde nicht konfiguriert" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "Nicht konfiguriert" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "Es sind keine sozialen Netzwerke mit diesem Konto verbunden." -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "Sie können sich mit einem der folgenden Drittanbieterkonten bei Ihrem Konto anmelden" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "Aktiv" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "Barren" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "Kundenspezifische Einheiten" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "Teile Parameter" @@ -3558,8 +3665,12 @@ msgid "Category Parameters" msgstr "Kategorie Parameter" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" -msgstr "Lagerort Typen" +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 @@ -3683,11 +3794,6 @@ msgstr "Fehlgeschlagene Aufgaben" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "Gruppen" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "Einstellungen die für den Benutzer Lebenszyklus relevant sind. Mehr verfügbar in" @@ -3704,7 +3810,7 @@ msgstr "Anmelden" msgid "Barcodes" msgstr "Barcode" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "Preise" @@ -3716,29 +3822,29 @@ msgstr "Preise" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "Beschriftungen" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "Berichte" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "Inventur" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "Bauaufträge" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "Zu Benutzereinstellungen wechseln" @@ -3754,11 +3860,11 @@ msgstr "Sicherheit" msgid "Display Options" msgstr "Anzeigeoptionen" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "Kontoeinstellungen" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "Zu Systemeinstellungen wechseln" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "Referenz" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "Referenz" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "Beschreibung" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "Unter-Bauaufträge" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "Anhänge" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "Notizen" @@ -3991,12 +4097,12 @@ msgstr "Neuer Bauauftrag" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "Bauauftrag-Aktionen" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "Bestellung stornieren" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "Telefonnummer" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "E-Mail-Adresse" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "Standardwährung" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "Standardwährung" msgid "Supplier" msgstr "Lieferant" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "Hersteller" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "Hersteller" msgid "Customer" msgstr "Kunde" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "Details" #: src/pages/company/CompanyDetail.tsx:175 -#~ msgid "Edit company" -#~ msgstr "Edit company" - -#: src/pages/company/CompanyDetail.tsx:176 msgid "Manufactured Parts" msgstr "Hergestellte Teile" -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:175 +#~ msgid "Edit company" +#~ msgstr "Edit company" + +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "Zuliefererteile" @@ -4077,192 +4183,202 @@ msgstr "Zuliefererteile" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "Zugeordneter Bestand" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "Unternehmen bearbeiten" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "Firmen-Aktionen" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "Internes Teil" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "Externer Link" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "Teilenummer des Herstellers" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "Herstellerdetails" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "Herstellerteil Details" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "Parameter" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "Lieferanten" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "Herstellerteil bearbeiten" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "Herstellerteil hinzufügen" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "Herstellerteil löschen" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "Herstellerteil Aktionen" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "Herstellerteil" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "Verpackungsmenge" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "Lieferantenverfügbarkeit" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "Verfügbarkeit aktualisiert" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "Verfügbarkeit" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "Zuliefererteil Details" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "Empfangene Lagerartikel" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "Zulieferer-Preise" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "Zuliefererteil Aktionen" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "Zuliefererteil bearbeiten" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "Zuliefererteil entfernen" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "Zuliefererteil hinzufügen" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "Pfad" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "Übergeordnete Kategorie" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "Unterkategorien" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "Strukturell" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "Übergeordneter Standard-Standort" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "Standard-Lagerort" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "Oberste Teile-Kategorie" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "Teilekategorie bearbeiten" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "Elemente löschen" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "Teile-Kategorie löschen" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "Teile Aktionen" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "Aktion für Teile in dieser Kategorie" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "Unterkategorien-Aktion" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "Aktion für untergeordnete Kategorien in dieser Kategorie" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "Kategorieaktionen" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "Kategorie-Details" @@ -4357,25 +4473,6 @@ msgstr "Herstellbar" msgid "Building" msgstr "Gebäude" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "Aktiv" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "Standard Zulieferer" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "Varianten" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "Ferienguthaben/Freitage" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "Teilbepreisung" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "Hersteller" @@ -4498,7 +4595,7 @@ msgstr "Zugehörige Teile" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "In Bestellung" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "In Produktion" @@ -4540,25 +4637,25 @@ msgstr "Teil löschen" msgid "Deleting this part cannot be reversed" msgstr "Das Löschen dieses Teils kann nicht rückgängig gemacht werden" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "Lager-Aktionen" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "Bestand zählen" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "Bestand übertragen" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "Teile-Aktionen" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "Keine Preisdaten für diesen Teil gefunden." -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "Preisübersicht" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "Kaufhistorie" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "Interne Preise" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "Stücklisten Preise" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "Varianten Preise" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "Verkaufs Preise" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "Verkaufshistorie" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "Verkaufshistorie" msgid "Total Price" msgstr "Gesamtpreis" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "Komponente" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "Niedrigster Preis" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "Höchster Preis" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "Preis pro Einheit" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "Aktualisiert" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "Kuchendiagramm" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "Balkendiagramm" @@ -4824,7 +4921,7 @@ msgstr "Erstellt am" msgid "Order Details" msgstr "Bestelldetails" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "Rücksendeauftrag bearbeiten" msgid "Add Return Order" msgstr "Neuer Rücksendeauftrag" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "Kunden" @@ -4870,64 +4967,64 @@ msgstr "Auftrag hinzufügen" msgid "Pending Shipments" msgstr "Ausstehende Sendungen" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "Übergeordneter Lagerort" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "Unter-Lagerorte" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "Extern" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "Lagerort Typ" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "Oberster Lagerort" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "Lagerort-Details" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "Standardteile" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "Lagerort bearbeiten" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "Lagerort löschen" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "Bestandsaktionen" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "Aktion für Lagerartikel an diesem Lagerort" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "Aktion für untergeordnete Lagerorte" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "Aktion für untergeordnete Lagerorte an diesem Lagerort" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "Lagerort Aktionen" @@ -4947,52 +5044,52 @@ msgstr "Lagerbestand Status" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "Verbaut in" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "Verbraucht von" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "Bauauftrag" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "Bauauftrag" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "Lagerdetails" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "Bestandsverfolgung" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "Test Daten" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "Installierte Elemente" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "Untergeordnete Objekte" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "Lagerartikel bearbeiten" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "Lagerartikel löschen" @@ -5000,34 +5097,34 @@ msgstr "Lagerartikel löschen" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "Lagervorgänge" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "Bestand zählen" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "Lagerbestand hinzufügen" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "Lagerbestand entfernen" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "Verschieben" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "Lagerbestand verschieben" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "Lagerartikel Aktionen" @@ -5061,19 +5158,19 @@ msgstr "Spalten auswählen" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "CSV" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "CSV" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "TSV" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "Excel (.xlsx)" @@ -5081,7 +5178,7 @@ msgstr "Excel (.xlsx)" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "Daten herunterladen" @@ -5146,76 +5243,83 @@ msgstr "Filter hinzufügen" msgid "Clear Filters" msgstr "Filter zurücksetzen" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "Keine Einträge gefunden" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "Der Server hat einen falschen Datentyp zurückgegeben" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "Ungültige Anfrage" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "Nicht autorisiert" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "Verweigert" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "Nicht gefunden" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "Ausgewählte Datensätze löschen" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" -msgstr "Sind Sie sicher, dass Sie die ausgewählten Datensätze löschen möchten?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "Diese Aktion kann nicht rückgängig gemacht werden!" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "Gelöschte Datensätze" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "Datensätze erfolgreich gelöscht" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "Löschen der Datensätze fehlgeschlagen" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "Barcode-Aktionen" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "Ausgewählte Datensätze löschen" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "Daten aktualisieren" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "Tabellenfilter" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "Montage" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "Unter-Kategorien einschließen" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "Unterkategorien in Ergebnissen einbeziehen" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "Strukturkategorien anzeigen" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "Neue Teilekategorie" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "Teilekategorie hinzufügen" @@ -6305,7 +6409,7 @@ msgstr "Diese Aktion kann nicht rückgängig gemacht werden" msgid "Any tests results associated with this template will be deleted" msgstr "Alle mit dieser Vorlage verknüpften Testergebnisse werden gelöscht" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "Wähle" @@ -6597,10 +6701,6 @@ msgstr "Parameter löschen" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "Herstellerteil löschen" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "Herstellerteil löschen" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "Teilebeschreibung" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "Gesamtmenge" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "Lieferantennummer" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "Lieferanten-Link" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "Herstellernummer" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "Bestimmungsort" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "Position hinzufügen" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "Position bearbeiten" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "Position löschen" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "Position empfangen" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "Position hinzufügen" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "Erhaltene Artikel" @@ -6714,10 +6814,6 @@ msgstr "Zeige aktiven Lieferant" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "Zuliefererteil entfernen" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "Bewerten" @@ -6803,71 +6899,71 @@ msgstr "Gestoppt" msgid "Attempts" msgstr "Versuche" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "Gruppe mit der ID {id} nicht gefunden" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "Beim Laden der Gruppendetails ist ein Fehler aufgetreten" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "Berechtigungen" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "Gruppe löschen" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "Gruppe gelöscht." -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "Sind Sie sicher, dass Sie diese Gruppe löschen möchten?" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "Gruppe hinzufügen" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "Gruppe bearbeiten" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "Modelltyp" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "Nach Modelltyp filtern" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "Benutzer hinzugefügt" msgid "Edit user" msgstr "Benutzer bearbeiten" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "Lagerorttyp hinzufügen" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "Lagerorttyp bearbeiten" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "Lagerorttyp löschen" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "Symbol" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "Verfügbare Artikel anzeigen" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "Unter-Lagerorte einschließen" @@ -7332,32 +7428,32 @@ msgstr "Nur bestandene Tests anzeigen" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "Unterorte in Ergebnissen einbeziehen" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "Unterorte in Ergebnissen einbeziehen" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "Strukturstandorte anzeigen" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "Externe Orte anzeigen" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "Hat Standorttyp" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "Lagerort hinzufügen" diff --git a/src/frontend/src/locales/el/messages.po b/src/frontend/src/locales/el/messages.po index 531fae59a3..5ed0f0aeed 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: 2024-07-17 16:37\n" +"PO-Revision-Date: 2024-07-24 18:22\n" "Last-Translator: \n" "Language-Team: Greek\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -30,13 +30,21 @@ msgstr "" msgid "Title" msgstr "Τίτλος" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" -msgstr "" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "Αντιγράφηκε" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" +msgstr "Αντιγραφή" #: src/components/buttons/PrintingActions.tsx:93 msgid "Print Label" @@ -54,16 +62,14 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "" msgid "No" msgstr "" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "Αντιγράφηκε" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "Αντιγραφή" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "Αφαίρεση εικόνας" @@ -152,21 +150,20 @@ msgid "Remove the associated image from this item?" msgstr "Αφαίρεση της σχετικής εικόνας από αυτό το στοιχείο;" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "Αφαίρεση" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "Ακύρωση" @@ -179,34 +176,34 @@ msgstr "Σύρετε και αποθέστε για μεταφόρτωση" msgid "Click to select file(s)" msgstr "Κάντε κλικ για να επιλέξετε αρχείο(α)" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "Εκκαθάριση" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "Υποβολή" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "Επιλέξτε από υπάρχουσες εικόνες" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "Επιλέξτε εικόνα" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "Μεταφόρτωση νέας εικόνας" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "Μεταφόρτωση εικόνας" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "Διαγραφή εικόνας" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "Επιτυχία" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "Σφάλμα αποθήκευσης προτύπου" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "" @@ -321,19 +318,19 @@ msgstr "Προεπισκόπηση ενημερώθηκε" msgid "The preview has been updated successfully." msgstr "Η προεπισκόπηση ενημερώθηκε με επιτυχία." -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "Επαναφόρτωση προεπισκόπησης" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "Χρήση του αποθηκευμένου προτύπου από το διακομιστή" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "Επαναφόρτωση προεπισκόπησης" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "Χρήση του αποθηκευμένου προτύπου από το διακομιστή" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "Αποθήκευση του τρέχοντος προτύπου και επαναφόρτωση της προεπισκόπησης" @@ -341,11 +338,11 @@ msgstr "Αποθήκευση του τρέχοντος προτύπου και #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "Σφάλμα αποτύπωσης προτύπου" @@ -357,11 +354,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -397,7 +394,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "Σφάλμα Φόρμας" @@ -405,17 +403,20 @@ msgstr "Σφάλμα Φόρμας" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "Ενημέρωση" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" @@ -587,9 +588,10 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -639,6 +641,32 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "" @@ -926,6 +958,30 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1164,11 +1220,6 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1190,7 +1241,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "" @@ -1253,25 +1304,25 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "" @@ -1308,23 +1359,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "" @@ -1486,17 +1536,17 @@ msgstr "" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1511,16 +1561,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 -msgid "Import Sessions" -msgstr "" - -#: src/components/render/ModelType.tsx:212 -msgid "Label Template" +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" msgstr "" #: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 +msgid "Import Sessions" +msgstr "" + +#: src/components/render/ModelType.tsx:220 +msgid "Label Template" +msgstr "" + +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1626,48 +1686,48 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "Ανενεργό" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2395,74 +2455,74 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "" @@ -2470,20 +2530,20 @@ msgstr "" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "" @@ -2664,105 +2724,106 @@ msgstr "" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2816,7 +2878,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2824,15 +2886,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2840,82 +2902,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -3032,7 +3094,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" @@ -3053,7 +3115,7 @@ msgstr "" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -3114,7 +3176,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3403,83 +3465,128 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "" @@ -3558,9 +3665,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3683,11 +3794,6 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3704,7 +3810,7 @@ msgstr "" msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "" @@ -3716,29 +3822,29 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "" @@ -3754,11 +3860,11 @@ msgstr "" msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" @@ -3991,12 +4097,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "" +#: src/pages/company/CompanyDetail.tsx:175 +msgid "Manufactured Parts" +msgstr "" + #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" #~ msgstr "Edit company" -#: src/pages/company/CompanyDetail.tsx:176 -msgid "Manufactured Parts" -msgstr "" - -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -4077,192 +4183,202 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" @@ -4357,25 +4473,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4498,7 +4595,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4540,25 +4637,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4824,7 +4921,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4870,64 +4967,64 @@ msgstr "" msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5044,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5097,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5158,19 @@ msgstr "" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5178,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5243,83 @@ msgstr "" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6305,7 +6409,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "Επιλέξτε" @@ -6597,10 +6701,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6714,10 +6814,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6803,71 +6899,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7332,32 +7428,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/en/messages.po b/src/frontend/src/locales/en/messages.po index 317381b049..5e00818b64 100644 --- a/src/frontend/src/locales/en/messages.po +++ b/src/frontend/src/locales/en/messages.po @@ -25,13 +25,21 @@ msgstr "An error occurred while rendering this component. Refer to the console f msgid "Title" msgstr "Title" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "Open in admin interface" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" -msgstr "Copy to clipboard" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "Copied" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" +msgstr "Copy" #: src/components/buttons/PrintingActions.tsx:93 msgid "Print Label" @@ -49,16 +57,14 @@ msgstr "Label printing completed successfully" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 -#: src/components/importer/ImportDataSelector.tsx:172 +#: src/components/forms/fields/ApiFormField.tsx:313 +#: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -126,18 +132,10 @@ msgstr "Yes" msgid "No" msgstr "No" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "No name defined" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "Copied" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "Copy" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "Remove Image" @@ -147,21 +145,20 @@ msgid "Remove the associated image from this item?" msgstr "Remove the associated image from this item?" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "Remove" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "Cancel" @@ -174,34 +171,34 @@ msgstr "Drag and drop to upload" msgid "Click to select file(s)" msgstr "Click to select file(s)" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "Clear" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "Submit" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "Select from existing images" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "Select Image" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "Upload new image" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "Upload Image" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "Delete image" @@ -238,7 +235,7 @@ msgid "Image upload failed" msgstr "Image upload failed" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "Success" @@ -352,11 +349,11 @@ msgstr "Client Error" msgid "Client error occurred" msgstr "Client error occurred" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "Status Code" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "Return to the index page" @@ -392,7 +389,8 @@ msgstr "Server Error" msgid "A server error occurred" msgstr "A server error occurred" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "Form Error" @@ -400,17 +398,20 @@ msgstr "Form Error" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "Errors exist for one or more form fields" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "Update" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -445,7 +446,7 @@ msgstr "Login failed" #: src/components/forms/AuthenticationForm.tsx:59 #: src/components/forms/AuthenticationForm.tsx:76 #: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:165 +#: src/functions/auth.tsx:164 msgid "Check your input and try again." msgstr "Check your input and try again." @@ -455,7 +456,7 @@ msgstr "Check your input and try again." #~ msgstr "Mail delivery successfull" #: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:155 msgid "Mail delivery successful" msgstr "Mail delivery successful" @@ -504,7 +505,7 @@ msgstr "Reset password" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "Email" @@ -582,6 +583,7 @@ msgstr "Host" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:80 #: src/pages/part/PartDetail.tsx:127 #: src/pages/stock/LocationDetail.tsx:87 @@ -592,7 +594,7 @@ msgstr "Host" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 #: src/tables/stock/LocationTypesTable.tsx:60 msgid "Name" @@ -643,7 +645,7 @@ msgstr "Search" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "Loading" @@ -668,60 +670,60 @@ msgstr "No entries available" msgid "Thumbnail" msgstr "Thumbnail" -#: src/components/importer/ImportDataSelector.tsx:155 +#: src/components/importer/ImportDataSelector.tsx:166 msgid "Importing Rows" msgstr "Importing Rows" -#: src/components/importer/ImportDataSelector.tsx:156 +#: src/components/importer/ImportDataSelector.tsx:167 msgid "Please wait while the data is imported" msgstr "Please wait while the data is imported" -#: src/components/importer/ImportDataSelector.tsx:173 +#: src/components/importer/ImportDataSelector.tsx:184 msgid "An error occurred while importing data" msgstr "An error occurred while importing data" -#: src/components/importer/ImportDataSelector.tsx:194 +#: src/components/importer/ImportDataSelector.tsx:205 msgid "Edit Data" msgstr "Edit Data" -#: src/components/importer/ImportDataSelector.tsx:222 +#: src/components/importer/ImportDataSelector.tsx:233 msgid "Delete Row" msgstr "Delete Row" -#: src/components/importer/ImportDataSelector.tsx:252 +#: src/components/importer/ImportDataSelector.tsx:263 msgid "Row" msgstr "Row" -#: src/components/importer/ImportDataSelector.tsx:270 +#: src/components/importer/ImportDataSelector.tsx:281 msgid "Row contains errors" msgstr "Row contains errors" -#: src/components/importer/ImportDataSelector.tsx:311 +#: src/components/importer/ImportDataSelector.tsx:322 msgid "Accept" msgstr "Accept" -#: src/components/importer/ImportDataSelector.tsx:344 +#: src/components/importer/ImportDataSelector.tsx:355 msgid "Valid" msgstr "Valid" -#: src/components/importer/ImportDataSelector.tsx:345 +#: src/components/importer/ImportDataSelector.tsx:356 msgid "Filter by row validation status" msgstr "Filter by row validation status" -#: src/components/importer/ImportDataSelector.tsx:350 +#: src/components/importer/ImportDataSelector.tsx:361 #: src/tables/build/BuildOutputTable.tsx:205 msgid "Complete" msgstr "Complete" -#: src/components/importer/ImportDataSelector.tsx:351 +#: src/components/importer/ImportDataSelector.tsx:362 msgid "Filter by row completion status" msgstr "Filter by row completion status" -#: src/components/importer/ImportDataSelector.tsx:368 +#: src/components/importer/ImportDataSelector.tsx:379 msgid "Import selected rows" msgstr "Import selected rows" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:394 msgid "Processing Data" msgstr "Processing Data" @@ -823,59 +825,63 @@ msgstr "Import session has unknown status" msgid "Importing Data" msgstr "Importing Data" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "Importing Records" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "Imported rows" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "Barcode Actions" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "View Barcode" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "View" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "View barcode" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "Link Barcode" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "Link custom barcode" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "Unlink Barcode" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "Unlink custom barcode" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "Edit" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "Delete item" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "Duplicate" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "Duplicate item" @@ -884,7 +890,7 @@ msgid "Read More" msgstr "Read More" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "Unknown error" @@ -921,6 +927,30 @@ msgstr "PLH" msgid "This panel is a placeholder." msgstr "This panel is a placeholder." +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "Low (7%)" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "Medium (15%)" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "Quartile (25%)" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "High (30%)" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "Barcode Data:" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "Select Error Correction Level" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "Version Information" @@ -1160,7 +1190,7 @@ msgid "Server Version" msgstr "Server Version" #: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 +#: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "Search..." @@ -1185,7 +1215,7 @@ msgstr "Account settings" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "System Settings" @@ -1248,25 +1278,25 @@ msgstr "Documentation" msgid "About" msgstr "About" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "Notifications" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "You have no unread notifications." -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "Notification" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "Mark as read" @@ -1303,23 +1333,23 @@ msgstr "No results" msgid "No results available for search query" msgstr "No results available for search query" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:210 msgid "Unknown model: {model}" msgstr "Unknown model: {model}" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1328,9 +1358,9 @@ msgid "Part" msgstr "Part" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:173 #: src/pages/part/CategoryDetail.tsx:112 #: src/pages/part/CategoryDetail.tsx:237 #: src/pages/part/CategoryDetail.tsx:267 @@ -1355,9 +1385,9 @@ msgid "Part Test Templates" msgstr "Part Test Templates" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:192 -#: src/pages/company/SupplierPartDetail.tsx:320 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1368,7 +1398,7 @@ msgid "Supplier Parts" msgstr "Supplier Parts" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:127 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "Manufacturer Part" @@ -1382,24 +1412,23 @@ msgid "Part Category" msgstr "Part Category" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/part/CategoryDetail.tsx:251 #: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "Part Categories" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "Stock Item" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 +#: src/pages/company/CompanyDetail.tsx:200 #: src/pages/stock/LocationDetail.tsx:120 #: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/stock/LocationDetail.tsx:379 msgid "Stock Items" msgstr "Stock Items" @@ -1409,8 +1438,8 @@ msgstr "Stock Location" #: src/components/render/ModelType.tsx:82 #: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:371 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "Stock Locations" @@ -1431,7 +1460,7 @@ msgid "Stock Histories" msgstr "Stock Histories" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "Build" @@ -1457,7 +1486,7 @@ msgid "Build Items" msgstr "Build Items" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "Company" @@ -1481,17 +1510,17 @@ msgstr "Project Codes" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "Purchase Order" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:226 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Purchase Orders" @@ -1506,16 +1535,16 @@ msgstr "Purchase Order Lines" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "Sales Order" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Sales Orders" @@ -1534,9 +1563,9 @@ msgid "Return Order" msgstr "Return Order" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "Return Orders" @@ -1546,7 +1575,7 @@ msgid "Address" msgstr "Address" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "Addresses" @@ -1558,7 +1587,7 @@ msgid "Contact" msgstr "Contact" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "Contacts" @@ -1571,7 +1600,7 @@ msgid "Owners" msgstr "Owners" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1584,36 +1613,46 @@ msgid "Users" msgstr "Users" #: src/components/render/ModelType.tsx:205 +msgid "Group" +msgstr "Group" + +#: src/components/render/ModelType.tsx:206 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" +msgstr "Groups" + +#: src/components/render/ModelType.tsx:213 msgid "Import Session" msgstr "Import Session" -#: src/components/render/ModelType.tsx:206 +#: src/components/render/ModelType.tsx:214 msgid "Import Sessions" msgstr "Import Sessions" -#: src/components/render/ModelType.tsx:212 +#: src/components/render/ModelType.tsx:220 msgid "Label Template" msgstr "Label Template" -#: src/components/render/ModelType.tsx:213 +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "Label Templates" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "Report Template" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "Report Templates" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "Plugin Configuration" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "Plugin Configurations" @@ -1623,8 +1662,8 @@ msgstr "Shipment" #: src/components/render/Part.tsx:24 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:307 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "Inactive" @@ -1636,33 +1675,33 @@ msgid "No stock" msgstr "No stock" #: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "Stock" #: src/components/render/Stock.tsx:52 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "Serial Number" #: src/components/render/Stock.tsx:54 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:127 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2258,13 +2297,13 @@ msgid "Chinese (Traditional)" msgstr "Chinese (Traditional)" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "Home" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2280,13 +2319,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "Visit the documentation to learn more about InvenTree" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "About InvenTree" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "About the InvenTree org" @@ -2295,17 +2334,17 @@ msgid "Server Information" msgstr "Server Information" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "About this Inventree instance" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "License Information" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "Licenses for dependencies of the service" @@ -2390,74 +2429,74 @@ msgstr "Current News" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "Website" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "GitHub" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "Demo" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:236 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:294 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:351 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "Purchasing" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "Sales" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "Playground" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "Getting Started" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "Getting started with InvenTree" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "API" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "InvenTree API documentation" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "Developer Manual" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "InvenTree developer manual" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "FAQ" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "Frequently asked questions" @@ -2465,20 +2504,20 @@ msgstr "Frequently asked questions" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "System Information" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "System Information" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "Licenses" @@ -2659,105 +2698,106 @@ msgstr "Parent part category" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "Choose Location" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "Item Destination selected" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "Part category default location selected" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "Received stock location selected" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "Default location selected" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "Scan Barcode" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "Set Location" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "Assign Batch Code{0}" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "Adjust Packaging" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "Change Status" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "Add Note" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "Remove item from list" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "Location" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "Store at default location" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "Store at line item destination" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "Store with already received stock" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "Batch Code" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "Serial numbers" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:145 -#: src/pages/company/SupplierPartDetail.tsx:196 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:148 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "Packaging" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2767,43 +2807,44 @@ msgstr "Packaging" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "Status" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:99 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "Note" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "SKU" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:134 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "Received" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "Actions" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "Receive Line Items" @@ -2811,7 +2852,7 @@ msgstr "Receive Line Items" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "Add given quantity as packs instead of individual items" @@ -2819,15 +2860,15 @@ msgstr "Add given quantity as packs instead of individual items" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "Enter initial quantity for this stock item" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "Serial Numbers" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Enter serial numbers for new stock (or leave blank)" @@ -2835,82 +2876,82 @@ msgstr "Enter serial numbers for new stock (or leave blank)" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "Add Stock Item" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "Loading..." -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "Move to default location" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "In Stock" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "Move" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "Add" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "Count" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "Add Stock" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "Remove Stock" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "Transfer Stock" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "Count Stock" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "Change Stock Status" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "Merge Stock" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "Delete Stock Items" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "Parent stock location" @@ -2934,11 +2975,11 @@ msgstr "Parent stock location" #~ msgid "You have been logged out" #~ msgstr "You have been logged out" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:117 msgid "Logged Out" msgstr "Logged Out" -#: src/functions/auth.tsx:119 +#: src/functions/auth.tsx:118 msgid "Successfully logged out" msgstr "Successfully logged out" @@ -2954,20 +2995,20 @@ msgstr "Successfully logged out" #~ msgid "Found an existing login - welcome back!" #~ msgstr "Found an existing login - welcome back!" -#: src/functions/auth.tsx:157 +#: src/functions/auth.tsx:156 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:164 +#: src/functions/auth.tsx:163 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "Reset failed" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:194 msgid "Logged In" msgstr "Logged In" -#: src/functions/auth.tsx:196 +#: src/functions/auth.tsx:195 msgid "Successfully logged in" msgstr "Successfully logged in" @@ -3027,7 +3068,7 @@ msgstr "Item Deleted" msgid "Are you sure you want to delete this item?" msgstr "Are you sure you want to delete this item?" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "Checking if you are already logged in" @@ -3048,7 +3089,7 @@ msgstr "Register below" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "Logging out" @@ -3109,7 +3150,7 @@ msgstr "This page is a replacement for the old start page with the same informat msgid "Welcome to your Dashboard{0}" msgstr "Welcome to your Dashboard{0}" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "This page is a showcase for the possibilities of Platform UI." @@ -3398,83 +3439,128 @@ msgstr "Last name:" msgid "Use pseudo language" msgstr "Use pseudo language" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "Single Sign On Accounts" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "Not enabled" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "Single Sign On is not enabled for this server" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "Multifactor" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "Multifactor authentication is not configured for your account" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "Token" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "The following email addresses are associated with your account:" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "Primary" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "Verified" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "Unverified" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "Add Email Address" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "E-Mail" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "E-Mail address" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "Make Primary" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "Re-send Verification" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "Add Email" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "Provider has not been configured" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "Not configured" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "There are no social network accounts connected to this account." -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "You can sign in to your account using any of the following third party accounts" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "Token is used - no actions" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "Revoke" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "No tokens configured" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "Active" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "Expiry" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "Last Seen" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "bars" @@ -3553,8 +3639,12 @@ msgid "Category Parameters" msgstr "Category Parameters" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" -msgstr "Location types" +msgid "Location Types" +msgstr "Location Types" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 @@ -3678,11 +3768,6 @@ msgstr "Failed Tasks" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "Groups" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "Select settings relevant for user lifecycle. More available in" @@ -3699,7 +3784,7 @@ msgstr "Login" msgid "Barcodes" msgstr "Barcodes" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "Pricing" @@ -3711,29 +3796,29 @@ msgstr "Pricing" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "Labels" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "Reporting" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "Stocktake" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "Build Orders" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "Switch to User Setting" @@ -3749,11 +3834,11 @@ msgstr "Security" msgid "Display Options" msgstr "Display Options" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "Account Settings" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "Switch to System Setting" @@ -3800,9 +3885,9 @@ msgid "Reference" msgstr "Reference" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:78 -#: src/pages/company/SupplierPartDetail.tsx:85 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:94 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 @@ -3941,23 +4026,25 @@ msgid "Child Build Orders" msgstr "Child Build Orders" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:174 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:265 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "Attachments" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "Notes" @@ -3984,12 +4071,12 @@ msgstr "Add Build Order" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "Build Order Actions" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4003,23 +4090,23 @@ msgstr "Cancel order" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "Phone Number" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "Email Address" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "Default Currency" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:195 -#: src/pages/company/SupplierPartDetail.tsx:298 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4027,21 +4114,21 @@ msgstr "Default Currency" msgid "Supplier" msgstr "Supplier" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:96 -#: src/pages/company/ManufacturerPartDetail.tsx:240 -#: src/pages/company/SupplierPartDetail.tsx:124 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "Manufacturer" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4049,20 +4136,20 @@ msgstr "Manufacturer" msgid "Customer" msgstr "Customer" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "Details" #: src/pages/company/CompanyDetail.tsx:175 -#~ msgid "Edit company" -#~ msgstr "Edit company" - -#: src/pages/company/CompanyDetail.tsx:176 msgid "Manufactured Parts" msgstr "Manufactured Parts" -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:175 +#~ msgid "Edit company" +#~ msgstr "Edit company" + +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "Supplied Parts" @@ -4070,118 +4157,128 @@ msgstr "Supplied Parts" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "Assigned Stock" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "Edit Company" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "Company Actions" -#: src/pages/company/ManufacturerPartDetail.tsx:71 -#: src/pages/company/SupplierPartDetail.tsx:78 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:77 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "Internal Part" -#: src/pages/company/ManufacturerPartDetail.tsx:86 -#: src/pages/company/SupplierPartDetail.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "External Link" -#: src/pages/company/ManufacturerPartDetail.tsx:104 -#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "Manufacturer Part Number" -#: src/pages/company/ManufacturerPartDetail.tsx:133 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "Manufacturer Details" -#: src/pages/company/ManufacturerPartDetail.tsx:142 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "Manufacturer Part Details" -#: src/pages/company/ManufacturerPartDetail.tsx:148 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "Parameters" -#: src/pages/company/ManufacturerPartDetail.tsx:160 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "Suppliers" -#: src/pages/company/ManufacturerPartDetail.tsx:191 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "Edit Manufacturer Part" -#: src/pages/company/ManufacturerPartDetail.tsx:198 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "Add Manufacturer Part" -#: src/pages/company/ManufacturerPartDetail.tsx:214 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "Delete Manufacturer Part" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "Manufacturer Part Actions" -#: src/pages/company/ManufacturerPartDetail.tsx:252 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "ManufacturerPart" -#: src/pages/company/SupplierPartDetail.tsx:152 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:112 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "Pack Quantity" -#: src/pages/company/SupplierPartDetail.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "Supplier Availability" -#: src/pages/company/SupplierPartDetail.tsx:170 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "Availability Updated" -#: src/pages/company/SupplierPartDetail.tsx:197 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "Availability" -#: src/pages/company/SupplierPartDetail.tsx:206 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "Supplier Part Details" -#: src/pages/company/SupplierPartDetail.tsx:212 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "Received Stock" -#: src/pages/company/SupplierPartDetail.tsx:236 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "Supplier Pricing" -#: src/pages/company/SupplierPartDetail.tsx:251 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "Supplier Part Actions" -#: src/pages/company/SupplierPartDetail.tsx:275 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "Edit Supplier Part" -#: src/pages/company/SupplierPartDetail.tsx:282 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "Delete Supplier Part" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "Add Supplier Part" @@ -4221,7 +4318,7 @@ msgstr "Top level part category" #: src/pages/part/CategoryDetail.tsx:160 #: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/tables/part/PartCategoryTable.tsx:94 msgid "Edit Part Category" msgstr "Edit Part Category" @@ -4350,25 +4447,6 @@ msgstr "Can Build" msgid "Building" msgstr "Building" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "Active" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4432,7 +4510,7 @@ msgid "Default Supplier" msgstr "Default Supplier" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4456,7 +4534,7 @@ msgid "Variants" msgstr "Variants" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "Allocations" @@ -4473,7 +4551,7 @@ msgid "Part Pricing" msgstr "Part Pricing" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "Manufacturers" @@ -4491,7 +4569,7 @@ msgstr "Related Parts" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4510,7 +4588,7 @@ msgid "On Order" msgstr "On Order" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "In Production" @@ -4533,25 +4611,25 @@ msgstr "Delete Part" msgid "Deleting this part cannot be reversed" msgstr "Deleting this part cannot be reversed" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:309 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "Stock Actions" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "Count part stock" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "Transfer part stock" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "Part Actions" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "Select Part Revision" @@ -4559,46 +4637,46 @@ msgstr "Select Part Revision" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "No pricing data found for this part." -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "Pricing Overview" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "Purchase History" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "Internal Pricing" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "BOM Pricing" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "Variant Pricing" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "Sale Pricing" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "Sale History" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4607,19 +4685,19 @@ msgstr "Sale History" msgid "Total Price" msgstr "Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "Component" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "Minimum Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4633,28 +4711,28 @@ msgstr "Maximum Price" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:179 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "Unit Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "Updated" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "Pie Chart" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "Bar Chart" @@ -4721,19 +4799,19 @@ msgstr "Minimum Value" msgid "Maximum Value" msgstr "Maximum Value" -#: src/pages/part/pricing/PricingPanel.tsx:25 +#: src/pages/part/pricing/PricingPanel.tsx:24 msgid "No data available" msgstr "No data available" -#: src/pages/part/pricing/PricingPanel.tsx:66 +#: src/pages/part/pricing/PricingPanel.tsx:65 msgid "No Data" msgstr "No Data" -#: src/pages/part/pricing/PricingPanel.tsx:67 +#: src/pages/part/pricing/PricingPanel.tsx:66 msgid "No pricing data available" msgstr "No pricing data available" -#: src/pages/part/pricing/PricingPanel.tsx:78 +#: src/pages/part/pricing/PricingPanel.tsx:77 msgid "Loading pricing data" msgstr "Loading pricing data" @@ -4817,7 +4895,7 @@ msgstr "Created On" msgid "Order Details" msgstr "Order Details" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4845,7 +4923,7 @@ msgstr "Edit Return Order" msgid "Add Return Order" msgstr "Add Return Order" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "Customers" @@ -4894,13 +4972,13 @@ msgid "Default Parts" msgstr "Default Parts" #: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:336 +#: src/tables/stock/StockLocationTable.tsx:115 msgid "Edit Stock Location" msgstr "Edit Stock Location" #: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "Delete Stock Location" @@ -4920,7 +4998,7 @@ msgstr "Child Locations Action" msgid "Action for child locations in this location" msgstr "Action for child locations in this location" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:331 msgid "Location Actions" msgstr "Location Actions" @@ -4940,52 +5018,52 @@ msgstr "Stock Status" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "Installed In" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "Consumed By" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "Build Order" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "Build Order" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "Stock Details" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "Stock Tracking" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "Test Data" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "Installed Items" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "Child Items" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "Edit Stock Item" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "Delete Stock Item" @@ -4993,34 +5071,34 @@ msgstr "Delete Stock Item" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "Stock Operations" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "Count stock" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "Add stock" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "Remove stock" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "Transfer" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "Transfer stock" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "Stock Item Actions" @@ -5054,19 +5132,19 @@ msgstr "Select Columns" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "CSV" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "CSV" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "TSV" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "Excel (.xlsx)" @@ -5074,7 +5152,7 @@ msgstr "Excel (.xlsx)" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "Download Data" @@ -5139,76 +5217,83 @@ msgstr "Add Filter" msgid "Clear Filters" msgstr "Clear Filters" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "No records found" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "Server returned incorrect data type" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "Bad request" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "Unauthorized" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "Forbidden" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "Not found" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "Delete selected records" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" -msgstr "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" +msgstr "Delete Selected Items" + +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "Are you sure you want to delete the selected items?" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "This action cannot be undone!" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "Deleted records" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "Records were deleted successfully" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "Failed to delete records" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "Barcode actions" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "Delete selected records" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "Refresh data" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "Table filters" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "Upload Data" @@ -5996,7 +6081,7 @@ msgstr "Show categories to which the user is subscribed" msgid "New Part Category" msgstr "New Part Category" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:104 msgid "Add Part Category" msgstr "Add Part Category" @@ -6298,7 +6383,7 @@ msgstr "This action cannot be reversed" msgid "Any tests results associated with this template will be deleted" msgstr "Any tests results associated with this template will be deleted" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "Select" @@ -6590,10 +6675,6 @@ msgstr "Delete Parameter" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "Delete Manufacturer Part" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6606,51 +6687,56 @@ msgstr "Delete Manufacturer Part" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:91 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 +msgid "Import Line Items" +msgstr "Import Line Items" + +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "Part Description" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:118 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "Total Quantity" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:157 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "Supplier Code" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:164 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "Supplier Link" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "Manufacturer Code" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:185 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "Destination" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "Add Line Item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:224 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "Edit Line Item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "Delete Line Item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:243 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "Receive line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "Add line item" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "Receive items" @@ -6702,10 +6788,6 @@ msgstr "Show active suppliers" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "Delete Supplier Part" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "Rate" @@ -6791,71 +6873,71 @@ msgstr "Stopped" msgid "Attempts" msgstr "Attempts" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "Group with id {id} not found" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "An error occurred while fetching group details" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "Permission set" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "Delete group" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "Group deleted" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "Are you sure you want to delete this group?" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "Add group" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "Edit group" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "Delete Import Session" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "Create Import Session" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "Uploaded" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "Imported Rows" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "Model Type" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "Filter by target model type" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "Filter by import session status" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "Filter by user" @@ -7345,7 +7427,7 @@ msgid "Filter by location type" msgstr "Filter by location type" #: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:125 msgid "Add Stock Location" msgstr "Add Stock Location" diff --git a/src/frontend/src/locales/es-mx/messages.po b/src/frontend/src/locales/es-mx/messages.po index bd41fa14b4..62bfedbb2d 100644 --- a/src/frontend/src/locales/es-mx/messages.po +++ b/src/frontend/src/locales/es-mx/messages.po @@ -25,12 +25,20 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" +#~ msgid "Copy to clipboard" +#~ msgstr "" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" msgstr "" #: src/components/buttons/PrintingActions.tsx:93 @@ -49,16 +57,14 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 -#: src/components/importer/ImportDataSelector.tsx:172 +#: src/components/forms/fields/ApiFormField.tsx:313 +#: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -126,18 +132,10 @@ msgstr "" msgid "No" msgstr "" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "" @@ -147,21 +145,20 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "" @@ -174,34 +171,34 @@ msgstr "" msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "" @@ -238,7 +235,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -352,11 +349,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -392,7 +389,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "" @@ -400,17 +398,20 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -435,12 +436,12 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:59 #: src/components/forms/AuthenticationForm.tsx:76 #: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:165 +#: src/functions/auth.tsx:164 msgid "Check your input and try again." msgstr "" #: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:155 msgid "Mail delivery successful" msgstr "" @@ -485,7 +486,7 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" @@ -563,6 +564,7 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:80 #: src/pages/part/PartDetail.tsx:127 #: src/pages/stock/LocationDetail.tsx:87 @@ -573,7 +575,7 @@ msgstr "" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 #: src/tables/stock/LocationTypesTable.tsx:60 msgid "Name" @@ -624,7 +626,7 @@ msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" @@ -649,60 +651,60 @@ msgstr "" msgid "Thumbnail" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:155 +#: src/components/importer/ImportDataSelector.tsx:166 msgid "Importing Rows" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:156 +#: src/components/importer/ImportDataSelector.tsx:167 msgid "Please wait while the data is imported" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:173 +#: src/components/importer/ImportDataSelector.tsx:184 msgid "An error occurred while importing data" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:194 +#: src/components/importer/ImportDataSelector.tsx:205 msgid "Edit Data" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:222 +#: src/components/importer/ImportDataSelector.tsx:233 msgid "Delete Row" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:252 +#: src/components/importer/ImportDataSelector.tsx:263 msgid "Row" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:270 +#: src/components/importer/ImportDataSelector.tsx:281 msgid "Row contains errors" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:311 +#: src/components/importer/ImportDataSelector.tsx:322 msgid "Accept" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:344 +#: src/components/importer/ImportDataSelector.tsx:355 msgid "Valid" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:345 +#: src/components/importer/ImportDataSelector.tsx:356 msgid "Filter by row validation status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:350 +#: src/components/importer/ImportDataSelector.tsx:361 #: src/tables/build/BuildOutputTable.tsx:205 msgid "Complete" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:351 +#: src/components/importer/ImportDataSelector.tsx:362 msgid "Filter by row completion status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:368 +#: src/components/importer/ImportDataSelector.tsx:379 msgid "Import selected rows" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:394 msgid "Processing Data" msgstr "" @@ -804,59 +806,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "" @@ -865,7 +871,7 @@ msgid "Read More" msgstr "" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "" @@ -902,6 +908,30 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1141,7 +1171,7 @@ msgid "Server Version" msgstr "" #: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 +#: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "" @@ -1166,7 +1196,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "" @@ -1221,25 +1251,25 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "" @@ -1276,23 +1306,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:210 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1301,9 +1331,9 @@ msgid "Part" msgstr "" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:173 #: src/pages/part/CategoryDetail.tsx:112 #: src/pages/part/CategoryDetail.tsx:237 #: src/pages/part/CategoryDetail.tsx:267 @@ -1328,9 +1358,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:192 -#: src/pages/company/SupplierPartDetail.tsx:320 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1341,7 +1371,7 @@ msgid "Supplier Parts" msgstr "" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:127 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1355,24 +1385,23 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/part/CategoryDetail.tsx:251 #: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 +#: src/pages/company/CompanyDetail.tsx:200 #: src/pages/stock/LocationDetail.tsx:120 #: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/stock/LocationDetail.tsx:379 msgid "Stock Items" msgstr "" @@ -1382,8 +1411,8 @@ msgstr "" #: src/components/render/ModelType.tsx:82 #: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:371 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1404,7 +1433,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" @@ -1430,7 +1459,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "" @@ -1454,17 +1483,17 @@ msgstr "" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:226 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1479,16 +1508,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1507,9 +1536,9 @@ msgid "Return Order" msgstr "" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" @@ -1519,7 +1548,7 @@ msgid "Address" msgstr "" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "" @@ -1531,7 +1560,7 @@ msgid "Contact" msgstr "" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "" @@ -1544,7 +1573,7 @@ msgid "Owners" msgstr "" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1557,36 +1586,46 @@ msgid "Users" msgstr "" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 -msgid "Import Sessions" -msgstr "" - -#: src/components/render/ModelType.tsx:212 -msgid "Label Template" +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" msgstr "" #: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 +msgid "Import Sessions" +msgstr "" + +#: src/components/render/ModelType.tsx:220 +msgid "Label Template" +msgstr "" + +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1596,8 +1635,8 @@ msgstr "" #: src/components/render/Part.tsx:24 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:307 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "" @@ -1609,33 +1648,33 @@ msgid "No stock" msgstr "" #: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "" #: src/components/render/Stock.tsx:52 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" #: src/components/render/Stock.tsx:54 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:127 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2227,13 +2266,13 @@ msgid "Chinese (Traditional)" msgstr "" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2249,13 +2288,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "" @@ -2264,17 +2303,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2351,74 +2390,74 @@ msgstr "" msgid "Current News" msgstr "" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:236 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:294 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:351 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "" @@ -2426,20 +2465,20 @@ msgstr "" #~ msgid "Instance" #~ msgstr "" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "" @@ -2556,105 +2595,106 @@ msgstr "" #~ msgid "Part updated" #~ msgstr "" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:145 -#: src/pages/company/SupplierPartDetail.tsx:196 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:148 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2664,43 +2704,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:99 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:134 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2708,7 +2749,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2716,15 +2757,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2732,82 +2773,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -2827,11 +2868,11 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:117 msgid "Logged Out" msgstr "" -#: src/functions/auth.tsx:119 +#: src/functions/auth.tsx:118 msgid "Successfully logged out" msgstr "" @@ -2847,20 +2888,20 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "" -#: src/functions/auth.tsx:157 +#: src/functions/auth.tsx:156 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:164 +#: src/functions/auth.tsx:163 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:194 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:196 +#: src/functions/auth.tsx:195 msgid "Successfully logged in" msgstr "" @@ -2920,7 +2961,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" @@ -2937,7 +2978,7 @@ msgstr "" msgid "Register below" msgstr "" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -2998,7 +3039,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3163,83 +3204,128 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3318,9 +3404,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3443,11 +3533,6 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3464,7 +3549,7 @@ msgstr "" msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "" @@ -3476,29 +3561,29 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "" @@ -3514,11 +3599,11 @@ msgstr "" msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3561,9 +3646,9 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:78 -#: src/pages/company/SupplierPartDetail.tsx:85 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:94 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 @@ -3702,23 +3787,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:174 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:265 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" @@ -3745,12 +3832,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -3764,23 +3851,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:195 -#: src/pages/company/SupplierPartDetail.tsx:298 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -3788,21 +3875,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:96 -#: src/pages/company/ManufacturerPartDetail.tsx:240 -#: src/pages/company/SupplierPartDetail.tsx:124 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -3810,20 +3897,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "" +#: src/pages/company/CompanyDetail.tsx:175 +msgid "Manufactured Parts" +msgstr "" + #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" #~ msgstr "" -#: src/pages/company/CompanyDetail.tsx:176 -msgid "Manufactured Parts" -msgstr "" - -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -3831,118 +3918,128 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:71 -#: src/pages/company/SupplierPartDetail.tsx:78 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:77 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:86 -#: src/pages/company/SupplierPartDetail.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:104 -#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:133 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:142 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:148 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:160 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:191 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:198 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:214 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:252 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:152 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:112 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:170 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:197 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:206 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:212 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:236 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:251 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:275 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:282 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" @@ -3982,7 +4079,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:160 #: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/tables/part/PartCategoryTable.tsx:94 msgid "Edit Part Category" msgstr "" @@ -4111,25 +4208,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4193,7 +4271,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4217,7 +4295,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4234,7 +4312,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4252,7 +4330,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4271,7 +4349,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4294,68 +4372,68 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:309 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4364,19 +4442,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4390,28 +4468,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:179 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4478,19 +4556,19 @@ msgstr "" msgid "Maximum Value" msgstr "" -#: src/pages/part/pricing/PricingPanel.tsx:25 +#: src/pages/part/pricing/PricingPanel.tsx:24 msgid "No data available" msgstr "" -#: src/pages/part/pricing/PricingPanel.tsx:66 +#: src/pages/part/pricing/PricingPanel.tsx:65 msgid "No Data" msgstr "" -#: src/pages/part/pricing/PricingPanel.tsx:67 +#: src/pages/part/pricing/PricingPanel.tsx:66 msgid "No pricing data available" msgstr "" -#: src/pages/part/pricing/PricingPanel.tsx:78 +#: src/pages/part/pricing/PricingPanel.tsx:77 msgid "Loading pricing data" msgstr "" @@ -4574,7 +4652,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4602,7 +4680,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4651,13 +4729,13 @@ msgid "Default Parts" msgstr "" #: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:336 +#: src/tables/stock/StockLocationTable.tsx:115 msgid "Edit Stock Location" msgstr "" #: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "" @@ -4677,7 +4755,7 @@ msgstr "" msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:331 msgid "Location Actions" msgstr "" @@ -4697,52 +4775,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -4750,34 +4828,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -4811,19 +4889,19 @@ msgstr "" #~ msgid "Excel" #~ msgstr "" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -4831,7 +4909,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -4896,76 +4974,83 @@ msgstr "" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5753,7 +5838,7 @@ msgstr "" msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:104 msgid "Add Part Category" msgstr "" @@ -6055,7 +6140,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6347,10 +6432,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "" @@ -6363,51 +6444,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:91 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 +msgid "Import Line Items" +msgstr "" + +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:118 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:157 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:164 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:185 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:224 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:243 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6459,10 +6545,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6548,71 +6630,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7102,7 +7184,7 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:125 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/es/messages.po b/src/frontend/src/locales/es/messages.po index 3180775b24..3df30cc563 100644 --- a/src/frontend/src/locales/es/messages.po +++ b/src/frontend/src/locales/es/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: es_MX\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-07-17 16:39\n" +"PO-Revision-Date: 2024-07-24 18:24\n" "Last-Translator: \n" "Language-Team: Spanish, Mexico\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -30,13 +30,21 @@ msgstr "Ocurrió un error mientras se renderizaba este componente. Consulte la c msgid "Title" msgstr "Titulo" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "Abrir en interfaz de administrador" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" -msgstr "Copiar al portapapeles" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "Copiado" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" +msgstr "Copiar" #: src/components/buttons/PrintingActions.tsx:93 msgid "Print Label" @@ -54,16 +62,14 @@ msgstr "Impresión de etiqueta completada con éxito" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "Sí" msgid "No" msgstr "No" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "No hay nombre definido" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "Copiado" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "Copiar" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "Quitar imagen" @@ -152,21 +150,20 @@ msgid "Remove the associated image from this item?" msgstr "¿Eliminar imagen asociada al artículo?" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "Eliminar" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "Cancelar" @@ -179,34 +176,34 @@ msgstr "Arrastra y suelta para subir" msgid "Click to select file(s)" msgstr "Clic para seleccionar archivo(s)" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "Borrar" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "Aceptar" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "Seleccionar desde imágenes existentes" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "Seleccionar imagen" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "Subir nueva imagen" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "Subir Imagen" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "Eliminar imagen" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "" @@ -321,19 +318,19 @@ msgstr "" msgid "The preview has been updated successfully." msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "" @@ -341,11 +338,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "" @@ -357,11 +354,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -397,7 +394,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "" @@ -405,17 +403,20 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "Restablecer contraseña" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "Correo electrónico" @@ -587,9 +588,10 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "Nombre" @@ -639,6 +641,32 @@ msgstr "Nombre: {0}" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "" @@ -926,6 +958,30 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1164,11 +1220,6 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1190,7 +1241,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "" @@ -1253,25 +1304,25 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "" @@ -1308,23 +1359,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "" @@ -1486,17 +1536,17 @@ msgstr "" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Órdenes de compra" @@ -1511,16 +1561,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "Ordenes de devolución" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 -msgid "Import Sessions" -msgstr "" - -#: src/components/render/ModelType.tsx:212 -msgid "Label Template" +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" msgstr "" #: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 +msgid "Import Sessions" +msgstr "" + +#: src/components/render/ModelType.tsx:220 +msgid "Label Template" +msgstr "" + +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1626,48 +1686,48 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "Inactivo" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2395,74 +2455,74 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "Sitio web" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "" @@ -2470,20 +2530,20 @@ msgstr "" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "" @@ -2664,105 +2724,106 @@ msgstr "" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2816,7 +2878,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2824,15 +2886,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2840,82 +2902,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "En Stock" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "Agregar" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -3032,7 +3094,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" @@ -3053,7 +3115,7 @@ msgstr "" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -3114,7 +3176,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3403,83 +3465,128 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "Primario" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "Activo" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "" @@ -3558,9 +3665,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3683,11 +3794,6 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3704,7 +3810,7 @@ msgstr "Ingresar" msgid "Barcodes" msgstr "Códigos de barras" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "Precios" @@ -3716,29 +3822,29 @@ msgstr "Precios" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "Etiquetas" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "Informes" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "Ordenes de Producción" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "Cambiar a Configuración de Usuario" @@ -3754,11 +3860,11 @@ msgstr "Seguridad" msgid "Display Options" msgstr "Opciones de visualización" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" @@ -3991,12 +4097,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "" msgid "Supplier" msgstr "Proveedor" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "Detalles" #: src/pages/company/CompanyDetail.tsx:175 -#~ msgid "Edit company" -#~ msgstr "Edit company" - -#: src/pages/company/CompanyDetail.tsx:176 msgid "Manufactured Parts" msgstr "" -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:175 +#~ msgid "Edit company" +#~ msgstr "Edit company" + +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -4077,192 +4183,202 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "Parámetros" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "Proveedores" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" @@ -4357,25 +4473,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "Activo" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4498,7 +4595,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "En producción" @@ -4540,25 +4637,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4824,7 +4921,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4870,64 +4967,64 @@ msgstr "" msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5044,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5097,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "Contar stock" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "Agregar stock" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "Remover stock" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "Transferir" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "Transferir stock" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5158,19 @@ msgstr "" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5178,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5243,83 @@ msgstr "" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6305,7 +6409,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6597,10 +6701,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "Añadir Artículo de Línea" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "Recibir artículos" @@ -6714,10 +6814,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "Tarifa" @@ -6803,71 +6899,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "Eliminar grupo" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "Agregar grupo" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "Editar grupo" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "Usuario agregado" msgid "Edit user" msgstr "Editar usuario" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7332,32 +7428,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/et/messages.po b/src/frontend/src/locales/et/messages.po index b2f7646085..b7d5ae4b24 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: 2024-07-17 16:39\n" +"PO-Revision-Date: 2024-07-24 18:24\n" "Last-Translator: \n" "Language-Team: Estonian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -30,13 +30,21 @@ msgstr "Selle komponendi renderdamisel tekkis viga. Lisateabe saamiseks vaadake msgid "Title" msgstr "Pealkiri" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "Ava admini liideses" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" -msgstr "Kopeeri lõikelauale" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "Kopeeritud" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" +msgstr "Kopeeri" #: src/components/buttons/PrintingActions.tsx:93 msgid "Print Label" @@ -54,16 +62,14 @@ msgstr "Sildi printimine õnnestus" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "Jah" msgid "No" msgstr "Ei" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "Nime pole määratud" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "Kopeeritud" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "Kopeeri" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "Eemalda pilt" @@ -152,21 +150,20 @@ msgid "Remove the associated image from this item?" msgstr "Kas soovite eemaldada seotud pildi sellest üksusest?" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "Eemalda" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "Tühista" @@ -179,34 +176,34 @@ msgstr "Lohista ja aseta üleslaadimiseks" msgid "Click to select file(s)" msgstr "Failide valimiseks klõpsake" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "Puhasta" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "Esita" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "Vali olemasolevatest piltidest" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "Vali pilt" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "Laadi üles uus pilt" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "Laadi pilt üles" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "Kustuta pilt" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "Pildi üleslaadimine ebaõnnestus" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "Edu" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "Malli salvestamise viga" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "Salvesta ja laadi eelvaade uuesti" @@ -321,19 +318,19 @@ msgstr "Eelvaade uuendatud" msgid "The preview has been updated successfully." msgstr "Eelvaade on edukalt uuendatud." -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "Laadi eelvaade uuesti" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "Kasuta serveris praegu salvestatud malli" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "Laadi eelvaade uuesti" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "Kasuta serveris praegu salvestatud malli" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "Salvesta praegune mall ja laadi eelvaade uuesti" @@ -341,11 +338,11 @@ msgstr "Salvesta praegune mall ja laadi eelvaade uuesti" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "Malli renderdamise viga" @@ -357,11 +354,11 @@ msgstr "Kliendi viga" msgid "Client error occurred" msgstr "Tekkis kliendi viga" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "Olekukood" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "Naase indeksilehele" @@ -397,7 +394,8 @@ msgstr "Serveri viga" msgid "A server error occurred" msgstr "Tekkis serveri viga" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "Vormiviga" @@ -405,17 +403,20 @@ msgstr "Vormiviga" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "Värskenda" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "Lähtesta salasõna" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "E-post" @@ -587,9 +588,10 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "Pealkiri" @@ -639,6 +641,32 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "Otsing" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "Laadimine" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "Kuva" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "Muuda" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "" @@ -926,6 +958,30 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1164,11 +1220,6 @@ msgstr "Versioon" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1190,7 +1241,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "" @@ -1253,25 +1304,25 @@ msgstr "" msgid "About" msgstr "Teave" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "Teavitused" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "" @@ -1308,23 +1359,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "" @@ -1486,17 +1536,17 @@ msgstr "" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1511,16 +1561,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "Kasutajad" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 -msgid "Import Sessions" -msgstr "" - -#: src/components/render/ModelType.tsx:212 -msgid "Label Template" +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" msgstr "" #: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 +msgid "Import Sessions" +msgstr "" + +#: src/components/render/ModelType.tsx:220 +msgid "Label Template" +msgstr "" + +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1626,48 +1686,48 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "Avaleht" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2395,74 +2455,74 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "Müük" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "KKK" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "" @@ -2470,20 +2530,20 @@ msgstr "" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "" @@ -2664,105 +2724,106 @@ msgstr "" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "Asukoht" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "Staatus" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "Toimingud" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2816,7 +2878,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2824,15 +2886,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2840,82 +2902,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -3032,7 +3094,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "Kas olete kindel, et soovite selle üksuse kustutada?" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" @@ -3053,7 +3115,7 @@ msgstr "" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -3114,7 +3176,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3403,83 +3465,128 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "" @@ -3558,9 +3665,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3683,11 +3794,6 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3704,7 +3810,7 @@ msgstr "Logi sisse" msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "" @@ -3716,29 +3822,29 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "" @@ -3754,11 +3860,11 @@ msgstr "" msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "Kirjeldus" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" @@ -3991,12 +4097,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "Üksikasjad" #: src/pages/company/CompanyDetail.tsx:175 -#~ msgid "Edit company" -#~ msgstr "Edit company" - -#: src/pages/company/CompanyDetail.tsx:176 msgid "Manufactured Parts" msgstr "" -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:175 +#~ msgid "Edit company" +#~ msgstr "Edit company" + +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -4077,192 +4183,202 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" @@ -4357,25 +4473,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4498,7 +4595,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4540,25 +4637,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4824,7 +4921,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4870,64 +4967,64 @@ msgstr "" msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5044,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5097,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5158,19 @@ msgstr "" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5178,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5243,83 @@ msgstr "" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6305,7 +6409,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6597,10 +6701,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6714,10 +6814,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6803,71 +6899,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7332,32 +7428,32 @@ msgstr "Näita ainult läbitud teste" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "Kaasa tulemuste alamsaidid" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "Kaasa tulemuste alamsaidid" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "Näita struktuurseid asukohti" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "Näita väliseid asukohti" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "Omab asukoha tüüpi" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "Filtreeri asukoha tüübi järgi" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "Lisa varude asukoht" diff --git a/src/frontend/src/locales/fa/messages.po b/src/frontend/src/locales/fa/messages.po index 57297bf4d6..1c678ee1a0 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: 2024-07-17 16:38\n" +"PO-Revision-Date: 2024-07-24 18:24\n" "Last-Translator: \n" "Language-Team: Persian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -30,12 +30,20 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" msgstr "" #: src/components/buttons/PrintingActions.tsx:93 @@ -54,16 +62,14 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "" msgid "No" msgstr "" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "" @@ -152,21 +150,20 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "" @@ -179,34 +176,34 @@ msgstr "" msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "" @@ -321,19 +318,19 @@ msgstr "" msgid "The preview has been updated successfully." msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "" @@ -341,11 +338,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "" @@ -357,11 +354,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -397,7 +394,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "" @@ -405,17 +403,20 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" @@ -587,9 +588,10 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -639,6 +641,32 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "" @@ -926,6 +958,30 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1164,11 +1220,6 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1190,7 +1241,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "" @@ -1253,25 +1304,25 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "" @@ -1308,23 +1359,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "" @@ -1486,17 +1536,17 @@ msgstr "" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1511,16 +1561,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 -msgid "Import Sessions" -msgstr "" - -#: src/components/render/ModelType.tsx:212 -msgid "Label Template" +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" msgstr "" #: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 +msgid "Import Sessions" +msgstr "" + +#: src/components/render/ModelType.tsx:220 +msgid "Label Template" +msgstr "" + +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1626,48 +1686,48 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2395,74 +2455,74 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "" @@ -2470,20 +2530,20 @@ msgstr "" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "" @@ -2664,105 +2724,106 @@ msgstr "" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2816,7 +2878,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2824,15 +2886,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2840,82 +2902,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -3032,7 +3094,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" @@ -3053,7 +3115,7 @@ msgstr "" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -3114,7 +3176,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3403,83 +3465,128 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "" @@ -3558,9 +3665,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3683,11 +3794,6 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3704,7 +3810,7 @@ msgstr "" msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "" @@ -3716,29 +3822,29 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "" @@ -3754,11 +3860,11 @@ msgstr "" msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" @@ -3991,12 +4097,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "" +#: src/pages/company/CompanyDetail.tsx:175 +msgid "Manufactured Parts" +msgstr "" + #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" #~ msgstr "Edit company" -#: src/pages/company/CompanyDetail.tsx:176 -msgid "Manufactured Parts" -msgstr "" - -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -4077,192 +4183,202 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" @@ -4357,25 +4473,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4498,7 +4595,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4540,25 +4637,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4824,7 +4921,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4870,64 +4967,64 @@ msgstr "" msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5044,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5097,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5158,19 @@ msgstr "" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5178,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5243,83 @@ msgstr "" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6305,7 +6409,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6597,10 +6701,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6714,10 +6814,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6803,71 +6899,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7332,32 +7428,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/fi/messages.po b/src/frontend/src/locales/fi/messages.po index f8acab25a8..f707c240fd 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: 2024-07-17 16:37\n" +"PO-Revision-Date: 2024-07-24 18:22\n" "Last-Translator: \n" "Language-Team: Finnish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -30,12 +30,20 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" msgstr "" #: src/components/buttons/PrintingActions.tsx:93 @@ -54,16 +62,14 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "" msgid "No" msgstr "" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "" @@ -152,21 +150,20 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "" @@ -179,34 +176,34 @@ msgstr "" msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "" @@ -321,19 +318,19 @@ msgstr "" msgid "The preview has been updated successfully." msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "" @@ -341,11 +338,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "" @@ -357,11 +354,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -397,7 +394,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "" @@ -405,17 +403,20 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" @@ -587,9 +588,10 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -639,6 +641,32 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "" @@ -926,6 +958,30 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1164,11 +1220,6 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1190,7 +1241,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "" @@ -1253,25 +1304,25 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "" @@ -1308,23 +1359,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "" @@ -1486,17 +1536,17 @@ msgstr "" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1511,16 +1561,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 -msgid "Import Sessions" -msgstr "" - -#: src/components/render/ModelType.tsx:212 -msgid "Label Template" +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" msgstr "" #: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 +msgid "Import Sessions" +msgstr "" + +#: src/components/render/ModelType.tsx:220 +msgid "Label Template" +msgstr "" + +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1626,48 +1686,48 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2395,74 +2455,74 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "" @@ -2470,20 +2530,20 @@ msgstr "" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "" @@ -2664,105 +2724,106 @@ msgstr "" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2816,7 +2878,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2824,15 +2886,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2840,82 +2902,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -3032,7 +3094,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" @@ -3053,7 +3115,7 @@ msgstr "" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -3114,7 +3176,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3403,83 +3465,128 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "" @@ -3558,9 +3665,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3683,11 +3794,6 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3704,7 +3810,7 @@ msgstr "" msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "" @@ -3716,29 +3822,29 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "" @@ -3754,11 +3860,11 @@ msgstr "" msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" @@ -3991,12 +4097,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "" +#: src/pages/company/CompanyDetail.tsx:175 +msgid "Manufactured Parts" +msgstr "" + #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" #~ msgstr "Edit company" -#: src/pages/company/CompanyDetail.tsx:176 -msgid "Manufactured Parts" -msgstr "" - -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -4077,192 +4183,202 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" @@ -4357,25 +4473,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4498,7 +4595,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4540,25 +4637,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4824,7 +4921,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4870,64 +4967,64 @@ msgstr "" msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5044,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5097,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5158,19 @@ msgstr "" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5178,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5243,83 @@ msgstr "" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6305,7 +6409,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6597,10 +6701,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6714,10 +6814,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6803,71 +6899,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7332,32 +7428,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/fr/messages.po b/src/frontend/src/locales/fr/messages.po index 198c66e371..d08d74cab8 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: 2024-07-17 16:37\n" +"PO-Revision-Date: 2024-07-25 18:20\n" "Last-Translator: \n" "Language-Team: French\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" @@ -30,13 +30,21 @@ msgstr "Une erreur s'est produite lors du rendu de ce composant. Reportez-vous msgid "Title" msgstr "Titre" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "Ouvrir dans l'interface d'administration" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" -msgstr "Copier dans le Presse-papier" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "Copié" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" +msgstr "Copier" #: src/components/buttons/PrintingActions.tsx:93 msgid "Print Label" @@ -44,7 +52,7 @@ msgstr "Imprimer l'étiquette" #: src/components/buttons/PrintingActions.tsx:99 msgid "Print" -msgstr "" +msgstr "Imprimer" #: src/components/buttons/PrintingActions.tsx:100 msgid "Label printing completed successfully" @@ -54,16 +62,14 @@ msgstr "Impression terminée avec succès" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -79,7 +85,7 @@ msgstr "Imprimer le rapport" #: src/components/buttons/PrintingActions.tsx:138 msgid "Generate" -msgstr "" +msgstr "Générer" #: src/components/buttons/PrintingActions.tsx:139 msgid "Report printing completed successfully" @@ -131,18 +137,10 @@ msgstr "Oui" msgid "No" msgstr "Non" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "Aucun nom défini" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "Copié" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "Copier" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "Supprimer l'image" @@ -152,21 +150,20 @@ msgid "Remove the associated image from this item?" msgstr "Supprimer l'image associée de cet élément ?" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "Supprimer" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "Annuler" @@ -179,34 +176,34 @@ msgstr "Glisser et déposer pour télécharger" msgid "Click to select file(s)" msgstr "Cliquer pour sélectionner le(s) fichier(s)" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "Effacer" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "Envoyer" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "Sélectionner parmi les images existantes" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "Sélectionner une Image" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "Téléverser une nouvelle image" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "Charger une image" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "Supprimer l'image" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "Le téléchargement de l'image a échoué" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "Succès" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "Erreur lors de l'enregistrement du modèle" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "Enregistrer & Recharger l'aperçu" @@ -307,7 +304,7 @@ msgstr "Êtes-vous sûr de vouloir enregistrer et recharger l'aperçu ?" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:153 msgid "To render the preview the current template needs to be replaced on the server with your modifications which may break the label if it is under active use. Do you want to proceed?" -msgstr "" +msgstr "Pour afficher l'aperçu, le modèle actuel doit être remplacé sur le serveur par vos modifications qui peuvent casser l'étiquette s'il est en cours d'utilisation. Voulez-vous continuer ?" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:157 msgid "Save & Reload" @@ -321,19 +318,19 @@ msgstr "Aperçu mis à jour" msgid "The preview has been updated successfully." msgstr "L'aperçu a été mis à jour avec succès." -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "Recharger l’aperçu" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "Utiliser le modèle actuellement stocké sur le serveur" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "Recharger l’aperçu" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "Utiliser le modèle actuellement stocké sur le serveur" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "Enregistrer le modèle actuel et recharger l'aperçu" @@ -341,63 +338,64 @@ msgstr "Enregistrer le modèle actuel et recharger l'aperçu" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "Sélectionner l'instance à prévisualiser" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "Erreur de rendu du modèle" #: src/components/errors/ClientError.tsx:23 msgid "Client Error" -msgstr "" +msgstr "Erreur client" #: src/components/errors/ClientError.tsx:24 msgid "Client error occurred" -msgstr "" +msgstr "Une erreur client est survenue" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" -msgstr "" +msgstr "Code d'état" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" -msgstr "" +msgstr "Retour à la page d'index" #: src/components/errors/NotAuthenticated.tsx:8 msgid "Not Authenticated" -msgstr "" +msgstr "Non authentifié" #: src/components/errors/NotAuthenticated.tsx:9 msgid "You are not logged in." -msgstr "" +msgstr "Vous n'êtes pas connecté." #: src/components/errors/NotFound.tsx:8 msgid "Page Not Found" -msgstr "" +msgstr "Page introuvable" #: src/components/errors/NotFound.tsx:9 msgid "This page does not exist" -msgstr "" +msgstr "Cette page n'existe pas" #: src/components/errors/PermissionDenied.tsx:8 msgid "Permission Denied" -msgstr "" +msgstr "Permission refusée" #: src/components/errors/PermissionDenied.tsx:9 msgid "You do not have permission to view this page." -msgstr "" +msgstr "Vous n’avez pas la permission de voir cette page." #: src/components/errors/ServerError.tsx:8 msgid "Server Error" -msgstr "" +msgstr "Erreur serveur" #: src/components/errors/ServerError.tsx:9 msgid "A server error occurred" -msgstr "" +msgstr "Une erreur serveur s'est produite" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "Erreur de formulaire" @@ -405,17 +403,20 @@ msgstr "Erreur de formulaire" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "Il existe des erreurs pour un ou plusieurs champs du formulaire" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "Mise à jour" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "Réinitialiser le mot de passe" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "Email" @@ -587,9 +588,10 @@ msgstr "Serveur" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "Serveur" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "Nom" @@ -639,6 +641,32 @@ msgstr "Nom : {0}" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "Aucune icône sélectionnée" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "Non catégorisé" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "Rechercher..." + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "Sélectionner une catégorie" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "Sélectionnez le pack" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "Icônes {0}" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "Rechercher" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "Chargement" @@ -658,7 +686,7 @@ msgstr "Aucun résultat trouvé" #: src/components/forms/fields/TableField.tsx:52 msgid "modelRenderer entry required for tables" -msgstr "" +msgstr "Entrée modelRenderer requise pour les tables" #: src/components/forms/fields/TableField.tsx:76 msgid "No entries available" @@ -675,69 +703,69 @@ msgstr "Miniature" #: src/components/importer/ImportDataSelector.tsx:166 msgid "Importing Rows" -msgstr "" +msgstr "Importation des lignes" #: src/components/importer/ImportDataSelector.tsx:167 msgid "Please wait while the data is imported" -msgstr "" +msgstr "Veuillez patienter pendant que les données sont importées" #: src/components/importer/ImportDataSelector.tsx:184 msgid "An error occurred while importing data" -msgstr "" +msgstr "Une erreur est survenue lors de l’importation des données" #: src/components/importer/ImportDataSelector.tsx:205 msgid "Edit Data" -msgstr "" +msgstr "Éditer les données" #: src/components/importer/ImportDataSelector.tsx:233 msgid "Delete Row" -msgstr "" +msgstr "Supprimer cette ligne" #: src/components/importer/ImportDataSelector.tsx:263 msgid "Row" -msgstr "" +msgstr "Ligne" #: src/components/importer/ImportDataSelector.tsx:281 msgid "Row contains errors" -msgstr "" +msgstr "La ligne contient des erreurs" #: src/components/importer/ImportDataSelector.tsx:322 msgid "Accept" -msgstr "" +msgstr "Accepter" #: src/components/importer/ImportDataSelector.tsx:355 msgid "Valid" -msgstr "" +msgstr "Valide" #: src/components/importer/ImportDataSelector.tsx:356 msgid "Filter by row validation status" -msgstr "" +msgstr "Filtrer par état de validation de ligne" #: src/components/importer/ImportDataSelector.tsx:361 #: src/tables/build/BuildOutputTable.tsx:205 msgid "Complete" -msgstr "" +msgstr "Complet" #: src/components/importer/ImportDataSelector.tsx:362 msgid "Filter by row completion status" -msgstr "" +msgstr "Filtrer par statut de complétion de ligne" #: src/components/importer/ImportDataSelector.tsx:379 msgid "Import selected rows" -msgstr "" +msgstr "Importer les lignes sélectionnées" #: src/components/importer/ImportDataSelector.tsx:394 msgid "Processing Data" -msgstr "" +msgstr "Traitement des données..." #: src/components/importer/ImporterColumnSelector.tsx:50 #: src/components/importer/ImporterColumnSelector.tsx:176 msgid "An error occurred" -msgstr "" +msgstr "Une erreur s'est produite" #: src/components/importer/ImporterColumnSelector.tsx:62 msgid "Select column, or leave blank to ignore this field." -msgstr "" +msgstr "Sélectionnez la colonne, ou laissez vide pour ignorer ce champ." #: src/components/importer/ImporterColumnSelector.tsx:91 #~ msgid "Select a column from the data file" @@ -753,51 +781,51 @@ msgstr "" #: src/components/importer/ImporterColumnSelector.tsx:182 msgid "Ignore this field" -msgstr "" +msgstr "Ignorer ce champ" #: src/components/importer/ImporterColumnSelector.tsx:196 msgid "Mapping data columns to database fields" -msgstr "" +msgstr "Mappage des colonnes de données aux champs de la base de données" #: src/components/importer/ImporterColumnSelector.tsx:201 msgid "Accept Column Mapping" -msgstr "" +msgstr "Accepter le mappage des colonnes" #: src/components/importer/ImporterColumnSelector.tsx:214 msgid "Database Field" -msgstr "" +msgstr "Champ de base de données" #: src/components/importer/ImporterColumnSelector.tsx:215 msgid "Field Description" -msgstr "" +msgstr "Description du champs" #: src/components/importer/ImporterColumnSelector.tsx:216 msgid "Imported Column" -msgstr "" +msgstr "Colonne importée" #: src/components/importer/ImporterColumnSelector.tsx:217 msgid "Default Value" -msgstr "" +msgstr "Valeur par Défaut" #: src/components/importer/ImporterDrawer.tsx:45 msgid "Upload File" -msgstr "" +msgstr "Transférer un fichier" #: src/components/importer/ImporterDrawer.tsx:46 msgid "Map Columns" -msgstr "" +msgstr "Mapper les colonnes" #: src/components/importer/ImporterDrawer.tsx:47 msgid "Import Data" -msgstr "" +msgstr "Importer les données" #: src/components/importer/ImporterDrawer.tsx:48 msgid "Process Data" -msgstr "" +msgstr "Traiter les données" #: src/components/importer/ImporterDrawer.tsx:49 msgid "Complete Import" -msgstr "" +msgstr "Finaliser l’importation" #: src/components/importer/ImporterDrawer.tsx:97 #~ msgid "Cancel import session" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "Actions de code-barres" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "Vue" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "Voir le code-barre" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "Lier le code-barre" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "Lier un code-barre personnalisé" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "Délier le code-barre" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "Délier le code-barres personnalisé" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "Éditer" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "Supprimer l’article" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "Dupliquer" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "Dupliquer l'article" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "En Savoir Plus" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "Erreur inconnue" @@ -926,6 +958,30 @@ msgstr "PLH" msgid "This panel is a placeholder." msgstr "" +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "Information sur la version" @@ -1164,11 +1220,6 @@ msgstr "Version" msgid "Server Version" msgstr "Version du serveur" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "Rechercher..." - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "Aucun résultat trouvé..." @@ -1190,7 +1241,7 @@ msgstr "Paramètres du compte" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "Les paramètres du système" @@ -1253,25 +1304,25 @@ msgstr "Documentation" msgid "About" msgstr "À propos" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "Notifications" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "Vous n'avez pas de notifications non lues." -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "Notification" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "Marqué comme lu" @@ -1308,23 +1359,23 @@ msgstr "Aucun résultat" msgid "No results available for search query" msgstr "Aucun résultat disponible pour la requête" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "Modèle inconnu : {model}" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "Pièce" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "Composants" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "Modèles de test de pièces" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "Pièces du fournisseur" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "Pièces du fabricant" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "Pièces du fabricant" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "Catégorie de composant" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "Catégories de composants" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "Article en stock" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "Articles en stock" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "Emplacement du stock" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "Emplacements de stock" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "Historique du stock" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "Construction" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "Société" @@ -1486,17 +1536,17 @@ msgstr "Codes du projet" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "Commande d’achat" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Ordres d'achat" @@ -1511,16 +1561,16 @@ msgstr "Lignes de commande d'achat" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "Ventes" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Ordres de vente" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "Retour de commande" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "Retours" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "Adresse" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "Adresses" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "Contact" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "Contacts" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "Utilisateurs" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" +msgstr "Groupes" + +#: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:212 +#: src/components/render/ModelType.tsx:220 msgid "Label Template" msgstr "" -#: src/components/render/ModelType.tsx:213 +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1626,48 +1686,48 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "Inactif" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "Aucun stock" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "Stock" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "Numéro de série" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2140,35 +2200,35 @@ msgstr "" #: src/contexts/LanguageContext.tsx:25 msgid "Greek" -msgstr "" +msgstr "Grecque" #: src/contexts/LanguageContext.tsx:26 msgid "English" -msgstr "" +msgstr "Anglais" #: src/contexts/LanguageContext.tsx:27 msgid "Spanish" -msgstr "" +msgstr "Espagnol" #: src/contexts/LanguageContext.tsx:28 msgid "Spanish (Mexican)" -msgstr "" +msgstr "Espagnol (Mexique)" #: src/contexts/LanguageContext.tsx:29 msgid "Estonian" -msgstr "" +msgstr "Estonien" #: src/contexts/LanguageContext.tsx:30 msgid "Farsi / Persian" -msgstr "" +msgstr "Farsi / Persan" #: src/contexts/LanguageContext.tsx:31 msgid "Finnish" -msgstr "" +msgstr "Finlandais" #: src/contexts/LanguageContext.tsx:32 msgid "French" -msgstr "" +msgstr "Francais" #: src/contexts/LanguageContext.tsx:33 msgid "Hebrew" @@ -2188,19 +2248,19 @@ msgstr "" #: src/contexts/LanguageContext.tsx:37 msgid "Japanese" -msgstr "" +msgstr "Japonais" #: src/contexts/LanguageContext.tsx:38 msgid "Korean" -msgstr "" +msgstr "Corean" #: src/contexts/LanguageContext.tsx:39 msgid "Latvian" -msgstr "" +msgstr "Letton" #: src/contexts/LanguageContext.tsx:40 msgid "Dutch" -msgstr "" +msgstr "Néerlandais" #: src/contexts/LanguageContext.tsx:41 msgid "Norwegian" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "Chinois (Traditionnel)" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "Page d’accueil" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "À propos d'InvenTree" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "À propos d'InvenTree" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "À propos de cette instance Inventree" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2395,74 +2455,74 @@ msgstr "Actualités en cours" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "Site web" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "GitHub" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "Démo" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "Achat en cours" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "Ventes" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "Le terrain de jeux" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "Premiers Pas" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "Démarrer avec InvenTree" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "API" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "Documentation de l'API d'InvenTree" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "Manuel du développeur" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "Manuel du développeur InvenTree" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "FAQ" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "Foire aux questions" @@ -2470,20 +2530,20 @@ msgstr "Foire aux questions" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "Informations système" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "Informations système" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "Licences" @@ -2664,105 +2724,106 @@ msgstr "Catégorie de pièce parente" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "Status" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "Actions" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2816,7 +2878,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "Ajouter une quantité en paquet au lieu de pièces individuelles" @@ -2824,15 +2886,15 @@ msgstr "Ajouter une quantité en paquet au lieu de pièces individuelles" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "Entrez la quantité initiale pour cet article en stock" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "Numéros de Série" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 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)" @@ -2840,82 +2902,82 @@ msgstr "Entrez les numéros de série pour le nouveau stock (ou laisser vide)" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "Ajouter un article en stock" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -3032,7 +3094,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "Vérifier si vous êtes déjà connecté" @@ -3053,7 +3115,7 @@ msgstr "" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -3114,7 +3176,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3403,83 +3465,128 @@ msgstr "Nom de famille:" msgid "Use pseudo language" msgstr "Utiliser une pseudo langue" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "Non activé" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "Multifacteur" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "L'authentification multifacteurs n'est pas configurée pour votre compte" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "Les adresses de messagerie suivantes sont associées à votre compte :" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "Principale" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "Vérifiée" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "Non vérifiée" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "Ajouter une adresse email" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "E-mail" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "Adresse e-mail" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "Rendre Principale" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "Renvoyer le message de vérification" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "Ajouter l’e-mail" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "Le fournisseur n'a pas été configuré" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "Non configuré" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "Aucun compte de réseau social n'est connecté à ce compte." -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "Vous pouvez vous connecter à votre compte, utilisez l’un des comptes tiers suivants" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "barres" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "Unités personnalisées" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "Paramètres de la pièce" @@ -3558,9 +3665,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3683,11 +3794,6 @@ msgstr "Tâches en échec" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "Groupes" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3704,7 +3810,7 @@ msgstr "" msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "" @@ -3716,29 +3822,29 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "Ordres de fabrication" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "" @@ -3754,11 +3860,11 @@ msgstr "" msgid "Display Options" msgstr "Options d’affichage" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "Paramètres du compte" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" @@ -3991,12 +4097,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "" +#: src/pages/company/CompanyDetail.tsx:175 +msgid "Manufactured Parts" +msgstr "" + #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" #~ msgstr "Edit company" -#: src/pages/company/CompanyDetail.tsx:176 -msgid "Manufactured Parts" -msgstr "" - -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -4077,192 +4183,202 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" @@ -4357,25 +4473,6 @@ msgstr "Peut être construit" msgid "Building" msgstr "Construire" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "Fournisseur par Défaut" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "Variants" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "Allocations" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4498,7 +4595,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4540,25 +4637,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "" msgid "Total Price" msgstr "Prix total" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4824,7 +4921,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4870,64 +4967,64 @@ msgstr "" msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5044,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5097,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5158,19 @@ msgstr "Sélectionner les colonnes" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "CSV" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "CSV" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "TSV" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5178,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5243,83 @@ msgstr "Ajouter un filtre" msgid "Clear Filters" msgstr "Effacer filtres" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "Pas d'enregistrement trouvé" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "Le serveur à retourner un type de donnée incorrect" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "Requête invalide" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "Non autorisé" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "Accès interdit" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "Elément non trouvé" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "Supprimer les enregistrements sélectionnés" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" -msgstr "Êtes-vous sûr de vouloir supprimer les enregistrements sélectionnés ?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "Cette action ne peut pas être annulée !" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "Enregistrement supprimé" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "Les enregistrements ont été supprimés avec succès" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "Échec de la suppression des enregistrements" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "Actions de code-barres" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "Supprimer les enregistrements sélectionnés" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "Actualiser les données" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "Filtres de tableau" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6305,7 +6409,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6597,10 +6701,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6714,10 +6814,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6803,71 +6899,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7332,32 +7428,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/he/messages.po b/src/frontend/src/locales/he/messages.po index 38dda585fe..2369193887 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: 2024-07-17 16:37\n" +"PO-Revision-Date: 2024-07-24 18:23\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" @@ -30,12 +30,20 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" msgstr "" #: src/components/buttons/PrintingActions.tsx:93 @@ -54,16 +62,14 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "" msgid "No" msgstr "" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "" @@ -152,21 +150,20 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "" @@ -179,34 +176,34 @@ msgstr "" msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "" @@ -321,19 +318,19 @@ msgstr "" msgid "The preview has been updated successfully." msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "" @@ -341,11 +338,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "" @@ -357,11 +354,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -397,7 +394,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "" @@ -405,17 +403,20 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" @@ -587,9 +588,10 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -639,6 +641,32 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "" @@ -926,6 +958,30 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1164,11 +1220,6 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1190,7 +1241,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "" @@ -1253,25 +1304,25 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "" @@ -1308,23 +1359,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "" @@ -1486,17 +1536,17 @@ msgstr "" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1511,16 +1561,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 -msgid "Import Sessions" -msgstr "" - -#: src/components/render/ModelType.tsx:212 -msgid "Label Template" +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" msgstr "" #: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 +msgid "Import Sessions" +msgstr "" + +#: src/components/render/ModelType.tsx:220 +msgid "Label Template" +msgstr "" + +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1626,48 +1686,48 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2395,74 +2455,74 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "" @@ -2470,20 +2530,20 @@ msgstr "" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "" @@ -2664,105 +2724,106 @@ msgstr "" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2816,7 +2878,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2824,15 +2886,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2840,82 +2902,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -3032,7 +3094,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" @@ -3053,7 +3115,7 @@ msgstr "" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -3114,7 +3176,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3403,83 +3465,128 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "" @@ -3558,9 +3665,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3683,11 +3794,6 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3704,7 +3810,7 @@ msgstr "" msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "" @@ -3716,29 +3822,29 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "" @@ -3754,11 +3860,11 @@ msgstr "" msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" @@ -3991,12 +4097,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "" +#: src/pages/company/CompanyDetail.tsx:175 +msgid "Manufactured Parts" +msgstr "" + #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" #~ msgstr "Edit company" -#: src/pages/company/CompanyDetail.tsx:176 -msgid "Manufactured Parts" -msgstr "" - -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -4077,192 +4183,202 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" @@ -4357,25 +4473,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4498,7 +4595,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4540,25 +4637,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4824,7 +4921,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4870,64 +4967,64 @@ msgstr "" msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5044,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5097,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5158,19 @@ msgstr "" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5178,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5243,83 @@ msgstr "" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6305,7 +6409,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6597,10 +6701,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6714,10 +6814,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6803,71 +6899,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7332,32 +7428,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/hi/messages.po b/src/frontend/src/locales/hi/messages.po index 807ac36cf7..66f8423e2c 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: 2024-07-17 16:39\n" +"PO-Revision-Date: 2024-07-24 18:24\n" "Last-Translator: \n" "Language-Team: Hindi\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -30,12 +30,20 @@ msgstr "" msgid "Title" msgstr "शीर्षक" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" msgstr "" #: src/components/buttons/PrintingActions.tsx:93 @@ -54,16 +62,14 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "हाँ" msgid "No" msgstr "" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "" @@ -152,21 +150,20 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "" @@ -179,34 +176,34 @@ msgstr "" msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "" @@ -321,19 +318,19 @@ msgstr "" msgid "The preview has been updated successfully." msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "" @@ -341,11 +338,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "" @@ -357,11 +354,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -397,7 +394,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "" @@ -405,17 +403,20 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "पासवर्ड रीसेट करें" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "ई-मेल" @@ -587,9 +588,10 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "नाम" @@ -639,6 +641,32 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "" @@ -926,6 +958,30 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1164,11 +1220,6 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1190,7 +1241,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "" @@ -1253,25 +1304,25 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "" @@ -1308,23 +1359,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "" @@ -1486,17 +1536,17 @@ msgstr "" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1511,16 +1561,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 -msgid "Import Sessions" -msgstr "" - -#: src/components/render/ModelType.tsx:212 -msgid "Label Template" +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" msgstr "" #: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 +msgid "Import Sessions" +msgstr "" + +#: src/components/render/ModelType.tsx:220 +msgid "Label Template" +msgstr "" + +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1626,48 +1686,48 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2395,74 +2455,74 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "" @@ -2470,20 +2530,20 @@ msgstr "" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "" @@ -2664,105 +2724,106 @@ msgstr "" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2816,7 +2878,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2824,15 +2886,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2840,82 +2902,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -3032,7 +3094,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" @@ -3053,7 +3115,7 @@ msgstr "" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -3114,7 +3176,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3403,83 +3465,128 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "" @@ -3558,9 +3665,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3683,11 +3794,6 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3704,7 +3810,7 @@ msgstr "" msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "" @@ -3716,29 +3822,29 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "" @@ -3754,11 +3860,11 @@ msgstr "" msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" @@ -3991,12 +4097,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "" +#: src/pages/company/CompanyDetail.tsx:175 +msgid "Manufactured Parts" +msgstr "" + #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" #~ msgstr "Edit company" -#: src/pages/company/CompanyDetail.tsx:176 -msgid "Manufactured Parts" -msgstr "" - -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -4077,192 +4183,202 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" @@ -4357,25 +4473,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4498,7 +4595,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4540,25 +4637,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4824,7 +4921,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4870,64 +4967,64 @@ msgstr "" msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5044,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5097,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5158,19 @@ msgstr "" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5178,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5243,83 @@ msgstr "" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6305,7 +6409,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6597,10 +6701,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6714,10 +6814,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6803,71 +6899,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7332,32 +7428,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/hu/messages.po b/src/frontend/src/locales/hu/messages.po index f92bfac596..79d7c37e30 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: 2024-07-17 16:38\n" +"PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Hungarian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -20,23 +20,31 @@ msgstr "" #: src/components/Boundary.tsx:12 msgid "Error rendering component" -msgstr "" +msgstr "Hiba a komponens renderelése közben" #: src/components/Boundary.tsx:14 msgid "An error occurred while rendering this component. Refer to the console for more information." -msgstr "" +msgstr "Hiba történt ennek a komponensnek a renderelése közben. Nézze a konzolt további információkért." #: src/components/DashboardItemProxy.tsx:34 msgid "Title" msgstr "Cím" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" -msgstr "" +msgstr "Megnyitás adminisztrátori felületen" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" -msgstr "Vágólapra másolás" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "Másolva" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" +msgstr "Másolás" #: src/components/buttons/PrintingActions.tsx:93 msgid "Print Label" @@ -54,16 +62,14 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "Igen" msgid "No" msgstr "Nem" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "Másolva" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "Másolás" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "Kép eltávolítása" @@ -152,21 +150,20 @@ msgid "Remove the associated image from this item?" msgstr "Tételhez rendelt kép eltávolítása?" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "Eltávolítás" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "Mégsem" @@ -179,34 +176,34 @@ msgstr "Húzd ide a feltöltéshez" msgid "Click to select file(s)" msgstr "Kattintson a file(ok) kiválasztásához" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "Törlés" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "Küldés" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "Válassz a meglévő képek közül" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "Válassz képet" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "Új kép feltöltése" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "Kép feltöltése" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "Kép törlése" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "Siker" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "Hiba a sablon mentése közben" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "" @@ -321,19 +318,19 @@ msgstr "Előnézet frissítve" msgid "The preview has been updated successfully." msgstr "A előnézet sikeresen frissitve." -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "Előnézet frissítése" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "A szerveren tárolt sablon használata" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "Előnézet frissítése" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "A szerveren tárolt sablon használata" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "Aktuális sablon elmentése és előnézet frissítése" @@ -341,11 +338,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:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "Hiba a sablon megjelenítésekor" @@ -357,11 +354,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -397,7 +394,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "Form hiba" @@ -405,17 +403,20 @@ msgstr "Form hiba" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "Frissítés" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "Jelszó visszaállítása" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "Email" @@ -587,9 +588,10 @@ msgstr "Kiszolgáló" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "Kiszolgáló" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "Név" @@ -639,6 +641,32 @@ msgstr "Név: {0}" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "Státusz: <0>worker ({0}), <1>plugins{1}" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "Keresés" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "Betöltés" @@ -828,59 +856,62 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 -#: src/pages/build/BuildDetail.tsx:370 +#: src/components/items/ActionDropdown.tsx:124 msgid "Barcode Actions" msgstr "Vonalkód műveletek" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "Megtekintés" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "Vonalkód megtekintése" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "Vonalkód hozzárendelése" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "Egyedi vonalkód hozzárendelése" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "Vonalkód leválasztása" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "Egyedi vonalkód leválasztása" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "Szerkesztés" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "Tétel törlése" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "Másolás" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "Elem másolása" @@ -889,7 +920,7 @@ msgid "Read More" msgstr "Tudj meg többet" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "Ismeretlen hiba" @@ -926,6 +957,30 @@ msgstr "PLH" msgid "This panel is a placeholder." msgstr "Ez egy helykitöltő panel." +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "Verzióinformáció" @@ -1164,11 +1219,6 @@ msgstr "Verzió" msgid "Server Version" msgstr "Szerver verziója" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1190,7 +1240,7 @@ msgstr "Fiókbeállítások" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "Rendszerbeállítások" @@ -1253,25 +1303,25 @@ msgstr "Dokumentáció" msgid "About" msgstr "Névjegy" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "Értesítések" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "Nincs olvasatlan értesítésed." -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "Értesítés" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "Megjelölés olvasottként" @@ -1308,23 +1358,23 @@ msgstr "Nincs találat" msgid "No results available for search query" msgstr "Nincs találat a keresésre" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "Ismeretlen model: {model}" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/build/BuildDetail.tsx:88 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1383,12 @@ msgid "Part" msgstr "Alkatrész" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "Alkatrészek" @@ -1360,9 +1410,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1423,7 @@ msgid "Supplier Parts" msgstr "Beszállítói alkatrészek" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "Gyártói alkatrész" @@ -1382,29 +1432,28 @@ msgid "Manufacturer Parts" msgstr "Gyártói alkatrészek" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "Alkatrész kategória" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "Alkatrész kategóriák" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "Készlet tétel" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "Készlet tételek" @@ -1413,9 +1462,9 @@ msgid "Stock Location" msgstr "Készlet hely" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "Készlethelyek" @@ -1436,7 +1485,7 @@ msgid "Stock Histories" msgstr "Készlettörténet" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "Gyártás" @@ -1462,7 +1511,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "Cég" @@ -1486,17 +1535,17 @@ msgstr "Projektszámok" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "Beszerzési rendelés" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Beszerzési rendelések" @@ -1509,18 +1558,18 @@ msgid "Purchase Order Lines" msgstr "Beszerzési rendelés tételei" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/build/BuildDetail.tsx:136 +#: src/pages/sales/SalesOrderDetail.tsx:363 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "Vevői rendelés" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Vevői rendelések" @@ -1533,15 +1582,15 @@ msgid "Sales Order Shipments" msgstr "Vevői rendelés szállítmányok" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "Visszavétel" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "Visszavételek" @@ -1551,19 +1600,19 @@ msgid "Address" msgstr "Cím" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "Címek" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "Kapcsolat" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "Kapcsolatok" @@ -1576,7 +1625,7 @@ msgid "Owners" msgstr "Tulajdonosok" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1638,46 @@ msgid "Users" msgstr "Felhasználók" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" +msgstr "Csoportok" + +#: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:212 +#: src/components/render/ModelType.tsx:220 msgid "Label Template" msgstr "" -#: src/components/render/ModelType.tsx:213 +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1626,48 +1685,48 @@ msgstr "" msgid "Shipment" msgstr "Szállítmány" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "Inaktív" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "Nincs készlet" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "Készlet" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "Sorozatszám" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2322,13 @@ msgid "Chinese (Traditional)" msgstr "Kínai (Hagyományos)" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "Főoldal" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2344,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "InvenTree névjegy" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "Az inventree.org-ról" @@ -2300,17 +2359,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "InvenTree példány névjegye" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2395,74 +2454,74 @@ msgstr "Jelenlegi hírek" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "Weboldal" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "GitHub" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "Demó" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "Beszerzés" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/ReturnOrderDetail.tsx:350 +#: src/pages/sales/SalesIndex.tsx:53 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "Eladás" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "Játszótér" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "Első lépések" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "Első lépések az InvenTree-vel" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "API" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "InvenTree API dokumentáció" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "Fejlesztői dokumentáció" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "InvenTree fejlesztői dokumentáció" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "GYIK" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "Gyakran ismételt kérdések" @@ -2470,20 +2529,20 @@ msgstr "Gyakran ismételt kérdések" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "Rendszerinformáció" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "Rendszerinformáció" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "Licencek" @@ -2664,151 +2723,153 @@ msgstr "Felsőbb szintű alkatrész kategória" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "Hely" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "Alapértelmezett helyre tárolás" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "Tárolás a tétel sor célhelyén" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "Tárolás a már megérkezett készlettel" -#: src/forms/PurchaseOrderForms.tsx:524 -#: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/forms/PurchaseOrderForms.tsx:521 +#: src/pages/build/BuildDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 -#: src/pages/build/BuildDetail.tsx:93 +#: src/forms/PurchaseOrderForms.tsx:553 +#: src/pages/build/BuildDetail.tsx:94 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "Állapot" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "Fogadott" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "Műveletek" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2816,7 +2877,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 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" @@ -2824,15 +2885,15 @@ msgstr "Mennyiség hozzáadása csomagolási egységenként egyedi tételek hely #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 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:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "Sorozatszámok" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 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)" @@ -2840,82 +2901,82 @@ msgstr "Add meg az új készlet tételhez tartozó sorozatszámokat (vagy hagyd #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "Új készlet tétel" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "Mozgatás az alapértelmezett helyre" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "Készleten" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "Áthelyezés" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "Hozzáadás" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "Mennyiség" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "Készlethez ad" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "Készlet csökkentése" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "Készlet áthelyezése" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "Leltározás" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "Készlet állapot módosítása" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "Készlet összevonása" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "Készlet tétel törlése" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "Szülő készlet hely" @@ -3032,7 +3093,7 @@ msgstr "Elem törölve" msgid "Are you sure you want to delete this item?" msgstr "Biztosan törli ezt az elemet?" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "Ellenőrzöm hogy be vagy-e már jelentkezve" @@ -3053,7 +3114,7 @@ msgstr "Regisztráljon alább" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "Kijelentkezés" @@ -3114,7 +3175,7 @@ msgstr "Ez az oldal helyettesíti a régi kezdőoldalt, ugyanazokkal az informá msgid "Welcome to your Dashboard{0}" msgstr "Irányítópult: {0}" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "Ez az oldal a Platform UI lehetőségeit mutatja be." @@ -3403,83 +3464,128 @@ msgstr "Vezetéknév:" msgid "Use pseudo language" msgstr "Használj pszeudo nyelvet" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "Központi beléptetési fiókok" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "Nem engedélyezett" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "Sso nincs engedélyezve ezen a szerveren" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "Többfaktoros" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "Többfaktoros autentikáció nincs beállítva a fiókodhoz" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "A következő email címek vannak hozzárendelve a felhasználódhoz:" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "Elsődleges" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "Ellenőrizve" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "Nem ellenőrzött" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "Email cím hozzáadása" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "E-mail cím" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "Email cím" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "Legyen elsődleges" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "Megerősítés újraküldése" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "Email hozzáadása" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "A kiszolgáló nincs konfigurálva" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "Nincs beállítva" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "Jelenleg nincs ehhez a fiókhoz kapcsolódó közösségi fiókod." -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "Fiókodba a következő harmadik fél fiókjainak bármelyikével bejelentkezhetsz" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "Aktív" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "oszlopok" @@ -3549,7 +3655,7 @@ msgid "Custom Units" msgstr "Egyedi mértékegységek" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "Alkatrész paraméterek" @@ -3558,9 +3664,13 @@ msgid "Category Parameters" msgstr "Kategória paraméterek" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3683,11 +3793,6 @@ msgstr "Hibás feladatok" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "Csoportok" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "Válassza ki a felhasználói életciklusre vonatkozó beállításokat. További információ" @@ -3704,7 +3809,7 @@ msgstr "Bejelentkezés" msgid "Barcodes" msgstr "Vonalkódok" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "Árazás" @@ -3716,29 +3821,29 @@ msgstr "Árazás" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "Címkék" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "Riportolás" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "Leltár" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:437 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "Gyártási utasítások" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "Felhasználói beállításra váltás" @@ -3754,11 +3859,11 @@ msgstr "Biztonság" msgid "Display Options" msgstr "Megjelenítési beállítások" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "Fiókbeállítások" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "Rendszer beállításra váltás" @@ -3794,26 +3899,26 @@ msgstr "Megjelölés olvasatlanként" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:100 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "Hivatkozás" -#: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/build/BuildDetail.tsx:105 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,33 +3927,33 @@ msgstr "Hivatkozás" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "Leírás" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:112 msgid "Parent Build" msgstr "Szülő gyártás" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:123 msgid "Build Quantity" msgstr "Gyártási mennyiség" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:131 +#: src/pages/build/BuildDetail.tsx:261 msgid "Completed Outputs" msgstr "Befejezett kimenetek" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:148 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 +#: src/pages/build/BuildDetail.tsx:155 #: src/pages/part/PartDetail.tsx:342 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3856,20 +3961,20 @@ msgstr "" msgid "Responsible" msgstr "Felelős" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:162 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:169 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "Cél dátum" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:176 msgid "Completed" msgstr "" @@ -3879,11 +3984,11 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 +#: src/pages/build/BuildDetail.tsx:188 msgid "Source Location" msgstr "" -#: src/pages/build/BuildDetail.tsx:188 +#: src/pages/build/BuildDetail.tsx:189 msgid "Any location" msgstr "" @@ -3892,7 +3997,7 @@ msgstr "" #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 +#: src/pages/build/BuildDetail.tsx:196 msgid "Destination Location" msgstr "" @@ -3917,67 +4022,67 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:234 msgid "Build Details" msgstr "Gyártás részletei" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:240 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "Sortételek" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:254 msgid "Incomplete Outputs" msgstr "Befejezetlen kimenetek" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:276 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:286 msgid "Consumed Stock" msgstr "Felhasznált készlet" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:300 msgid "Child Build Orders" msgstr "Alárendelt gyártások" -#: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/build/BuildDetail.tsx:310 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "Mellékletek" -#: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/build/BuildDetail.tsx:318 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "Megjegyzések" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:336 msgid "Edit Build Order" msgstr "Gyártási utasítás szerkesztése" -#: src/pages/build/BuildDetail.tsx:344 +#: src/pages/build/BuildDetail.tsx:345 msgid "Cancel Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:356 +#: src/pages/build/BuildDetail.tsx:357 #: src/tables/build/BuildOrderTable.tsx:167 #: src/tables/build/BuildOrderTable.tsx:182 msgid "Add Build Order" @@ -3991,14 +4096,14 @@ msgstr "Gyártási utasítás létrehozása" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:390 msgid "Build Order Actions" msgstr "Gyártáshoz foglalások" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4010,23 +4115,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4139,21 @@ msgstr "" msgid "Supplier" msgstr "Beszállító" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "Gyártó" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4161,20 @@ msgstr "Gyártó" msgid "Customer" msgstr "Vevő" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "Részletek" #: src/pages/company/CompanyDetail.tsx:175 -#~ msgid "Edit company" -#~ msgstr "Edit company" - -#: src/pages/company/CompanyDetail.tsx:176 msgid "Manufactured Parts" msgstr "Gyártott alkatrészek" -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:175 +#~ msgid "Edit company" +#~ msgstr "Edit company" + +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "Szállított alkatrészek" @@ -4077,192 +4182,202 @@ msgstr "Szállított alkatrészek" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "Hozzárendelt készlet" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "Cég szerkesztése" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "Cég műveletek" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "Paraméterek" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "Beszállítók" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "Csomagolási mennyiség" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "Beérkezett készlet" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "Beszállítói alkatrész szerkesztése" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "Beszállítói alkatrész törlése" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "Beszállítói alkatrész hozzáadása" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "Elérési út" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "Szerkezeti" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" @@ -4311,8 +4426,8 @@ msgstr "" #: src/pages/part/PartDetail.tsx:202 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "Link" @@ -4357,25 +4472,6 @@ msgstr "Gyártható" msgid "Building" msgstr "Gyártásban" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "Aktív" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4535,7 @@ msgid "Default Supplier" msgstr "Alapértelmezett beszállító" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4559,7 @@ msgid "Variants" msgstr "Változatok" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "Foglalások" @@ -4480,7 +4576,7 @@ msgid "Part Pricing" msgstr "Alkatrész árak" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "Gyártók" @@ -4498,7 +4594,7 @@ msgstr "Kapcsolódó alkatrészek" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4613,7 @@ msgid "On Order" msgstr "Rendelve" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "Gyártásban" @@ -4540,25 +4636,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "Készlet műveletek" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "Készlet számolása" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "Készlet áthelyezése" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "Alkatrész műveletek" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4662,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "Nincs árazási információ ehhez az alkatrészhez." -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "Árazás áttekintés" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "Beszerzési előzmények" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "Belső árazás" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "Alkatrészjegyzék árazás" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "Alkatrészváltozat árazás" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "Eladási ár" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "Eladási előzmények" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4710,19 @@ msgstr "Eladási előzmények" msgid "Total Price" msgstr "Teljes ár" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "Összetevő" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "Minimum ár" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4736,28 @@ msgstr "Maximum ár" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "Egységár" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "Frissítve" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "Kördiagram" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "Oszlopdiagram" @@ -4789,20 +4885,20 @@ msgid "Supplier Reference" msgstr "Beszállítói azonosító" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "Kész sortételek" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "Teljes költség" @@ -4813,121 +4909,121 @@ msgstr "Teljes költség" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "Létrehozva" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "Rendelés részletei" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "Rendelés műveletek" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "Vevői azonosító" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "Kész szállítmányok" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "Vevők" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "Függő szállítmányok" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5043,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "Készlettörténet" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "Teszt adatok" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "Beépített tételek" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "Gyermek tételek" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "Készlet tétel szerkesztése" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5096,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "Készlet műveletek" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "Leltározás" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "Készlethez ad" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "Készlet csökkentése" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "Áthelyezés" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "Készlet áthelyezése" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5157,19 @@ msgstr "Oszlopok kiválasztása" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "CSV" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "CSV" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "TSV" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5177,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5242,83 @@ msgstr "Szűrő hozzáadása" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "Nincs találat" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "A szerver hibás adattípust küldött vissza" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "Hibás kérés" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "Jogosulatlan" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "Tiltott" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "Nem található" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "Vonalkód műveletek" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "Adatok frissítése" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "Táblaszűrők" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6080,33 @@ msgstr "Gyártmány" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "Alkategóriákkal együtt" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6305,7 +6408,7 @@ msgstr "Ez a művelet nem vonható vissza" msgid "Any tests results associated with this template will be deleted" msgstr "Minden teszt eredmény amit ehhez a sablonhoz rögzítettek elvész" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "Kiválaszt" @@ -6597,10 +6700,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6712,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "Alkatrész leírása" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "Teljes mennyiség" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "Beszállítói kód" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "Beszállítói link" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "Gyártói kód" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "Cél" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "Sortétel hozzáadása" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "Sortétel szerkesztése" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "Sortétel bevételezése" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "Sortétel hozzáadása" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "Bevételezés" @@ -6714,10 +6813,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "Beszállítói alkatrész törlése" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "Árfolyam" @@ -6803,71 +6898,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "Csoport törlése" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "Csoport törölve" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "Biztos, hogy törölni szeretné ezt a csoportot?" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "Csoport hozzáadása" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "Csoport szerkesztése" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7116,20 @@ msgstr "Felhasználó hozzáadása sikeres" msgid "Edit user" msgstr "Felhasználó szerkesztése" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7111,7 +7206,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7332,32 +7427,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/id/messages.po b/src/frontend/src/locales/id/messages.po index 0bf40bfafb..220c02e85e 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: 2024-07-17 16:38\n" +"PO-Revision-Date: 2024-07-24 18:24\n" "Last-Translator: \n" "Language-Team: Indonesian\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -30,12 +30,20 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" msgstr "" #: src/components/buttons/PrintingActions.tsx:93 @@ -54,16 +62,14 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "" msgid "No" msgstr "" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "" @@ -152,21 +150,20 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "" @@ -179,34 +176,34 @@ msgstr "" msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "" @@ -321,19 +318,19 @@ msgstr "" msgid "The preview has been updated successfully." msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "" @@ -341,11 +338,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "" @@ -357,11 +354,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -397,7 +394,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "" @@ -405,17 +403,20 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" @@ -587,9 +588,10 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -639,6 +641,32 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "" @@ -926,6 +958,30 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1164,11 +1220,6 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1190,7 +1241,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "" @@ -1253,25 +1304,25 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "" @@ -1308,23 +1359,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "" @@ -1486,17 +1536,17 @@ msgstr "" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1511,16 +1561,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 -msgid "Import Sessions" -msgstr "" - -#: src/components/render/ModelType.tsx:212 -msgid "Label Template" +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" msgstr "" #: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 +msgid "Import Sessions" +msgstr "" + +#: src/components/render/ModelType.tsx:220 +msgid "Label Template" +msgstr "" + +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1626,48 +1686,48 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2395,74 +2455,74 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "" @@ -2470,20 +2530,20 @@ msgstr "" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "" @@ -2664,105 +2724,106 @@ msgstr "" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2816,7 +2878,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2824,15 +2886,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2840,82 +2902,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -3032,7 +3094,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" @@ -3053,7 +3115,7 @@ msgstr "" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -3114,7 +3176,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3403,83 +3465,128 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "" @@ -3558,9 +3665,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3683,11 +3794,6 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3704,7 +3810,7 @@ msgstr "" msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "" @@ -3716,29 +3822,29 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "" @@ -3754,11 +3860,11 @@ msgstr "" msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" @@ -3991,12 +4097,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "" +#: src/pages/company/CompanyDetail.tsx:175 +msgid "Manufactured Parts" +msgstr "" + #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" #~ msgstr "Edit company" -#: src/pages/company/CompanyDetail.tsx:176 -msgid "Manufactured Parts" -msgstr "" - -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -4077,192 +4183,202 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" @@ -4357,25 +4473,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4498,7 +4595,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4540,25 +4637,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4824,7 +4921,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4870,64 +4967,64 @@ msgstr "" msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5044,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5097,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5158,19 @@ msgstr "" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5178,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5243,83 @@ msgstr "" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6305,7 +6409,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6597,10 +6701,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6714,10 +6814,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6803,71 +6899,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7332,32 +7428,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/it/messages.po b/src/frontend/src/locales/it/messages.po index ec83a7d679..4fd8c13839 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: 2024-07-17 16:38\n" +"PO-Revision-Date: 2024-07-24 18:23\n" "Last-Translator: \n" "Language-Team: Italian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -30,13 +30,21 @@ msgstr "Si è verificato un errore durante il rendering di questo componente. Fa msgid "Title" msgstr "Titolo" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "Apri nell'interfaccia di amministrazione" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" -msgstr "Copia negli appunti" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "Copiato" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" +msgstr "Copia" #: src/components/buttons/PrintingActions.tsx:93 msgid "Print Label" @@ -54,16 +62,14 @@ msgstr "Stampa dell'etichetta completata con successo" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "Si" msgid "No" msgstr "No" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "Nessun nome definito" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "Copiato" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "Copia" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "Rimuovi l'immagine" @@ -152,21 +150,20 @@ msgid "Remove the associated image from this item?" msgstr "Rimuovi l'immagine associata all'articolo?" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "Rimuovi" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "Annulla" @@ -179,34 +176,34 @@ msgstr "Trascina e rilascia per caricare" msgid "Click to select file(s)" msgstr "Fare clic per selezionare i file(s)" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "Elimina" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "Invia" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "Seleziona da immagini esistenti" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "Seleziona un'immagine" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "Carica nuova immagine" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "Carica immagine" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "Elimina immagine" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "Il caricamento della foto è fallito" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "Operazione completata" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "" @@ -321,19 +318,19 @@ msgstr "" msgid "The preview has been updated successfully." msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "" @@ -341,11 +338,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "" @@ -357,11 +354,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -397,7 +394,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "" @@ -405,17 +403,20 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" @@ -587,9 +588,10 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -639,6 +641,32 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "" @@ -926,6 +958,30 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1164,11 +1220,6 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1190,7 +1241,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "" @@ -1253,25 +1304,25 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "" @@ -1308,23 +1359,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "" @@ -1486,17 +1536,17 @@ msgstr "" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1511,16 +1561,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 -msgid "Import Sessions" -msgstr "" - -#: src/components/render/ModelType.tsx:212 -msgid "Label Template" +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" msgstr "" #: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 +msgid "Import Sessions" +msgstr "" + +#: src/components/render/ModelType.tsx:220 +msgid "Label Template" +msgstr "" + +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1626,48 +1686,48 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2395,74 +2455,74 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "" @@ -2470,20 +2530,20 @@ msgstr "" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "" @@ -2664,105 +2724,106 @@ msgstr "" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2816,7 +2878,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2824,15 +2886,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2840,82 +2902,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -3032,7 +3094,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" @@ -3053,7 +3115,7 @@ msgstr "" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -3114,7 +3176,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3403,83 +3465,128 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "" @@ -3558,9 +3665,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3683,11 +3794,6 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3704,7 +3810,7 @@ msgstr "" msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "" @@ -3716,29 +3822,29 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "" @@ -3754,11 +3860,11 @@ msgstr "" msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" @@ -3991,12 +4097,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "" +#: src/pages/company/CompanyDetail.tsx:175 +msgid "Manufactured Parts" +msgstr "" + #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" #~ msgstr "Edit company" -#: src/pages/company/CompanyDetail.tsx:176 -msgid "Manufactured Parts" -msgstr "" - -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -4077,192 +4183,202 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" @@ -4357,25 +4473,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4498,7 +4595,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4540,25 +4637,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4824,7 +4921,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4870,64 +4967,64 @@ msgstr "" msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5044,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5097,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5158,19 @@ msgstr "" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5178,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5243,83 @@ msgstr "" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6305,7 +6409,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6597,10 +6701,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6714,10 +6814,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6803,71 +6899,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7332,32 +7428,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/ja/messages.po b/src/frontend/src/locales/ja/messages.po index 5cd1c3cf12..bdd3211460 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: 2024-07-17 16:38\n" +"PO-Revision-Date: 2024-07-24 18:23\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -30,12 +30,20 @@ msgstr "" msgid "Title" msgstr "タイトル" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" msgstr "" #: src/components/buttons/PrintingActions.tsx:93 @@ -54,16 +62,14 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "" msgid "No" msgstr "" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "" @@ -152,21 +150,20 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "キャンセル" @@ -179,34 +176,34 @@ msgstr "" msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "" @@ -321,19 +318,19 @@ msgstr "" msgid "The preview has been updated successfully." msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "" @@ -341,11 +338,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "" @@ -357,11 +354,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -397,7 +394,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "" @@ -405,17 +403,20 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "パスワードを再設定" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "メールアドレス" @@ -587,9 +588,10 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "名前" @@ -639,6 +641,32 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "読み込み中" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "編集" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "続きを読む" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "" @@ -926,6 +958,30 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1164,11 +1220,6 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1190,7 +1241,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "" @@ -1253,25 +1304,25 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "既読にする" @@ -1308,23 +1359,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "パーツ" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "パーツ" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "在庫商品" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "在庫商品" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "在庫場所" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "在庫場所" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "" @@ -1486,17 +1536,17 @@ msgstr "" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1511,16 +1561,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 -msgid "Import Sessions" -msgstr "" - -#: src/components/render/ModelType.tsx:212 -msgid "Label Template" +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" msgstr "" #: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 +msgid "Import Sessions" +msgstr "" + +#: src/components/render/ModelType.tsx:220 +msgid "Label Template" +msgstr "" + +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1626,48 +1686,48 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "在庫" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2395,74 +2455,74 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "よくある質問" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "" @@ -2470,20 +2530,20 @@ msgstr "" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "ライセンス" @@ -2664,105 +2724,106 @@ msgstr "" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2816,7 +2878,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2824,15 +2886,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "この商品の初期数量を入力" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2840,82 +2902,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -3032,7 +3094,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" @@ -3053,7 +3115,7 @@ msgstr "" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -3114,7 +3176,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3403,83 +3465,128 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "" @@ -3558,9 +3665,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3683,11 +3794,6 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3704,7 +3810,7 @@ msgstr "" msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "価格" @@ -3716,29 +3822,29 @@ msgstr "価格" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "" @@ -3754,11 +3860,11 @@ msgstr "" msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "説明" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "添付ファイル" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "メモ" @@ -3991,12 +4097,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "詳細" #: src/pages/company/CompanyDetail.tsx:175 -#~ msgid "Edit company" -#~ msgstr "Edit company" - -#: src/pages/company/CompanyDetail.tsx:176 msgid "Manufactured Parts" msgstr "" -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:175 +#~ msgid "Edit company" +#~ msgstr "Edit company" + +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -4077,192 +4183,202 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" @@ -4357,25 +4473,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4498,7 +4595,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4540,25 +4637,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4824,7 +4921,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4870,64 +4967,64 @@ msgstr "" msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5044,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "在庫商品を編集" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5097,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5158,19 @@ msgstr "" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5178,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5243,83 @@ msgstr "フィルタを追加" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "表フィルタ" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "サブカテゴリを含む" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6305,7 +6409,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6597,10 +6701,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6714,10 +6814,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6803,71 +6899,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7332,32 +7428,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/ko/messages.po b/src/frontend/src/locales/ko/messages.po index 19dc6ee1a4..e43876ba49 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: 2024-07-17 16:38\n" +"PO-Revision-Date: 2024-07-24 18:23\n" "Last-Translator: \n" "Language-Team: Korean\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -30,12 +30,20 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" msgstr "" #: src/components/buttons/PrintingActions.tsx:93 @@ -54,16 +62,14 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "" msgid "No" msgstr "" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "" @@ -152,21 +150,20 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "" @@ -179,34 +176,34 @@ msgstr "" msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "" @@ -321,19 +318,19 @@ msgstr "" msgid "The preview has been updated successfully." msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "" @@ -341,11 +338,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "" @@ -357,11 +354,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -397,7 +394,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "" @@ -405,17 +403,20 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" @@ -587,9 +588,10 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -639,6 +641,32 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "" @@ -926,6 +958,30 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1164,11 +1220,6 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1190,7 +1241,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "" @@ -1253,25 +1304,25 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "" @@ -1308,23 +1359,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "" @@ -1486,17 +1536,17 @@ msgstr "" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1511,16 +1561,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 -msgid "Import Sessions" -msgstr "" - -#: src/components/render/ModelType.tsx:212 -msgid "Label Template" +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" msgstr "" #: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 +msgid "Import Sessions" +msgstr "" + +#: src/components/render/ModelType.tsx:220 +msgid "Label Template" +msgstr "" + +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1626,48 +1686,48 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2395,74 +2455,74 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "" @@ -2470,20 +2530,20 @@ msgstr "" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "" @@ -2664,105 +2724,106 @@ msgstr "" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2816,7 +2878,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2824,15 +2886,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2840,82 +2902,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -3032,7 +3094,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" @@ -3053,7 +3115,7 @@ msgstr "" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -3114,7 +3176,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3403,83 +3465,128 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "" @@ -3558,9 +3665,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3683,11 +3794,6 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3704,7 +3810,7 @@ msgstr "" msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "" @@ -3716,29 +3822,29 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "" @@ -3754,11 +3860,11 @@ msgstr "" msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" @@ -3991,12 +4097,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "" +#: src/pages/company/CompanyDetail.tsx:175 +msgid "Manufactured Parts" +msgstr "" + #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" #~ msgstr "Edit company" -#: src/pages/company/CompanyDetail.tsx:176 -msgid "Manufactured Parts" -msgstr "" - -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -4077,192 +4183,202 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" @@ -4357,25 +4473,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4498,7 +4595,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4540,25 +4637,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4824,7 +4921,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4870,64 +4967,64 @@ msgstr "" msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5044,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5097,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5158,19 @@ msgstr "" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5178,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5243,83 @@ msgstr "" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6305,7 +6409,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6597,10 +6701,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6714,10 +6814,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6803,71 +6899,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7332,32 +7428,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/lv/messages.po b/src/frontend/src/locales/lv/messages.po index c322ace7da..dc5ea56411 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: 2024-07-17 16:39\n" +"PO-Revision-Date: 2024-07-24 18:24\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" @@ -30,12 +30,20 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" msgstr "" #: src/components/buttons/PrintingActions.tsx:93 @@ -54,16 +62,14 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "" msgid "No" msgstr "" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "" @@ -152,21 +150,20 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "" @@ -179,34 +176,34 @@ msgstr "" msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "" @@ -321,19 +318,19 @@ msgstr "" msgid "The preview has been updated successfully." msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "" @@ -341,11 +338,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "" @@ -357,11 +354,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -397,7 +394,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "" @@ -405,17 +403,20 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" @@ -587,9 +588,10 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -639,6 +641,32 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "" @@ -926,6 +958,30 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1164,11 +1220,6 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1190,7 +1241,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "" @@ -1253,25 +1304,25 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "" @@ -1308,23 +1359,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "" @@ -1486,17 +1536,17 @@ msgstr "" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1511,16 +1561,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 -msgid "Import Sessions" -msgstr "" - -#: src/components/render/ModelType.tsx:212 -msgid "Label Template" +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" msgstr "" #: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 +msgid "Import Sessions" +msgstr "" + +#: src/components/render/ModelType.tsx:220 +msgid "Label Template" +msgstr "" + +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1626,48 +1686,48 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2395,74 +2455,74 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "" @@ -2470,20 +2530,20 @@ msgstr "" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "" @@ -2664,105 +2724,106 @@ msgstr "" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2816,7 +2878,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2824,15 +2886,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2840,82 +2902,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -3032,7 +3094,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" @@ -3053,7 +3115,7 @@ msgstr "" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -3114,7 +3176,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3403,83 +3465,128 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "" @@ -3558,9 +3665,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3683,11 +3794,6 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3704,7 +3810,7 @@ msgstr "" msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "" @@ -3716,29 +3822,29 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "" @@ -3754,11 +3860,11 @@ msgstr "" msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" @@ -3991,12 +4097,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "" +#: src/pages/company/CompanyDetail.tsx:175 +msgid "Manufactured Parts" +msgstr "" + #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" #~ msgstr "Edit company" -#: src/pages/company/CompanyDetail.tsx:176 -msgid "Manufactured Parts" -msgstr "" - -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -4077,192 +4183,202 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" @@ -4357,25 +4473,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4498,7 +4595,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4540,25 +4637,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4824,7 +4921,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4870,64 +4967,64 @@ msgstr "" msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5044,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5097,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5158,19 @@ msgstr "" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5178,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5243,83 @@ msgstr "" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6305,7 +6409,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6597,10 +6701,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6714,10 +6814,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6803,71 +6899,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7332,32 +7428,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/nl/messages.po b/src/frontend/src/locales/nl/messages.po index caaf83dc40..14c2136cdb 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: 2024-07-17 16:38\n" +"PO-Revision-Date: 2024-07-24 18:23\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -30,13 +30,21 @@ msgstr "Er is een fout opgetreden tijdens het weergeven van deze component. Raad msgid "Title" msgstr "Titel" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" -msgstr "Kopiëren naar klembord" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "Gekopieerd" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" +msgstr "Kopieer" #: src/components/buttons/PrintingActions.tsx:93 msgid "Print Label" @@ -54,16 +62,14 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "Ja" msgid "No" msgstr "Nee" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "Geen naam gedefinieerd" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "Gekopieerd" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "Kopieer" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "Afbeelding verwijderen" @@ -152,21 +150,20 @@ msgid "Remove the associated image from this item?" msgstr "De bijbehorende afbeelding van dit item verwijderen?" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "Verwijderen" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "Annuleer" @@ -179,34 +176,34 @@ msgstr "Hiernaar toe slepen om te uploaden" msgid "Click to select file(s)" msgstr "Klik om bestand(en) te selecteren" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "Wis" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "Versturen" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "Selecteer uit bestaande afbeeldingen" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "Selecteer afbeelding" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "Nieuwe afbeelding uploaden" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "Afbeelding Uploaden" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "Afbeelding verwijderen" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "Fout tijdens opslaan van template" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "" @@ -321,19 +318,19 @@ msgstr "" msgid "The preview has been updated successfully." msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "" @@ -341,11 +338,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "" @@ -357,11 +354,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -397,7 +394,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "" @@ -405,17 +403,20 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" @@ -587,9 +588,10 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -639,6 +641,32 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "" @@ -926,6 +958,30 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1164,11 +1220,6 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1190,7 +1241,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "" @@ -1253,25 +1304,25 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "" @@ -1308,23 +1359,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "" @@ -1486,17 +1536,17 @@ msgstr "" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1511,16 +1561,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "Verkooporder" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Verkooporders" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "Retourorder" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "Retourorders" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 -msgid "Import Sessions" -msgstr "" - -#: src/components/render/ModelType.tsx:212 -msgid "Label Template" +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" msgstr "" #: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 +msgid "Import Sessions" +msgstr "" + +#: src/components/render/ModelType.tsx:220 +msgid "Label Template" +msgstr "" + +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1626,48 +1686,48 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "Inactief" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2395,74 +2455,74 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "Verkoop" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "" @@ -2470,20 +2530,20 @@ msgstr "" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "" @@ -2664,105 +2724,106 @@ msgstr "" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "Status" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2816,7 +2878,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2824,15 +2886,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2840,82 +2902,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -3032,7 +3094,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" @@ -3053,7 +3115,7 @@ msgstr "" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -3114,7 +3176,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3403,83 +3465,128 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "" @@ -3558,9 +3665,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3683,11 +3794,6 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3704,7 +3810,7 @@ msgstr "" msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "" @@ -3716,29 +3822,29 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "Productieorders" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "" @@ -3754,11 +3860,11 @@ msgstr "" msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "Bijlagen" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "Opmerkingen" @@ -3991,12 +4097,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "" msgid "Customer" msgstr "Klant" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "" +#: src/pages/company/CompanyDetail.tsx:175 +msgid "Manufactured Parts" +msgstr "" + #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" #~ msgstr "Edit company" -#: src/pages/company/CompanyDetail.tsx:176 -msgid "Manufactured Parts" -msgstr "" - -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -4077,192 +4183,202 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" @@ -4357,25 +4473,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4498,7 +4595,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4540,25 +4637,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4824,7 +4921,7 @@ msgstr "" msgid "Order Details" msgstr "Order Details" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "" msgid "Add Return Order" msgstr "Retourorder toevoegen" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "Klanten" @@ -4870,64 +4967,64 @@ msgstr "Voeg Verkooporder toe" msgid "Pending Shipments" msgstr "In afwachting van verzending" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5044,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5097,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5158,19 @@ msgstr "" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5178,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5243,83 @@ msgstr "" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6305,7 +6409,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6597,10 +6701,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6714,10 +6814,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6803,71 +6899,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7332,32 +7428,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/no/messages.po b/src/frontend/src/locales/no/messages.po index 86ce5795ba..1a78c6be78 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: 2024-07-17 16:38\n" +"PO-Revision-Date: 2024-07-24 18:23\n" "Last-Translator: \n" "Language-Team: Norwegian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -30,13 +30,21 @@ msgstr "" msgid "Title" msgstr "Tittel" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" -msgstr "Kopier til utklippstavle" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" +msgstr "" #: src/components/buttons/PrintingActions.tsx:93 msgid "Print Label" @@ -54,16 +62,14 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "Ja" msgid "No" msgstr "Nei" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "" @@ -152,21 +150,20 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "Fjern" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "Avbryt" @@ -179,34 +176,34 @@ msgstr "" msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "Send" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "Suksess" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "" @@ -321,19 +318,19 @@ msgstr "" msgid "The preview has been updated successfully." msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "" @@ -341,11 +338,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "" @@ -357,11 +354,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -397,7 +394,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "Skjemafeil" @@ -405,17 +403,20 @@ msgstr "Skjemafeil" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "Oppdater" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "Tilbakestill passord" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "E-post" @@ -587,9 +588,10 @@ msgstr "Vert" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "Vert" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "Navn" @@ -639,6 +641,32 @@ msgstr "Navn: {0}" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "Status: <0>arbeider ({0}), <1>utvidelser{1}" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "Søk" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "Laster" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "Strekkodehandlinger" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "Visning" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "Vis strekkode" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "Koble mot strekkode" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "Koble til egendefinert strekkode" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "Fjern strekkodekobling" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "Koble fra egendefinert strekkode" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "Rediger" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "Slett element" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "Dupliser" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "Dupliser element" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "Les mer" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "Ukjent feil" @@ -926,6 +958,30 @@ msgstr "PLH" msgid "This panel is a placeholder." msgstr "Denne ruten er en plassholder." +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "Versjoninformasjon" @@ -1164,11 +1220,6 @@ msgstr "Versjon" msgid "Server Version" msgstr "Serverversjon" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1190,7 +1241,7 @@ msgstr "Kontoinnstillinger" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "Systeminnstillinger" @@ -1253,25 +1304,25 @@ msgstr "Dokumentasjon" msgid "About" msgstr "Om" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "Varlser" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "Du har ingen uleste varsler." -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "Varsel" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "Merk som lest" @@ -1308,23 +1359,23 @@ msgstr "Ingen resultater" msgid "No results available for search query" msgstr "Ingen resultater tilgjengelig for søk" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "Ukjent modell: {model}" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "Del" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "Deler" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "Leverandørdeler" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "Produsentdel" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "Produsentdeler" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "Delkategori" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "Delkategorier" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "Lagervare" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "Lagervarer" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "Lagerplassering" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "Lagerplasseringer" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "Lagerhistorikk" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "Produksjon" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "Firma" @@ -1486,17 +1536,17 @@ msgstr "Prosjektkoder" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "Innkjøpsordre" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Innkjøpsordrer" @@ -1511,16 +1561,16 @@ msgstr "Ordrelinjer for innkjøpsordre" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "Salgsordre" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Salgsordrer" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "Returordre" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "Returordrer" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "Adresse" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "Adresser" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "Kontakt" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "Kontakter" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "Eiere" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "Brukere" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" +msgstr "Grupper" + +#: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:212 +#: src/components/render/ModelType.tsx:220 msgid "Label Template" msgstr "" -#: src/components/render/ModelType.tsx:213 +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1626,48 +1686,48 @@ msgstr "" msgid "Shipment" msgstr "Forsendelse" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "Ingen lagerbeholdning" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "Lagerbeholdning" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "Serienummer" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "Kinesisk (tradisjonell)" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "Hjem" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "Om InvenTree" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "Om InvenTree-organisasjonen" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "Om denne InvenTree-instansen" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2395,74 +2455,74 @@ msgstr "Aktuelle nyheter" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "Nettside" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "GitHub" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "Demo" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "Innkjøp" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "Salg" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "Lekeplass" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "Komme i gang" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "Komme i gang med InvenTree" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "API" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "InvenTree-API-dokumentasjon" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "Utviklermanual" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "InvenTree utviklermanual" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "FAQ" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "Ofte stilte spørsmål" @@ -2470,20 +2530,20 @@ msgstr "Ofte stilte spørsmål" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "Systeminformasjon" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "Systeminformasjon" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "Lisenser" @@ -2664,105 +2724,106 @@ msgstr "Overordnet del-kategori" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "Status" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "Mottatt" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "Handlinger" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2816,7 +2878,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "Legg til gitt mengde som pakker i stedet for enkeltprodukter" @@ -2824,15 +2886,15 @@ msgstr "Legg til gitt mengde som pakker i stedet for enkeltprodukter" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "Angi innledende antall for denne lagervaren" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "Serienumre" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Angi serienumre for ny lagerbeholdning (eller la stå tom)" @@ -2840,82 +2902,82 @@ msgstr "Angi serienumre for ny lagerbeholdning (eller la stå tom)" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "På lager" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "Legg til" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "Tell" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "Overfør lager" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "Tell beholdning" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -3032,7 +3094,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "Sjekker om du allerede er innlogget" @@ -3053,7 +3115,7 @@ msgstr "" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -3114,7 +3176,7 @@ msgstr "Denne siden er erstatning for den gamle startsiden med samme informasjon msgid "Welcome to your Dashboard{0}" msgstr "Velkommen til dashbordet ditt{0}" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "Denne siden er et utstillingsvindu for Platform UI." @@ -3403,83 +3465,128 @@ msgstr "" msgid "Use pseudo language" msgstr "Bruk pseudo-språk" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "\"Single Sign On\"-kontoer" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "Ikke aktivert" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "Single Sign On er ikke aktivert for denne serveren" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "Multifaktor" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "Multifaktor-autentisering er ikke konfigurert for din konto" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "Følgende e-postadresser er tilknyttet din konto:" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "Primær" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "Bekreftet" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "Ubekreftet" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "Legg til e-postadresse" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "E-post" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "E-postadresse" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "Gjør til primær" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "Re-send bekreftelse" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "Legg til e-post" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "Leverandør er ikke konfigurert" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "Ikke konfigurert" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "Det finnes ingen sosiale nettverkskontoer koblet til denne kontoen." -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "Du kan logge inn på kontoen din ved hjelp av følgende tredjepartskontoer" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "Aktiv" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "streker" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "Egendefinerte enheter" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "Delparametere" @@ -3558,9 +3665,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3683,11 +3794,6 @@ msgstr "Mislykkede oppgaver" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "Grupper" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "Velg innstillinger som er relevante for brukerens livssyklus. Mer tilgjengelig i" @@ -3704,7 +3810,7 @@ msgstr "Innlogging" msgid "Barcodes" msgstr "Strekkoder" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "Prising" @@ -3716,29 +3822,29 @@ msgstr "Prising" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "Etiketter" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "Rapportering" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "Lagertelling" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "Produksjonsordrer" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "Bytt til brukerinnstilling" @@ -3754,11 +3860,11 @@ msgstr "Sikkerhet" msgid "Display Options" msgstr "Visningsvalg" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "Kontoinnstillinger" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "Bytt til systeminnstilling" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "Beskrivelse" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "Underordnede Produksjonsordrer" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "Vedlegg" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "Notater" @@ -3991,12 +4097,12 @@ msgstr "Legg til produksjonsordre" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "Produksjonsordre-handlinger" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "" msgid "Supplier" msgstr "Leverandør" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "Produsent" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "Produsent" msgid "Customer" msgstr "Kunde" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "Detaljer" #: src/pages/company/CompanyDetail.tsx:175 -#~ msgid "Edit company" -#~ msgstr "Edit company" - -#: src/pages/company/CompanyDetail.tsx:176 msgid "Manufactured Parts" msgstr "Produserte deler" -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:175 +#~ msgid "Edit company" +#~ msgstr "Edit company" + +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "Leverte Deler" @@ -4077,192 +4183,202 @@ msgstr "Leverte Deler" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "Tildelt lagerbeholdning" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "Rediger Bedrift" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "Bedriftshandlinger" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "Produsentens delenummer" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "Parametere" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "Leverandører" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "Rediger produsentdel" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "Slett produsentdel" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "Pakkeantall" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "Mottatt lagerbeholdning" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "Rediger Leverandørdel" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "Slett Leverandørdel" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "Legg til leverandørdel" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "Sti" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "Strukturell" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" @@ -4357,25 +4473,6 @@ msgstr "Kan Produsere" msgid "Building" msgstr "Produseres" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "Aktiv" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "Varianter" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "Tildelinger" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "Produsenter" @@ -4498,7 +4595,7 @@ msgstr "Relaterte Deler" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "I bestilling" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "Under produksjon" @@ -4540,25 +4637,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "Lagerhandlinger" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "Tell delbeholdning" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "Overfør delbeholdning" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "Delhandlinger" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "" msgid "Total Price" msgstr "Total pris" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "Komponent" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "Enhetspris" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "Oppdatert" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4824,7 +4921,7 @@ msgstr "" msgid "Order Details" msgstr "Ordredetaljer" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "Kunder" @@ -4870,64 +4967,64 @@ msgstr "" msgid "Pending Shipments" msgstr "Ventende forsendelser" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5044,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "Sporing av lager" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "Testdata" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "Installerte artikler" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "Underordnede artikler" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "Rediger lagervare" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5097,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "Lagerhandlinger" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "Tell beholdning" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "Legg til lager" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "Fjern lager" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "Overfør" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "Overfør lager" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5158,19 @@ msgstr "Velg Kolonner" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "CSV" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "CSV" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "TSV" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5178,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5243,83 @@ msgstr "Legg til filter" msgid "Clear Filters" msgstr "Fjern filtre" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "Ingen poster funnet" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "Serveren returnerte feil datatype" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "Ugyldig forespørsel" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "Uautorisert" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "Forbudt" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "Ikke funnet" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "Slett valgte oppføringer" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" -msgstr "Er du sikker på at du vil slette valgte oppføringer?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "Denne handlingen kan ikke angres!" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "Slettede oppføringer" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "Oppføringer slettet" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "Kunne ikke slette oppføringer" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "Strekkodehandlinger" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "Slett valgte oppføringer" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "Oppdater data" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "Tabellfiltre" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "Sammenstilling" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "Inkluder underkategorier" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "Inkluder underkategorier i resultatene" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "Vis strukturelle kategorier" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6305,7 +6409,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6597,10 +6701,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "Slett produsentdel" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "Slett produsentdel" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "Delbeskrivelse" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "Totalt Antall" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "Leverandørkode" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "Leverandørlenke" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "Produsentens kode" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "Destinasjon" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "Legg til ordrelinje" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "Rediger ordrelinje" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "Motta ordrelinje" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "Legg til ordrelinje" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "Motta artikler" @@ -6714,10 +6814,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "Slett Leverandørdel" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "Kurs" @@ -6803,71 +6899,71 @@ msgstr "Stoppet" msgid "Attempts" msgstr "Forsøk" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "Gruppe med id {id} er ikke funnet" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "Det oppstod en feil under henting av gruppedetaljer" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "Tillatelse satt" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "Slett gruppe" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "Gruppe slettet" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "Er du sikker på at du vil slette denne gruppen?" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "Legg til gruppe" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "Rediger gruppe" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "Bruker lagt til" msgid "Edit user" msgstr "Rediger bruker" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "Vis elementer som er tilgjengelige" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "Inkluder underplasseringer" @@ -7332,32 +7428,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "Inkluder underkategorier i resultatene" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "Inkluder underkategorier i resultatene" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "Vis strukturelle plasseringer" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "Vis eksterne plasseringer" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "Har plasseringstype" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/pl/messages.po b/src/frontend/src/locales/pl/messages.po index bb45fc381e..8abbd6dd74 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: 2024-07-17 16:38\n" +"PO-Revision-Date: 2024-07-24 18:23\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" @@ -30,13 +30,21 @@ msgstr "" msgid "Title" msgstr "Tytuł" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "Otwórz w interfejsie administratora" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" -msgstr "Skopiuj do schowka" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "Skopiowano" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" +msgstr "Kopiuj" #: src/components/buttons/PrintingActions.tsx:93 msgid "Print Label" @@ -54,16 +62,14 @@ msgstr "Drukowanie etykiety zakończone powodzeniem" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "Tak" msgid "No" msgstr "Nie" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "Nie zdefiniowano nazwy" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "Skopiowano" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "Kopiuj" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "Usuń obraz" @@ -152,21 +150,20 @@ msgid "Remove the associated image from this item?" msgstr "Usunąć powiązany obrazek z tego elementu?" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "Usuń" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "Anuluj" @@ -179,34 +176,34 @@ msgstr "Przeciągnij i upuść, aby przesłać" msgid "Click to select file(s)" msgstr "Kliknij, aby wybrać plik(i)" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "Wyczyść" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "Zatwierdź" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "Wybierz z istniejących obrazów" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "Wybierz obraz" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "Prześlij nowy obraz" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "Prześlij obrazek" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "Usuń obraz" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "Przesłanie obrazu nie powiodło się" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "Sukces" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "Wystąpił błąd zapisywania szablonu" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "Zapisz i odśwież podgląd" @@ -321,19 +318,19 @@ msgstr "Podgląd zaktualizowany" msgid "The preview has been updated successfully." msgstr "Podgląd został pomyślnie zaktualizowany." -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "Odśwież podgląd" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "Odśwież podgląd" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "" @@ -341,11 +338,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "" @@ -357,11 +354,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -397,7 +394,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "Błąd formularza" @@ -405,17 +403,20 @@ msgstr "Błąd formularza" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "Aktualizuj" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "Resetuj hasło" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "Adres E-Mail" @@ -587,9 +588,10 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -639,6 +641,32 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "Szukaj..." + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "" @@ -926,6 +958,30 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "Informacje o wersji" @@ -1164,11 +1220,6 @@ msgstr "Wersja" msgid "Server Version" msgstr "Wersja serwera" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "Szukaj..." - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1190,7 +1241,7 @@ msgstr "Ustawienia konta" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "Ustawienia systemowe" @@ -1253,25 +1304,25 @@ msgstr "Dokumentacja" msgid "About" msgstr "O nas" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "Powiadomienia" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "Powiadomienie" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "Oznacz jako przeczytane" @@ -1308,23 +1359,23 @@ msgstr "Brak wyników" msgid "No results available for search query" msgstr "Brak dostępnych wyników wyszukiwania" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "Nieznany model: {model}" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "Komponent" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "Komponenty" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "" @@ -1486,17 +1536,17 @@ msgstr "" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1511,16 +1561,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "Kontakty" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "Właściciele" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "Użytkownicy" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" +msgstr "Grupy" + +#: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:212 +#: src/components/render/ModelType.tsx:220 msgid "Label Template" msgstr "Szablon etykiety" -#: src/components/render/ModelType.tsx:213 +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "Szablony etykiet" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "Szablon Raportu" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "Szablony raportów" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "Konfiguracja wtyczki" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "Konfiguracje wtyczki" @@ -1626,48 +1686,48 @@ msgstr "Konfiguracje wtyczki" msgid "Shipment" msgstr "Wysyłka" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "Nieaktywny" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "Stan" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "Numer seryjny" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "Chiński (tradycyjny)" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "Strona główna" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "Odwiedź dokumentację, aby dowiedzieć się więcej o InvenTree" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "O InvenTree" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "O InvenTree.org" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "Informacje o serwerze" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "O tej instancji Inventree" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "Informacje o licencji" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2395,74 +2455,74 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "Strona internetowa" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "GitHub" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "Demo" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "Zakupy" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "" @@ -2470,20 +2530,20 @@ msgstr "" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "" @@ -2664,105 +2724,106 @@ msgstr "" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "Lokalizacja" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "Akcje" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2816,7 +2878,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2824,15 +2886,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2840,82 +2902,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "Ładowanie..." -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "Przenieś" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "Dodaj" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -3032,7 +3094,7 @@ msgstr "Element został usunięty" msgid "Are you sure you want to delete this item?" msgstr "Czy na pewno chcesz usunąć ten element?" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "Sprawdzanie, czy jesteś już zalogowany" @@ -3053,7 +3115,7 @@ msgstr "Rejestracja poniżej" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "Wylogowywanie" @@ -3114,7 +3176,7 @@ msgstr "Ta strona jest zamiennikiem starej strony startowej z tymi samymi inform msgid "Welcome to your Dashboard{0}" msgstr "Witaj w Panelu{0}" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3403,83 +3465,128 @@ msgstr "Nazwisko:" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "Wyłączone" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "Jednostki niestandardowe" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "Parametry części" @@ -3558,8 +3665,12 @@ msgid "Category Parameters" msgstr "Parametry kategorii" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" -msgstr "Typy lokalizacji" +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 @@ -3683,11 +3794,6 @@ msgstr "Zadania zakończone błędem" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "Grupy" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3704,7 +3810,7 @@ msgstr "Zaloguj się" msgid "Barcodes" msgstr "Kody kreskowe" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "Cennik" @@ -3716,29 +3822,29 @@ msgstr "Cennik" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "Etykiety" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "Raportowanie" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "Zlecenia wykonania" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "Przełącz na ustawienie użytkownika" @@ -3754,11 +3860,11 @@ msgstr "Bezpieczeństwo" msgid "Display Options" msgstr "Wyświetl opcje" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "Ustawienia konta" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "Przełącz na ustawienia systemowe" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" @@ -3991,12 +4097,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "" +#: src/pages/company/CompanyDetail.tsx:175 +msgid "Manufactured Parts" +msgstr "" + #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" #~ msgstr "Edit company" -#: src/pages/company/CompanyDetail.tsx:176 -msgid "Manufactured Parts" -msgstr "" - -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -4077,192 +4183,202 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" @@ -4357,25 +4473,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4498,7 +4595,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4540,25 +4637,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4824,7 +4921,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4870,64 +4967,64 @@ msgstr "" msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5044,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5097,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5158,19 @@ msgstr "" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5178,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5243,83 @@ msgstr "" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6305,7 +6409,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6597,10 +6701,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6714,10 +6814,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6803,71 +6899,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7332,32 +7428,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/pseudo-LOCALE/messages.po b/src/frontend/src/locales/pseudo-LOCALE/messages.po index 8df360f0dd..f2dfcd0f74 100644 --- a/src/frontend/src/locales/pseudo-LOCALE/messages.po +++ b/src/frontend/src/locales/pseudo-LOCALE/messages.po @@ -65,12 +65,20 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" +#~ msgid "Copy to clipboard" +#~ msgstr "" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" msgstr "" #: src/components/buttons/PrintingActions.tsx:93 @@ -89,16 +97,14 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 -#: src/components/importer/ImportDataSelector.tsx:172 +#: src/components/forms/fields/ApiFormField.tsx:313 +#: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -166,18 +172,10 @@ msgstr "" msgid "No" msgstr "" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "" @@ -187,21 +185,20 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "" @@ -214,34 +211,34 @@ msgstr "" msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "" @@ -278,7 +275,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -392,11 +389,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -432,7 +429,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "" @@ -440,17 +438,20 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -485,7 +486,7 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:59 #: src/components/forms/AuthenticationForm.tsx:76 #: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:165 +#: src/functions/auth.tsx:164 msgid "Check your input and try again." msgstr "" @@ -495,7 +496,7 @@ msgstr "" #~ msgstr "" #: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:155 msgid "Mail delivery successful" msgstr "" @@ -544,7 +545,7 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" @@ -622,6 +623,7 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:80 #: src/pages/part/PartDetail.tsx:127 #: src/pages/stock/LocationDetail.tsx:87 @@ -632,7 +634,7 @@ msgstr "" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 #: src/tables/stock/LocationTypesTable.tsx:60 msgid "Name" @@ -683,7 +685,7 @@ msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" @@ -708,60 +710,60 @@ msgstr "" msgid "Thumbnail" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:155 +#: src/components/importer/ImportDataSelector.tsx:166 msgid "Importing Rows" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:156 +#: src/components/importer/ImportDataSelector.tsx:167 msgid "Please wait while the data is imported" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:173 +#: src/components/importer/ImportDataSelector.tsx:184 msgid "An error occurred while importing data" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:194 +#: src/components/importer/ImportDataSelector.tsx:205 msgid "Edit Data" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:222 +#: src/components/importer/ImportDataSelector.tsx:233 msgid "Delete Row" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:252 +#: src/components/importer/ImportDataSelector.tsx:263 msgid "Row" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:270 +#: src/components/importer/ImportDataSelector.tsx:281 msgid "Row contains errors" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:311 +#: src/components/importer/ImportDataSelector.tsx:322 msgid "Accept" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:344 +#: src/components/importer/ImportDataSelector.tsx:355 msgid "Valid" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:345 +#: src/components/importer/ImportDataSelector.tsx:356 msgid "Filter by row validation status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:350 +#: src/components/importer/ImportDataSelector.tsx:361 #: src/tables/build/BuildOutputTable.tsx:205 msgid "Complete" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:351 +#: src/components/importer/ImportDataSelector.tsx:362 msgid "Filter by row completion status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:368 +#: src/components/importer/ImportDataSelector.tsx:379 msgid "Import selected rows" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:394 msgid "Processing Data" msgstr "" @@ -863,59 +865,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "" @@ -924,7 +930,7 @@ msgid "Read More" msgstr "" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "" @@ -965,6 +971,30 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1204,7 +1234,7 @@ msgid "Server Version" msgstr "" #: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 +#: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "" @@ -1229,7 +1259,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "" @@ -1292,25 +1322,25 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "" @@ -1347,23 +1377,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:210 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1372,9 +1402,9 @@ msgid "Part" msgstr "" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:173 #: src/pages/part/CategoryDetail.tsx:112 #: src/pages/part/CategoryDetail.tsx:237 #: src/pages/part/CategoryDetail.tsx:267 @@ -1399,9 +1429,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:192 -#: src/pages/company/SupplierPartDetail.tsx:320 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1412,7 +1442,7 @@ msgid "Supplier Parts" msgstr "" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:127 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1426,24 +1456,23 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/part/CategoryDetail.tsx:251 #: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 +#: src/pages/company/CompanyDetail.tsx:200 #: src/pages/stock/LocationDetail.tsx:120 #: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/stock/LocationDetail.tsx:379 msgid "Stock Items" msgstr "" @@ -1453,8 +1482,8 @@ msgstr "" #: src/components/render/ModelType.tsx:82 #: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:371 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1475,7 +1504,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" @@ -1501,7 +1530,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "" @@ -1525,17 +1554,17 @@ msgstr "" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:226 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1550,16 +1579,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1578,9 +1607,9 @@ msgid "Return Order" msgstr "" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" @@ -1590,7 +1619,7 @@ msgid "Address" msgstr "" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "" @@ -1602,7 +1631,7 @@ msgid "Contact" msgstr "" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "" @@ -1615,7 +1644,7 @@ msgid "Owners" msgstr "" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1628,36 +1657,46 @@ msgid "Users" msgstr "" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 -msgid "Import Sessions" -msgstr "" - -#: src/components/render/ModelType.tsx:212 -msgid "Label Template" +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" msgstr "" #: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 +msgid "Import Sessions" +msgstr "" + +#: src/components/render/ModelType.tsx:220 +msgid "Label Template" +msgstr "" + +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1667,8 +1706,8 @@ msgstr "" #: src/components/render/Part.tsx:24 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:307 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "" @@ -1680,33 +1719,33 @@ msgid "No stock" msgstr "" #: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "" #: src/components/render/Stock.tsx:52 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" #: src/components/render/Stock.tsx:54 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:127 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2302,13 +2341,13 @@ msgid "Chinese (Traditional)" msgstr "" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2324,13 +2363,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "" @@ -2339,17 +2378,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2434,74 +2473,74 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:236 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:294 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:351 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "" @@ -2509,20 +2548,20 @@ msgstr "" #~ msgid "Instance" #~ msgstr "" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "" @@ -2703,105 +2742,106 @@ msgstr "" #~ msgid "Part updated" #~ msgstr "" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:145 -#: src/pages/company/SupplierPartDetail.tsx:196 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:148 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2811,43 +2851,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:99 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:134 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2855,7 +2896,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2863,15 +2904,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2879,82 +2920,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -2978,11 +3019,11 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:117 msgid "Logged Out" msgstr "" -#: src/functions/auth.tsx:119 +#: src/functions/auth.tsx:118 msgid "Successfully logged out" msgstr "" @@ -2998,20 +3039,20 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "" -#: src/functions/auth.tsx:157 +#: src/functions/auth.tsx:156 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:164 +#: src/functions/auth.tsx:163 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:194 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:196 +#: src/functions/auth.tsx:195 msgid "Successfully logged in" msgstr "" @@ -3071,7 +3112,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" @@ -3092,7 +3133,7 @@ msgstr "" #~ msgid "Edit host options" #~ msgstr "" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -3153,7 +3194,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3442,83 +3483,128 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3597,9 +3683,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3722,11 +3812,6 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3743,7 +3828,7 @@ msgstr "" msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "" @@ -3755,29 +3840,29 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "" @@ -3793,11 +3878,11 @@ msgstr "" msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3844,9 +3929,9 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:78 -#: src/pages/company/SupplierPartDetail.tsx:85 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:94 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 @@ -3985,23 +4070,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:174 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:265 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" @@ -4028,12 +4115,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4047,23 +4134,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:195 -#: src/pages/company/SupplierPartDetail.tsx:298 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4071,21 +4158,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:96 -#: src/pages/company/ManufacturerPartDetail.tsx:240 -#: src/pages/company/SupplierPartDetail.tsx:124 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4093,20 +4180,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "" +#: src/pages/company/CompanyDetail.tsx:175 +msgid "Manufactured Parts" +msgstr "" + #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" #~ msgstr "" -#: src/pages/company/CompanyDetail.tsx:176 -msgid "Manufactured Parts" -msgstr "" - -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -4114,118 +4201,128 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:71 -#: src/pages/company/SupplierPartDetail.tsx:78 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:77 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:86 -#: src/pages/company/SupplierPartDetail.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:104 -#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:133 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:142 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:148 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:160 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:191 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:198 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:214 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:252 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:152 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:112 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:170 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:197 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:206 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:212 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:236 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:251 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:275 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:282 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" @@ -4265,7 +4362,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:160 #: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/tables/part/PartCategoryTable.tsx:94 msgid "Edit Part Category" msgstr "" @@ -4394,25 +4491,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4476,7 +4554,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4500,7 +4578,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4517,7 +4595,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4535,7 +4613,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4554,7 +4632,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4577,25 +4655,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:309 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4603,46 +4681,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4651,19 +4729,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4677,28 +4755,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:179 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4765,19 +4843,19 @@ msgstr "" msgid "Maximum Value" msgstr "" -#: src/pages/part/pricing/PricingPanel.tsx:25 +#: src/pages/part/pricing/PricingPanel.tsx:24 msgid "No data available" msgstr "" -#: src/pages/part/pricing/PricingPanel.tsx:66 +#: src/pages/part/pricing/PricingPanel.tsx:65 msgid "No Data" msgstr "" -#: src/pages/part/pricing/PricingPanel.tsx:67 +#: src/pages/part/pricing/PricingPanel.tsx:66 msgid "No pricing data available" msgstr "" -#: src/pages/part/pricing/PricingPanel.tsx:78 +#: src/pages/part/pricing/PricingPanel.tsx:77 msgid "Loading pricing data" msgstr "" @@ -4861,7 +4939,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4889,7 +4967,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4938,13 +5016,13 @@ msgid "Default Parts" msgstr "" #: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:336 +#: src/tables/stock/StockLocationTable.tsx:115 msgid "Edit Stock Location" msgstr "" #: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "" @@ -4964,7 +5042,7 @@ msgstr "" msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:331 msgid "Location Actions" msgstr "" @@ -4984,52 +5062,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5037,34 +5115,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5098,19 +5176,19 @@ msgstr "" #~ msgid "Excel" #~ msgstr "" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5118,7 +5196,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5183,76 +5261,83 @@ msgstr "" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -6040,7 +6125,7 @@ msgstr "" msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:104 msgid "Add Part Category" msgstr "" @@ -6342,7 +6427,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6634,10 +6719,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "" @@ -6650,51 +6731,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:91 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 +msgid "Import Line Items" +msgstr "" + +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:118 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:157 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:164 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:185 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:224 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:243 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6746,10 +6832,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6835,71 +6917,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7389,7 +7471,7 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:125 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/pt-br/messages.po b/src/frontend/src/locales/pt-br/messages.po index ad0c78d7f4..81d422f5ef 100644 --- a/src/frontend/src/locales/pt-br/messages.po +++ b/src/frontend/src/locales/pt-br/messages.po @@ -25,12 +25,20 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" +#~ msgid "Copy to clipboard" +#~ msgstr "" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" msgstr "" #: src/components/buttons/PrintingActions.tsx:93 @@ -49,16 +57,14 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 -#: src/components/importer/ImportDataSelector.tsx:172 +#: src/components/forms/fields/ApiFormField.tsx:313 +#: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -126,18 +132,10 @@ msgstr "" msgid "No" msgstr "" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "" @@ -147,21 +145,20 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "" @@ -174,34 +171,34 @@ msgstr "" msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "" @@ -238,7 +235,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -352,11 +349,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -392,7 +389,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "" @@ -400,17 +398,20 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -435,12 +436,12 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:59 #: src/components/forms/AuthenticationForm.tsx:76 #: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:165 +#: src/functions/auth.tsx:164 msgid "Check your input and try again." msgstr "" #: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:155 msgid "Mail delivery successful" msgstr "" @@ -485,7 +486,7 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" @@ -563,6 +564,7 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:80 #: src/pages/part/PartDetail.tsx:127 #: src/pages/stock/LocationDetail.tsx:87 @@ -573,7 +575,7 @@ msgstr "" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 #: src/tables/stock/LocationTypesTable.tsx:60 msgid "Name" @@ -624,7 +626,7 @@ msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" @@ -649,60 +651,60 @@ msgstr "" msgid "Thumbnail" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:155 +#: src/components/importer/ImportDataSelector.tsx:166 msgid "Importing Rows" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:156 +#: src/components/importer/ImportDataSelector.tsx:167 msgid "Please wait while the data is imported" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:173 +#: src/components/importer/ImportDataSelector.tsx:184 msgid "An error occurred while importing data" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:194 +#: src/components/importer/ImportDataSelector.tsx:205 msgid "Edit Data" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:222 +#: src/components/importer/ImportDataSelector.tsx:233 msgid "Delete Row" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:252 +#: src/components/importer/ImportDataSelector.tsx:263 msgid "Row" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:270 +#: src/components/importer/ImportDataSelector.tsx:281 msgid "Row contains errors" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:311 +#: src/components/importer/ImportDataSelector.tsx:322 msgid "Accept" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:344 +#: src/components/importer/ImportDataSelector.tsx:355 msgid "Valid" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:345 +#: src/components/importer/ImportDataSelector.tsx:356 msgid "Filter by row validation status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:350 +#: src/components/importer/ImportDataSelector.tsx:361 #: src/tables/build/BuildOutputTable.tsx:205 msgid "Complete" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:351 +#: src/components/importer/ImportDataSelector.tsx:362 msgid "Filter by row completion status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:368 +#: src/components/importer/ImportDataSelector.tsx:379 msgid "Import selected rows" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:394 msgid "Processing Data" msgstr "" @@ -804,59 +806,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "" @@ -865,7 +871,7 @@ msgid "Read More" msgstr "" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "" @@ -902,6 +908,30 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1141,7 +1171,7 @@ msgid "Server Version" msgstr "" #: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 +#: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "" @@ -1166,7 +1196,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "" @@ -1221,25 +1251,25 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "" @@ -1276,23 +1306,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:210 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1301,9 +1331,9 @@ msgid "Part" msgstr "" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:173 #: src/pages/part/CategoryDetail.tsx:112 #: src/pages/part/CategoryDetail.tsx:237 #: src/pages/part/CategoryDetail.tsx:267 @@ -1328,9 +1358,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:192 -#: src/pages/company/SupplierPartDetail.tsx:320 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1341,7 +1371,7 @@ msgid "Supplier Parts" msgstr "" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:127 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1355,24 +1385,23 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/part/CategoryDetail.tsx:251 #: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 +#: src/pages/company/CompanyDetail.tsx:200 #: src/pages/stock/LocationDetail.tsx:120 #: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/stock/LocationDetail.tsx:379 msgid "Stock Items" msgstr "" @@ -1382,8 +1411,8 @@ msgstr "" #: src/components/render/ModelType.tsx:82 #: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:371 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1404,7 +1433,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" @@ -1430,7 +1459,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "" @@ -1454,17 +1483,17 @@ msgstr "" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:226 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1479,16 +1508,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1507,9 +1536,9 @@ msgid "Return Order" msgstr "" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" @@ -1519,7 +1548,7 @@ msgid "Address" msgstr "" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "" @@ -1531,7 +1560,7 @@ msgid "Contact" msgstr "" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "" @@ -1544,7 +1573,7 @@ msgid "Owners" msgstr "" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1557,36 +1586,46 @@ msgid "Users" msgstr "" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 -msgid "Import Sessions" -msgstr "" - -#: src/components/render/ModelType.tsx:212 -msgid "Label Template" +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" msgstr "" #: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 +msgid "Import Sessions" +msgstr "" + +#: src/components/render/ModelType.tsx:220 +msgid "Label Template" +msgstr "" + +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1596,8 +1635,8 @@ msgstr "" #: src/components/render/Part.tsx:24 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:307 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "" @@ -1609,33 +1648,33 @@ msgid "No stock" msgstr "" #: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "" #: src/components/render/Stock.tsx:52 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" #: src/components/render/Stock.tsx:54 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:127 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2227,13 +2266,13 @@ msgid "Chinese (Traditional)" msgstr "" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2249,13 +2288,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "" @@ -2264,17 +2303,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2351,74 +2390,74 @@ msgstr "" msgid "Current News" msgstr "" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:236 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:294 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:351 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "" @@ -2426,20 +2465,20 @@ msgstr "" #~ msgid "Instance" #~ msgstr "" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "" @@ -2556,105 +2595,106 @@ msgstr "" #~ msgid "Part updated" #~ msgstr "" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:145 -#: src/pages/company/SupplierPartDetail.tsx:196 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:148 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2664,43 +2704,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:99 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:134 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2708,7 +2749,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2716,15 +2757,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2732,82 +2773,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -2827,11 +2868,11 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:117 msgid "Logged Out" msgstr "" -#: src/functions/auth.tsx:119 +#: src/functions/auth.tsx:118 msgid "Successfully logged out" msgstr "" @@ -2847,20 +2888,20 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "" -#: src/functions/auth.tsx:157 +#: src/functions/auth.tsx:156 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:164 +#: src/functions/auth.tsx:163 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:194 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:196 +#: src/functions/auth.tsx:195 msgid "Successfully logged in" msgstr "" @@ -2920,7 +2961,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" @@ -2937,7 +2978,7 @@ msgstr "" msgid "Register below" msgstr "" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -2998,7 +3039,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3163,83 +3204,128 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3318,9 +3404,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3443,11 +3533,6 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3464,7 +3549,7 @@ msgstr "" msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "" @@ -3476,29 +3561,29 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "" @@ -3514,11 +3599,11 @@ msgstr "" msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3561,9 +3646,9 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:78 -#: src/pages/company/SupplierPartDetail.tsx:85 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:94 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 @@ -3702,23 +3787,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:174 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:265 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" @@ -3745,12 +3832,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -3764,23 +3851,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:195 -#: src/pages/company/SupplierPartDetail.tsx:298 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -3788,21 +3875,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:96 -#: src/pages/company/ManufacturerPartDetail.tsx:240 -#: src/pages/company/SupplierPartDetail.tsx:124 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -3810,20 +3897,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "" +#: src/pages/company/CompanyDetail.tsx:175 +msgid "Manufactured Parts" +msgstr "" + #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" #~ msgstr "" -#: src/pages/company/CompanyDetail.tsx:176 -msgid "Manufactured Parts" -msgstr "" - -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -3831,118 +3918,128 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:71 -#: src/pages/company/SupplierPartDetail.tsx:78 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:77 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:86 -#: src/pages/company/SupplierPartDetail.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:104 -#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:133 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:142 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:148 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:160 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:191 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:198 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:214 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:252 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:152 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:112 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:170 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:197 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:206 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:212 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:236 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:251 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:275 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:282 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" @@ -3982,7 +4079,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:160 #: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/tables/part/PartCategoryTable.tsx:94 msgid "Edit Part Category" msgstr "" @@ -4111,25 +4208,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4193,7 +4271,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4217,7 +4295,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4234,7 +4312,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4252,7 +4330,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4271,7 +4349,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4294,68 +4372,68 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:309 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4364,19 +4442,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4390,28 +4468,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:179 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4478,19 +4556,19 @@ msgstr "" msgid "Maximum Value" msgstr "" -#: src/pages/part/pricing/PricingPanel.tsx:25 +#: src/pages/part/pricing/PricingPanel.tsx:24 msgid "No data available" msgstr "" -#: src/pages/part/pricing/PricingPanel.tsx:66 +#: src/pages/part/pricing/PricingPanel.tsx:65 msgid "No Data" msgstr "" -#: src/pages/part/pricing/PricingPanel.tsx:67 +#: src/pages/part/pricing/PricingPanel.tsx:66 msgid "No pricing data available" msgstr "" -#: src/pages/part/pricing/PricingPanel.tsx:78 +#: src/pages/part/pricing/PricingPanel.tsx:77 msgid "Loading pricing data" msgstr "" @@ -4574,7 +4652,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4602,7 +4680,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4651,13 +4729,13 @@ msgid "Default Parts" msgstr "" #: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:336 +#: src/tables/stock/StockLocationTable.tsx:115 msgid "Edit Stock Location" msgstr "" #: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "" @@ -4677,7 +4755,7 @@ msgstr "" msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:331 msgid "Location Actions" msgstr "" @@ -4697,52 +4775,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -4750,34 +4828,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -4811,19 +4889,19 @@ msgstr "" #~ msgid "Excel" #~ msgstr "" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -4831,7 +4909,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -4896,76 +4974,83 @@ msgstr "" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5753,7 +5838,7 @@ msgstr "" msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:104 msgid "Add Part Category" msgstr "" @@ -6055,7 +6140,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6347,10 +6432,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "" @@ -6363,51 +6444,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:91 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 +msgid "Import Line Items" +msgstr "" + +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:118 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:157 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:164 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:185 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:224 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:243 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6459,10 +6545,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6548,71 +6630,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7102,7 +7184,7 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:125 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/pt/messages.po b/src/frontend/src/locales/pt/messages.po index 4b42e83e9c..3c177fd141 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: 2024-07-17 16:38\n" +"PO-Revision-Date: 2024-07-25 18:20\n" "Last-Translator: \n" "Language-Team: Portuguese, Brazilian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -30,13 +30,21 @@ msgstr "Um erro ocorreu ao renderizar este componente. Verifique o console para msgid "Title" msgstr "Título" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "Abrir na página de administrador" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" -msgstr "Copiar para área de transferência" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "Copiada" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" +msgstr "Copiar" #: src/components/buttons/PrintingActions.tsx:93 msgid "Print Label" @@ -54,16 +62,14 @@ msgstr "Impressão de etiqueta finalizada com sucesso" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "Sim" msgid "No" msgstr "Não" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "Sem nome definido" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "Copiada" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "Copiar" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "Remover Imagem" @@ -152,21 +150,20 @@ msgid "Remove the associated image from this item?" msgstr "Remover imagem associada a este item?" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "Remover" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "Cancelar" @@ -179,34 +176,34 @@ msgstr "Arraste e solte para carregar" msgid "Click to select file(s)" msgstr "Clique para selecionar o(s) arquivo(s)" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "Limpar" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "Enviar" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "Selecionar de imagens existentes" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "Selecionar Imagem" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "Carregar nova imagem" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "Enviar Imagem" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "Excluir imagem" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "Upload da imagem falhou" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "Sucesso" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "Erro ao salvar o template" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "Salvar e Recarregar Prévia" @@ -321,19 +318,19 @@ msgstr "Visualizar Atualização" msgid "The preview has been updated successfully." msgstr "A pré-visualização foi atualizado com sucesso." -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "Recarregar pré-visualização" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "Use o modelo armazenado atualmente no servidor" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "Recarregar pré-visualização" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "Use o modelo armazenado atualmente no servidor" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "Salvar o modelo atual e recarregar a pré-visualização" @@ -341,11 +338,11 @@ msgstr "Salvar o modelo atual e recarregar a pré-visualização" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "Selecione a instância para pré-visualizar" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "Erro ao carregar template" @@ -357,11 +354,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -397,7 +394,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "Erro no formulário" @@ -405,17 +403,20 @@ msgstr "Erro no formulário" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "Atualizar" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "Redefinir senha" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "Email" @@ -587,9 +588,10 @@ msgstr "Servidor" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "Servidor" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "Nome" @@ -639,6 +641,32 @@ msgstr "Nome: {0}" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "Estado: <0>funcionário ({0}), <1>extensões{1}" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "Buscar..." + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "Buscar" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "Carregando" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "Ações de código de barras" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "Visualizar" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "Ver código de barras" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "Vincular Código de Barras" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "Vincular código de barras personalizado" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "Desvincular Código de Barras" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "Desvincular código de barras personalizado" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "Editar" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "Apagar item" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "Duplicar" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "Duplicar item" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "Leia Mais" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "Erro desconhecido" @@ -926,6 +958,30 @@ msgstr "PLH" msgid "This panel is a placeholder." msgstr "Este painel é um espaço reservado." +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "Informações da Versão" @@ -1164,11 +1220,6 @@ msgstr "Versão" msgid "Server Version" msgstr "Versão do servidor" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "Buscar..." - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "Nada encontrado..." @@ -1190,7 +1241,7 @@ msgstr "Configurações de conta" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "Configurações do Sistema" @@ -1253,25 +1304,25 @@ msgstr "Documentação" msgid "About" msgstr "Sobre" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "Notificações" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "Você não tem notificações não lidas." -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "Notificação" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "Marcar como lido" @@ -1308,23 +1359,23 @@ msgstr "Nenhum resultado" msgid "No results available for search query" msgstr "Não há resultados disponíveis para a pesquisa" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "Modelo desconhecido: {model}" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "Peça" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "Peças" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "Teste de Modelos de Peças" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "Peças do Fornecedor" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "Fabricante da peça" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "Peças do Fabricante" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "Categoria da Peça" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "Categorias de Peça" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "Item de estoque" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "Itens de Estoque" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "Localização do estoque" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "Locais de estoque" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "Históricos de estoque" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "Produzir" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "Empresa" @@ -1486,17 +1536,17 @@ msgstr "Códigos de Projeto" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "Pedido de Compra" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Pedidos de compra" @@ -1511,16 +1561,16 @@ msgstr "Linhas do Pedido de Compra" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "Pedido de Venda" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Pedidos de vendas" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "Pedido de Devolução" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "Pedidos de Devolução" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "Endereço" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "Endereços" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "Contato" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "Contatos" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "Proprietários" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "Usuários" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" +msgstr "Grupos" + +#: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:212 +#: src/components/render/ModelType.tsx:220 msgid "Label Template" msgstr "Modelo de Etiqueta" -#: src/components/render/ModelType.tsx:213 +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "Modelos de Etiqueta" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "Modelo de Relatório" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "Modelos de Relatório" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "Configuração de Plugin" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "Configurações de Plugins" @@ -1626,48 +1686,48 @@ msgstr "Configurações de Plugins" msgid "Shipment" msgstr "Remessa" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "Inativo" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "Sem Estoque" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "Estoque" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "Número de Série" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "Chinês (Tradicional)" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "Início" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "Visite a documentação para aprender mais sobre o InvenTree" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "Sobre o InvenTree" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "Sobre a organização InvenTree" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "Informações do Servidor" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "Sobre esta instância do Inventree" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "Informações de Licença" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "Licenças para dependências de serviços" @@ -2395,74 +2455,74 @@ msgstr "Notícias Atuais" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "Página Web" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "GitHub" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "Demonstração" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "Comprando" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "Vendas" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "Área de testes" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "Primeiros passos" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "Primeiros passos com InvenTree" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "API" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "Documentação de API do InvenTree" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "Manual do Desenvolvedor" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "Manual do desenvolvedor InvenTree" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "FAQ" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "Perguntas Frequentes" @@ -2470,20 +2530,20 @@ msgstr "Perguntas Frequentes" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "Informação do Sistema" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "Informação do Sistema" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "Licenças" @@ -2664,105 +2724,106 @@ msgstr "Categoria de peça parental" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "Escolher local" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "Destino do item selecionado" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "Localização padrão da categoria de peça selecionada" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "Localização do estoque recebida selecionada" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "Localização padrão selecionada" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "Ler Código de Barras" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "Definir Localização" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "Atribuir Código em Lote{0}" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "Alterar Status" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "Remover item da lista" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "Localização" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "Armazenar no local padrão" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "Armazenar no destino do item de linha" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "Armazenar com estoque já recebido" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "Código de Lote" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "Embalagem" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "Embalagem" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "Estado" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "Anotação" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "Código (SKU)" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "Recebido" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "Ações" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "Excluir Itens de Linha" @@ -2816,7 +2878,7 @@ msgstr "Excluir Itens de Linha" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "Adicionar quantidade dada como pacotes e não itens individuais" @@ -2824,15 +2886,15 @@ msgstr "Adicionar quantidade dada como pacotes e não itens individuais" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "Inserir quantidade inicial deste item de estoque" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "Números de Série" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 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)" @@ -2840,82 +2902,82 @@ msgstr "Insira o número de série para novo estoque (ou deixe em branco)" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "Adicionar Item do Estoque" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "Carregando..." -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "Mover para o local padrão" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "Em Estoque" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "Mover" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "Adicionar" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "Contar" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "Adicionar Estoque" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "Remover Estoque" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "Transferir Estoque" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "Contar Estoque" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "Mudar estado do estoque" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "Mesclar estoque" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "Excluir Item de Estoque" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "Local de estoque pai" @@ -3032,7 +3094,7 @@ msgstr "Item Excluído" msgid "Are you sure you want to delete this item?" msgstr "Tem certeza que deseja remover este item?" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "Checando se você já está conectado" @@ -3053,7 +3115,7 @@ msgstr "Registre-se abaixo" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "Desconectando" @@ -3114,7 +3176,7 @@ msgstr "Esta página é uma substituição para a página inicial antiga com as msgid "Welcome to your Dashboard{0}" msgstr "Bem-vindo ao seu painel{0}" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "Esta página é uma demonstração para as possibilidades da interface de plataforma." @@ -3403,83 +3465,128 @@ msgstr "Sobrenome:" msgid "Use pseudo language" msgstr "Usar pseudo-idioma" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "Contas de Login Único (SSO)" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "Não habilitado" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "Contas de Login Único (SSO) não estão habilitadas neste servidor" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "Multifator" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "A autenticação de múltiplos fatores não está configurada para sua conta" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "Os seguintes endereços de e-mail estão associados à sua conta:" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "Principal" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "Verificado" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "Não Verificado" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "Adicionar E-mail" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "E-mail" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "Endereço de e-mail" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "Tornar Principal" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "Reenviar Verificação" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "Adicionar E-mail" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "O provedor não foi configurado" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "Não configurado" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "Não há nenhuma rede social conectada a essa conta." -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "Você pode entrar na sua conta usando qualquer uma das seguintes contas de terceiros" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "Ativo" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "barras" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "Unidades personalizadas" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "Parâmetros da Peça" @@ -3558,8 +3665,12 @@ msgid "Category Parameters" msgstr "Parâmetros de Categoria" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" -msgstr "Tipos de localização" +msgid "Location Types" +msgstr "" + +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 @@ -3683,11 +3794,6 @@ msgstr "Tarefas com Falhas" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "Grupos" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "Selecione as configurações relevantes para o ciclo de vida dos usuários. Mais informações disponíveis em" @@ -3704,7 +3810,7 @@ msgstr "Entrar" msgid "Barcodes" msgstr "Códigos de barras" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "Preços" @@ -3716,29 +3822,29 @@ msgstr "Preços" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "Etiquetas" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "Relatórios" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "Balanço" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "Ordens de Produções" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "Mudar para Configuração de Usuário" @@ -3754,11 +3860,11 @@ msgstr "Segurança" msgid "Display Options" msgstr "Opções de exibição" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "Configurações de Conta" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "Mudar para Configuração do Sistema" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "Referência" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "Referência" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "Descrição" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "Pedido de Produção Filhos" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "Anexos" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "Anotações" @@ -3991,12 +4097,12 @@ msgstr "Adicionar Pedido de Produção" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "Ações do Pedido de Produção" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "Cancelar pedido" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "Número de telefone" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "Endereço de e-mail" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "Moeda Padrão" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "Moeda Padrão" msgid "Supplier" msgstr "Fornecedor" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "Fabricante" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "Fabricante" msgid "Customer" msgstr "Cliente" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "Detalhes" #: src/pages/company/CompanyDetail.tsx:175 -#~ msgid "Edit company" -#~ msgstr "Edit company" - -#: src/pages/company/CompanyDetail.tsx:176 msgid "Manufactured Parts" msgstr "Peças Fabricadas" -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:175 +#~ msgid "Edit company" +#~ msgstr "Edit company" + +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "Peças Fornecidas" @@ -4077,192 +4183,202 @@ msgstr "Peças Fornecidas" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "Estoque Atribuído" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "Editar Empresa" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "Ações da Empresa" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "Peça Interna" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "Link Externo" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "Número de Peça do Fabricante" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "Detalhes do Fabricante" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "Detalhes de peça do Fabricante" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "Parâmetros" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "Fornecedores" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "Editar Peça do Fabricante" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "Adicionar Peça do Fabricante" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "Excluir Peça do Fabricante" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "Ações de peça do Fabricante" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "Peça do Fabricante" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "Quantidade de embalagens" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "Disponibilidade do fornecedor" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "Disponibilidade Atualizada" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "Disponibilidade" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "Detalhes de Peça do Fornecedor" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "Estoque Recebido" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "Preço do fornecedor" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "Ações de Peças do Fornecedor" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "Editar Peça do Fornecedor" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "Excluir Peça do Fornecedor" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "Adicionar Peça do Fornecedor" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "Caminho" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "Categoria Pai" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "Sub-categorias" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "Estrutural" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "Localização padrão do pai" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "Local Padrão" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "Categoria de peça de nível superior" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "Editar Categoria da Peça" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "Apagar items" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "Excluir Categoria de Peça" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "Ações da Peça" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "Ação para peças nesta categoria" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "Ação de Categorias Filhas" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "Ação para categorias filhas desta categoria" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "Ações de Categoria" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "Detalhes da categoria" @@ -4357,25 +4473,6 @@ msgstr "Pode Produzir" msgid "Building" msgstr "Produzindo" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "Ativo" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "Fornecedor Padrão" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "Variantes" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "Alocações" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "Fabricantes" @@ -4498,7 +4595,7 @@ msgstr "Peças Relacionadas" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "No pedido" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "Em Produção" @@ -4540,25 +4637,25 @@ msgstr "Excluir Peça" msgid "Deleting this part cannot be reversed" msgstr "Excluir esta peça não é reversível" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "Ações de Estoque" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "Contagem do estoque" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "Transferir estoque de peça" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "Ações da Peça" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "Nenhum dado de preço foi encontrado para esta peça." -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "Resumo de Preços" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "Histórico de Compras" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "Preço Interno" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "Preço LDM" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "Preço de Variante" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "Preço de Venda" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "Histórico de Vendas" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "Histórico de Vendas" msgid "Total Price" msgstr "Preço Total" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "Componente" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "Preço Mínimo" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "Preço Máximo" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "Preço Unitário" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "Atualizado" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "Gráfico Pizza" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "Grafico de Barras" @@ -4824,7 +4921,7 @@ msgstr "Criado em" msgid "Order Details" msgstr "Detalhes do pedido" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "Editar Pedido de Devolução" msgid "Add Return Order" msgstr "Adicionar Pedido de Devolução" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "Clientes" @@ -4870,64 +4967,64 @@ msgstr "Adicionar Pedido de Vendas" msgid "Pending Shipments" msgstr "Envios Pendentes" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "Localização Pai" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "Sub-locais" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "Externo" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "Tipo de Localização" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "Local de estoque de alto nível" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "Detalhes da localização" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "Editar Local de Estoque" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5044,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "Rastreamento de Estoque" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "Dados de Teste" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "Itens Instalados" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "Itens Filhos" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "Editar Item do Estoque" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5097,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "Operações de Estoque" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "Contagem de estoque" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "Adicionar estoque" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "Remover estoque" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "Transferir" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "Transferir estoque" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5158,19 @@ msgstr "Selecionar Colunas" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "CSV" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "CSV" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "TSV" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5178,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5243,83 @@ msgstr "Adicionar Filtro" msgid "Clear Filters" msgstr "Limpar Filtros" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "Nenhum registro encontrado" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "O servidor retornou um tipo de dado incorreto" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "Requisição inválida" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "Não autorizado" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "Proibido" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "Não encontrado" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "Remover registros selecionados" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" -msgstr "Tem certeza que deseja apagar os registros selecionados?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "Essa ação não pode ser desfeita!" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "Registos removidos" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "Registros foram removidos com sucesso" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "Falha ao remover registros" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "Ações de código de barras" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "Remover registros selecionados" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "Atualizar dados" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "Filtros da Tabela" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "Montagem" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "Incluir Subcategorias" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "Incluir subcategorias nos resultados" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "Mostrar categorias estruturais" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "Nova Categoria de Peça" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "Adicionar Categoria de Peça" @@ -6305,7 +6409,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "Selecionar" @@ -6597,10 +6701,6 @@ msgstr "Excluir Parâmetro" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "Excluir Peça do Fabricante" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "Excluir Peça do Fabricante" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "Descrição da Peça" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "Quantidade Total" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "Código do Fornecedor" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "Link do Fornecedor" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "Código do Fabricante" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "Destino" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "Adicionar Item de Linha" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "Editar Item de Linha" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "Excluir Item de Linha" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "Receber item de linha" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "Adicionar item de linha" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "Receber itens" @@ -6714,10 +6814,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "Excluir Peça do Fornecedor" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "Taxa" @@ -6803,71 +6899,71 @@ msgstr "Parado" msgid "Attempts" msgstr "Tentativas" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "Grupo com o id {id} não encontrado" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "Ocorreu um erro ao obter os detalhes do grupo" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "Permissão definida" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "Apagar grupo" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "Grupo excluído" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "Você tem certeza de que deseja excluir este grupo?" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "Adicionar grupo" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "Editar grupo" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "Usuário adicionado" msgid "Edit user" msgstr "Editar usuário" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "Mostrar itens que estão disponíveis" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "Incluir Sublocais" @@ -7332,32 +7428,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "Incluir sublocais nos resultados" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "Incluir sublocais nos resultados" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "Mostrar locais estruturais" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "Mostrar locais externos" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "Tem Tipo de localização" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "Adicionar Local de Estoque" diff --git a/src/frontend/src/locales/ro/messages.po b/src/frontend/src/locales/ro/messages.po index 052364c771..a3eaa87703 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: 2024-07-17 16:39\n" +"PO-Revision-Date: 2024-07-24 18:23\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" @@ -30,12 +30,20 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" msgstr "" #: src/components/buttons/PrintingActions.tsx:93 @@ -54,16 +62,14 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "" msgid "No" msgstr "" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "" @@ -152,21 +150,20 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "" @@ -179,34 +176,34 @@ msgstr "" msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "" @@ -321,19 +318,19 @@ msgstr "" msgid "The preview has been updated successfully." msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "" @@ -341,11 +338,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "" @@ -357,11 +354,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -397,7 +394,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "" @@ -405,17 +403,20 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" @@ -587,9 +588,10 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -639,6 +641,32 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "" @@ -926,6 +958,30 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1164,11 +1220,6 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1190,7 +1241,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "" @@ -1253,25 +1304,25 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "" @@ -1308,23 +1359,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "" @@ -1486,17 +1536,17 @@ msgstr "" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1511,16 +1561,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 -msgid "Import Sessions" -msgstr "" - -#: src/components/render/ModelType.tsx:212 -msgid "Label Template" +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" msgstr "" #: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 +msgid "Import Sessions" +msgstr "" + +#: src/components/render/ModelType.tsx:220 +msgid "Label Template" +msgstr "" + +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1626,48 +1686,48 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2395,74 +2455,74 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "" @@ -2470,20 +2530,20 @@ msgstr "" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "" @@ -2664,105 +2724,106 @@ msgstr "" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2816,7 +2878,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2824,15 +2886,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2840,82 +2902,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -3032,7 +3094,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" @@ -3053,7 +3115,7 @@ msgstr "" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -3114,7 +3176,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3403,83 +3465,128 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "" @@ -3558,9 +3665,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3683,11 +3794,6 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3704,7 +3810,7 @@ msgstr "" msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "" @@ -3716,29 +3822,29 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "" @@ -3754,11 +3860,11 @@ msgstr "" msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" @@ -3991,12 +4097,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "" +#: src/pages/company/CompanyDetail.tsx:175 +msgid "Manufactured Parts" +msgstr "" + #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" #~ msgstr "Edit company" -#: src/pages/company/CompanyDetail.tsx:176 -msgid "Manufactured Parts" -msgstr "" - -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -4077,192 +4183,202 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" @@ -4357,25 +4473,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4498,7 +4595,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4540,25 +4637,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4824,7 +4921,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4870,64 +4967,64 @@ msgstr "" msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5044,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5097,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5158,19 @@ msgstr "" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5178,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5243,83 @@ msgstr "" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6305,7 +6409,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6597,10 +6701,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6714,10 +6814,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6803,71 +6899,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7332,32 +7428,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/ru/messages.po b/src/frontend/src/locales/ru/messages.po index f4a15091b1..95d0abaaa3 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: 2024-07-17 16:38\n" +"PO-Revision-Date: 2024-07-24 18:23\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" @@ -30,13 +30,21 @@ msgstr "Произошла ошибка при отрисовки этого к msgid "Title" msgstr "Заголовок" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "Открыть в панели администратора" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" -msgstr "Копировать в буфер обмена" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "Скопировано" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" +msgstr "Копировать" #: src/components/buttons/PrintingActions.tsx:93 msgid "Print Label" @@ -54,16 +62,14 @@ msgstr "Печать этикеток успешно завершена" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "Да" msgid "No" msgstr "Нет" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "Имя не определено" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "Скопировано" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "Копировать" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "Убрать изображение" @@ -152,21 +150,20 @@ msgid "Remove the associated image from this item?" msgstr "Удалить связанное изображение?" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "Удалить" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "Отменить" @@ -179,34 +176,34 @@ msgstr "Перетащите для загрузки" msgid "Click to select file(s)" msgstr "Нажмите, чтобы выбрать файл(ы)" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "Очистить" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "Подтвердить" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "Выбрать из существующих изображений" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "Выбрать изображение" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "Загрузить новое изображение" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "Загрузить изображение" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "Удалить изображение" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "Не удалось загрузить изображение" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "Успешно" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "" @@ -321,19 +318,19 @@ msgstr "" msgid "The preview has been updated successfully." msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "Перезагрузить предварительный просмотр" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "Перезагрузить предварительный просмотр" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "" @@ -341,11 +338,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "" @@ -357,11 +354,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -397,7 +394,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "Ошибка формы" @@ -405,17 +403,20 @@ msgstr "Ошибка формы" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "Обновить" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "Сбросить пароль" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "Электронная почта" @@ -587,9 +588,10 @@ msgstr "Узел" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "Узел" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "Название" @@ -639,6 +641,32 @@ msgstr "Название: {0}" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "Состояние: <0>рабочий ({0}), <1>плагины{1}" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "Поиск" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "Загрузка" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "Привязать штрих-код" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "Привязать пользовательский штрих-код" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "Отвязать штрих-код" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "Отвязать пользовательский штрих-код" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "Изменить" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "Подробнее" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "Неизвестная ошибка" @@ -926,6 +958,30 @@ msgstr "" msgid "This panel is a placeholder." msgstr "Эта панель является условной." +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1164,11 +1220,6 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1190,7 +1241,7 @@ msgstr "Настройки аккаунта" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "" @@ -1253,25 +1304,25 @@ msgstr "Документация" msgid "About" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "Уведомления" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "У вас нет непрочитанных уведомлений." -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "Пометить как прочитанное" @@ -1308,23 +1359,23 @@ msgstr "Нет результатов" msgid "No results available for search query" msgstr "Нет доступных результатов для поискового запроса" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "Неизвестная модель: {model}" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "Детали" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "Детали поставщиков" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "Детали производителей" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "Категория детали" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "Категории деталей" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "На складе" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "Складские позиции" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "Места хранения" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "Сборка" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "" @@ -1486,17 +1536,17 @@ msgstr "" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Заказы на закупку" @@ -1511,16 +1561,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Заказы на продажу" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "Заказы на возврат" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 -msgid "Import Sessions" -msgstr "" - -#: src/components/render/ModelType.tsx:212 -msgid "Label Template" +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" msgstr "" #: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 +msgid "Import Sessions" +msgstr "" + +#: src/components/render/ModelType.tsx:220 +msgid "Label Template" +msgstr "" + +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1626,48 +1686,48 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "Неактивный" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "Остатки" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "Домашняя страница" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "О программе InvenTree" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "О программе InvenTree org" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "Об этом экземпляре Inventree" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "Информация о лицензии" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "Лицензии на зависимостей сервиса" @@ -2395,74 +2455,74 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "Веб-сайт" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "GitHub" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "Демо" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "Покупка" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "Продажи" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "Песочница" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "Начать работу" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "Начало работы с InvenTree" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "API" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "Документация по API InvenTree" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "Руководство разработчика" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "Инструкция по разработке InvenTree" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "FAQ" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "Часто задаваемые вопросы" @@ -2470,20 +2530,20 @@ msgstr "Часто задаваемые вопросы" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "Информация о системе" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "Информация о системе" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "Лицензии" @@ -2664,105 +2724,106 @@ msgstr "" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2816,7 +2878,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2824,15 +2886,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2840,82 +2902,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "В наличии" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "Добавить Остатки" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "Удалить запасы" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "Перемещение запасов" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "Подсчет остатков" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "Изменить статус запасов" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "Объединить Запасы" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "Удалить складскую позицию" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -3032,7 +3094,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" @@ -3053,7 +3115,7 @@ msgstr "" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -3114,7 +3176,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3403,83 +3465,128 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "Специальная единица" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "" @@ -3558,9 +3665,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3683,11 +3794,6 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3704,7 +3810,7 @@ msgstr "" msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "" @@ -3716,29 +3822,29 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "Заказы на сборку" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "" @@ -3754,11 +3860,11 @@ msgstr "" msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "Описание" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" @@ -3991,12 +4097,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "" +#: src/pages/company/CompanyDetail.tsx:175 +msgid "Manufactured Parts" +msgstr "" + #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" #~ msgstr "Edit company" -#: src/pages/company/CompanyDetail.tsx:176 -msgid "Manufactured Parts" -msgstr "" - -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -4077,192 +4183,202 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "Внешняя ссылка" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "Родительская категория" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "Категория детали верхнего уровня" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "Добавить категорию детали" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "Удалить категорию детали" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" @@ -4357,25 +4473,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4498,7 +4595,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4540,25 +4637,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4824,7 +4921,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4870,64 +4967,64 @@ msgstr "" msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5044,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5097,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5158,19 @@ msgstr "Выбрать столбцы" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "CSV" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "CSV" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "TSV" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5178,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5243,83 @@ msgstr "Добавить фильтр" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "Включая подкатегории" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "Включить подкатегории в результаты" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6305,7 +6409,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6597,10 +6701,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "Описание детали" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "Ссылка поставщика" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6714,10 +6814,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6803,71 +6899,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7332,32 +7428,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/sk/messages.po b/src/frontend/src/locales/sk/messages.po index fb1c150e3e..1318cba46b 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: 2024-07-17 16:38\n" +"PO-Revision-Date: 2024-07-24 18:23\n" "Last-Translator: \n" "Language-Team: Slovak\n" "Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n" @@ -30,12 +30,20 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" msgstr "" #: src/components/buttons/PrintingActions.tsx:93 @@ -54,16 +62,14 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "" msgid "No" msgstr "" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "" @@ -152,21 +150,20 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "" @@ -179,34 +176,34 @@ msgstr "" msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "" @@ -321,19 +318,19 @@ msgstr "" msgid "The preview has been updated successfully." msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "" @@ -341,11 +338,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "" @@ -357,11 +354,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -397,7 +394,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "" @@ -405,17 +403,20 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" @@ -587,9 +588,10 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -639,6 +641,32 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "" @@ -926,6 +958,30 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1164,11 +1220,6 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1190,7 +1241,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "" @@ -1253,25 +1304,25 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "" @@ -1308,23 +1359,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "" @@ -1486,17 +1536,17 @@ msgstr "" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1511,16 +1561,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 -msgid "Import Sessions" -msgstr "" - -#: src/components/render/ModelType.tsx:212 -msgid "Label Template" +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" msgstr "" #: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 +msgid "Import Sessions" +msgstr "" + +#: src/components/render/ModelType.tsx:220 +msgid "Label Template" +msgstr "" + +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1626,48 +1686,48 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2395,74 +2455,74 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "" @@ -2470,20 +2530,20 @@ msgstr "" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "" @@ -2664,105 +2724,106 @@ msgstr "" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2816,7 +2878,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2824,15 +2886,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2840,82 +2902,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -3032,7 +3094,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" @@ -3053,7 +3115,7 @@ msgstr "" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -3114,7 +3176,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3403,83 +3465,128 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "" @@ -3558,9 +3665,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3683,11 +3794,6 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3704,7 +3810,7 @@ msgstr "" msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "" @@ -3716,29 +3822,29 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "" @@ -3754,11 +3860,11 @@ msgstr "" msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" @@ -3991,12 +4097,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "" +#: src/pages/company/CompanyDetail.tsx:175 +msgid "Manufactured Parts" +msgstr "" + #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" #~ msgstr "Edit company" -#: src/pages/company/CompanyDetail.tsx:176 -msgid "Manufactured Parts" -msgstr "" - -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -4077,192 +4183,202 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" @@ -4357,25 +4473,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4498,7 +4595,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4540,25 +4637,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4824,7 +4921,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4870,64 +4967,64 @@ msgstr "" msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5044,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5097,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5158,19 @@ msgstr "" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5178,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5243,83 @@ msgstr "" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6305,7 +6409,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6597,10 +6701,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6714,10 +6814,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6803,71 +6899,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7332,32 +7428,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/sl/messages.po b/src/frontend/src/locales/sl/messages.po index db4305c690..3929fdac5e 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: 2024-07-17 16:38\n" +"PO-Revision-Date: 2024-07-24 18:23\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" @@ -30,12 +30,20 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" msgstr "" #: src/components/buttons/PrintingActions.tsx:93 @@ -54,16 +62,14 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "" msgid "No" msgstr "" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "" @@ -152,21 +150,20 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "" @@ -179,34 +176,34 @@ msgstr "" msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "" @@ -321,19 +318,19 @@ msgstr "" msgid "The preview has been updated successfully." msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "" @@ -341,11 +338,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "" @@ -357,11 +354,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -397,7 +394,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "" @@ -405,17 +403,20 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" @@ -587,9 +588,10 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -639,6 +641,32 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "" @@ -926,6 +958,30 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1164,11 +1220,6 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1190,7 +1241,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "" @@ -1253,25 +1304,25 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "" @@ -1308,23 +1359,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "" @@ -1486,17 +1536,17 @@ msgstr "" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1511,16 +1561,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 -msgid "Import Sessions" -msgstr "" - -#: src/components/render/ModelType.tsx:212 -msgid "Label Template" +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" msgstr "" #: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 +msgid "Import Sessions" +msgstr "" + +#: src/components/render/ModelType.tsx:220 +msgid "Label Template" +msgstr "" + +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1626,48 +1686,48 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2395,74 +2455,74 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "" @@ -2470,20 +2530,20 @@ msgstr "" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "" @@ -2664,105 +2724,106 @@ msgstr "" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2816,7 +2878,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2824,15 +2886,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2840,82 +2902,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -3032,7 +3094,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" @@ -3053,7 +3115,7 @@ msgstr "" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -3114,7 +3176,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3403,83 +3465,128 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "" @@ -3558,9 +3665,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3683,11 +3794,6 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3704,7 +3810,7 @@ msgstr "" msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "" @@ -3716,29 +3822,29 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "" @@ -3754,11 +3860,11 @@ msgstr "" msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" @@ -3991,12 +4097,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "" +#: src/pages/company/CompanyDetail.tsx:175 +msgid "Manufactured Parts" +msgstr "" + #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" #~ msgstr "Edit company" -#: src/pages/company/CompanyDetail.tsx:176 -msgid "Manufactured Parts" -msgstr "" - -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -4077,192 +4183,202 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" @@ -4357,25 +4473,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4498,7 +4595,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4540,25 +4637,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4824,7 +4921,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4870,64 +4967,64 @@ msgstr "" msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5044,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5097,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5158,19 @@ msgstr "" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5178,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5243,83 @@ msgstr "" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6305,7 +6409,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6597,10 +6701,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6714,10 +6814,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6803,71 +6899,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7332,32 +7428,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/sr/messages.po b/src/frontend/src/locales/sr/messages.po index 8f5f3a30ba..00e6455b66 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: 2024-07-17 16:39\n" +"PO-Revision-Date: 2024-07-24 18:24\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" @@ -30,13 +30,21 @@ msgstr "" msgid "Title" msgstr "Naslov" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" -msgstr "Kopiraj na tablu" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" +msgstr "" #: src/components/buttons/PrintingActions.tsx:93 msgid "Print Label" @@ -54,16 +62,14 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "Da" msgid "No" msgstr "Ne" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "" @@ -152,21 +150,20 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "" @@ -179,34 +176,34 @@ msgstr "" msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "Podnesi" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "Uspešno" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "" @@ -321,19 +318,19 @@ msgstr "" msgid "The preview has been updated successfully." msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "" @@ -341,11 +338,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "" @@ -357,11 +354,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -397,7 +394,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "Greška Obrasca" @@ -405,17 +403,20 @@ msgstr "Greška Obrasca" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "Obnovi" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "Resetujte lozinku" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "E-pošta" @@ -587,9 +588,10 @@ msgstr "Host" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "Host" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "Ime" @@ -639,6 +641,32 @@ msgstr "Naziv: {0}" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "Status: <0>worker ({0}), <1>plugins{1}" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "Pretraga" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "Učitavanje" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "Akcije Barkoda" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "Vid" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "Pogledaj barkod" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "Link Barkoda" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "Linkuj prilagođeni barkod" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "Prekini vezu Barkoda" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "Prekini link prilagođenog barkoda" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "Izmeni" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "Obriši stavku" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "Dupliciraj" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "Dupliciraj stavku" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "Saznaj više" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "Nepoznata greška" @@ -926,6 +958,30 @@ msgstr "PLH" msgid "This panel is a placeholder." msgstr "Ovaj panel je rezervisan." +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "Informacije o verziji" @@ -1164,11 +1220,6 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1190,7 +1241,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "" @@ -1253,25 +1304,25 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "" @@ -1308,23 +1359,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "" @@ -1486,17 +1536,17 @@ msgstr "" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1511,16 +1561,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 -msgid "Import Sessions" -msgstr "" - -#: src/components/render/ModelType.tsx:212 -msgid "Label Template" +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" msgstr "" #: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 +msgid "Import Sessions" +msgstr "" + +#: src/components/render/ModelType.tsx:220 +msgid "Label Template" +msgstr "" + +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1626,48 +1686,48 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2395,74 +2455,74 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "" @@ -2470,20 +2530,20 @@ msgstr "" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "" @@ -2664,105 +2724,106 @@ msgstr "" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2816,7 +2878,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2824,15 +2886,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2840,82 +2902,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -3032,7 +3094,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" @@ -3053,7 +3115,7 @@ msgstr "" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -3114,7 +3176,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3403,83 +3465,128 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "" @@ -3558,9 +3665,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3683,11 +3794,6 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3704,7 +3810,7 @@ msgstr "" msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "" @@ -3716,29 +3822,29 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "" @@ -3754,11 +3860,11 @@ msgstr "" msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" @@ -3991,12 +4097,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "" +#: src/pages/company/CompanyDetail.tsx:175 +msgid "Manufactured Parts" +msgstr "" + #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" #~ msgstr "Edit company" -#: src/pages/company/CompanyDetail.tsx:176 -msgid "Manufactured Parts" -msgstr "" - -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -4077,192 +4183,202 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" @@ -4357,25 +4473,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4498,7 +4595,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4540,25 +4637,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4824,7 +4921,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4870,64 +4967,64 @@ msgstr "" msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5044,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5097,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5158,19 @@ msgstr "" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5178,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5243,83 @@ msgstr "" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6305,7 +6409,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6597,10 +6701,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6714,10 +6814,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6803,71 +6899,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7332,32 +7428,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/sv/messages.po b/src/frontend/src/locales/sv/messages.po index e358e998f0..fb47c6ebde 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: 2024-07-17 16:38\n" +"PO-Revision-Date: 2024-07-24 18:23\n" "Last-Translator: \n" "Language-Team: Swedish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -30,13 +30,21 @@ msgstr "Ett fel inträffade vid rendering av denna komponent. Se konsolen för m msgid "Title" msgstr "Titel" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "Öppna i administratörsgränssnittet" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" -msgstr "Kopiera till urklipp" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "Kopierad" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" +msgstr "Kopiera" #: src/components/buttons/PrintingActions.tsx:93 msgid "Print Label" @@ -54,16 +62,14 @@ msgstr "Utskrift av etiketter lyckades" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "Ja" msgid "No" msgstr "Nej" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "Inget namn definierat" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "Kopierad" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "Kopiera" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "Ta bort bild" @@ -152,21 +150,20 @@ 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:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "Ta bort" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "Avbryt" @@ -179,34 +176,34 @@ msgstr "Dra och släpp för att ladda upp" msgid "Click to select file(s)" msgstr "Klicka för att välja fil(er)" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "Rensa" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "Skicka" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "Välj från befintliga bilder" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "Välj bild" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "Ladda upp ny bild" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "Ladda upp bild" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "Radera bild" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "Bilduppladdning misslyckades" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "Lyckades" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "Fel vid sparande av mall" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "Spara och ladda om förhandsgranskning" @@ -321,19 +318,19 @@ msgstr "Förhandsgranskningen uppdaterad" msgid "The preview has been updated successfully." msgstr "Uppdateringen av förhandsgranskningen lyckades." -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "Ladda om förhandsgranskning" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "Använd mallen som finns sparad på servern" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "Ladda om förhandsgranskning" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "Använd mallen som finns sparad på servern" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "Spara den aktuella mallen och ladda om förhandsgranskningen" @@ -341,11 +338,11 @@ msgstr "Spara den aktuella mallen och ladda om förhandsgranskningen" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "Välj instans att förhandsgranska" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "Fel vid rendering av mall" @@ -357,11 +354,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -397,7 +394,8 @@ msgstr "Serverfel" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "Formulär fel" @@ -405,17 +403,20 @@ msgstr "Formulär fel" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "Uppdatera" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "Återställ lösenord" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "E-post" @@ -587,9 +588,10 @@ msgstr "Värd" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "Värd" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "Namn" @@ -639,6 +641,32 @@ msgstr "Namn: {0}" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "Stat: <0>arbetare ({0}), <1>plugins{1}" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "Sök..." + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "Sök" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "Laddar" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "Streckkods åtgärder" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "Visa" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "Visa streckkod" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "Länka streckkod" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "Länka anpassad streckkod" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "Ta bort länk för streckkod" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "Ta bort länk för anpassad streckkod" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "Redigera" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "Radera objekt" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "Duplicera" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "Duplicera objekt" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "Läs mer" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "Okänt fel" @@ -926,6 +958,30 @@ msgstr "PLH" msgid "This panel is a placeholder." msgstr "Denna panel är en platshållare." +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "Versionsinformation" @@ -1164,11 +1220,6 @@ msgstr "Version" msgid "Server Version" msgstr "Serverversion" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "Sök..." - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "Ingenting hittades..." @@ -1190,7 +1241,7 @@ msgstr "Kontoinställningar" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "Systeminställningar" @@ -1253,25 +1304,25 @@ msgstr "Dokumentation" msgid "About" msgstr "Om" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "Notifikationer" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "Du har inga olästa aviseringar." -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "Avisering" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "Markera som läst" @@ -1308,23 +1359,23 @@ msgstr "Inga resultat" msgid "No results available for search query" msgstr "Inga resultat tillgängliga för sökfrågan" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "Okänd modell: {model}" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "Artkel" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "Artiklar" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "Leverantörsartikel" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "Tillverkarens artiklar" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "Artikelkategorier" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "Artikel i lager" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "Lagerplats" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "Bygg" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "" @@ -1486,17 +1536,17 @@ msgstr "Projektkoder" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Inköpsorder" @@ -1511,16 +1561,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Försäljningsorder" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "Returorder" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "Användare" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" +msgstr "Grupper" + +#: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:212 +#: src/components/render/ModelType.tsx:220 msgid "Label Template" msgstr "Etikettmall" -#: src/components/render/ModelType.tsx:213 +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "Etikettmallar" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1626,48 +1686,48 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "Inaktiv" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "Lagersaldo" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "Hem" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "Om InvenTree org" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "Om denna Inventree instans" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2395,74 +2455,74 @@ msgstr "Aktuella nyheter" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "Webbplats" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "GitHub" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "Demo" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "Kom igång" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "Komma igång med InvenTree" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "API" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "InvenTree API dokumentation" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "Utvecklarmanual" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "InvenTree utvecklarmanual" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "Frågor och svar" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "Vanliga frågor (FAQ)" @@ -2470,20 +2530,20 @@ msgstr "Vanliga frågor (FAQ)" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "Licenser" @@ -2664,105 +2724,106 @@ msgstr "" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "Skanna streckkod" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "Ändra status" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "Status" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "Åtgärder" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2816,7 +2878,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2824,15 +2886,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "Serienummer" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2840,82 +2902,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -3032,7 +3094,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "Kontrollerar om du redan är inloggad" @@ -3053,7 +3115,7 @@ msgstr "" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -3114,7 +3176,7 @@ msgstr "Denna sida är en ersättning för den gamla startsidan med samma inform msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3403,83 +3465,128 @@ msgstr "Efternamn:" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "Lägg till e-postadress" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "E-postadress" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "Aktiv" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "" @@ -3558,9 +3665,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3683,11 +3794,6 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "Grupper" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3704,7 +3810,7 @@ msgstr "" msgid "Barcodes" msgstr "Streckkoder" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "" @@ -3716,29 +3822,29 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "Etiketter" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "Byggordrar" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "" @@ -3754,11 +3860,11 @@ msgstr "" msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "Kontoinställningar" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "Beskrivning" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" @@ -3991,12 +4097,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "Telefonnummer" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "E-postadress" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "" +#: src/pages/company/CompanyDetail.tsx:175 +msgid "Manufactured Parts" +msgstr "" + #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" #~ msgstr "Edit company" -#: src/pages/company/CompanyDetail.tsx:176 -msgid "Manufactured Parts" -msgstr "" - -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -4077,192 +4183,202 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "Redigera företag" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "Parametrar" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" @@ -4357,25 +4473,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "Aktiv" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4498,7 +4595,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4540,25 +4637,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "Komponent" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4824,7 +4921,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4870,64 +4967,64 @@ msgstr "" msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5044,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5097,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5158,19 @@ msgstr "Välj kolumner" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "CSV" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "CSV" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "TSV" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5178,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5243,83 @@ msgstr "Lägg till filter" msgid "Clear Filters" msgstr "Rensa filter" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "Inga resultat hittades" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "Felaktig begäran" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "Ej behörig" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "Otillåten" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "Hittades inte" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "Streckkods åtgärder" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "Uppdatera data" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "Tabellfilter" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "Montering" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "Inkludera underkategorier" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6305,7 +6409,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6597,10 +6701,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6714,10 +6814,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6803,71 +6899,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "Radera grupp" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "Är du säker på att du vill radera denna grupp?" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "Lägg till grupp" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "Redigera grupp" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "" msgid "Edit user" msgstr "Redigera användare" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "Ikon" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7332,32 +7428,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/th/messages.po b/src/frontend/src/locales/th/messages.po index ed31558e82..93e62bdd32 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: 2024-07-17 16:39\n" +"PO-Revision-Date: 2024-07-24 18:24\n" "Last-Translator: \n" "Language-Team: Thai\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -30,12 +30,20 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" msgstr "" #: src/components/buttons/PrintingActions.tsx:93 @@ -54,16 +62,14 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "" msgid "No" msgstr "" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "" @@ -152,21 +150,20 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "" @@ -179,34 +176,34 @@ msgstr "" msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "" @@ -321,19 +318,19 @@ msgstr "" msgid "The preview has been updated successfully." msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "" @@ -341,11 +338,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "" @@ -357,11 +354,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -397,7 +394,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "" @@ -405,17 +403,20 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" @@ -587,9 +588,10 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -639,6 +641,32 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "" @@ -926,6 +958,30 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1164,11 +1220,6 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1190,7 +1241,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "" @@ -1253,25 +1304,25 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "" @@ -1308,23 +1359,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "" @@ -1486,17 +1536,17 @@ msgstr "" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1511,16 +1561,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 -msgid "Import Sessions" -msgstr "" - -#: src/components/render/ModelType.tsx:212 -msgid "Label Template" +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" msgstr "" #: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 +msgid "Import Sessions" +msgstr "" + +#: src/components/render/ModelType.tsx:220 +msgid "Label Template" +msgstr "" + +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1626,48 +1686,48 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2395,74 +2455,74 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "" @@ -2470,20 +2530,20 @@ msgstr "" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "" @@ -2664,105 +2724,106 @@ msgstr "" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2816,7 +2878,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2824,15 +2886,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2840,82 +2902,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -3032,7 +3094,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" @@ -3053,7 +3115,7 @@ msgstr "" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -3114,7 +3176,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3403,83 +3465,128 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "" @@ -3558,9 +3665,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3683,11 +3794,6 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3704,7 +3810,7 @@ msgstr "" msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "" @@ -3716,29 +3822,29 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "" @@ -3754,11 +3860,11 @@ msgstr "" msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" @@ -3991,12 +4097,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "" +#: src/pages/company/CompanyDetail.tsx:175 +msgid "Manufactured Parts" +msgstr "" + #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" #~ msgstr "Edit company" -#: src/pages/company/CompanyDetail.tsx:176 -msgid "Manufactured Parts" -msgstr "" - -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -4077,192 +4183,202 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" @@ -4357,25 +4473,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4498,7 +4595,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4540,25 +4637,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4824,7 +4921,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4870,64 +4967,64 @@ msgstr "" msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5044,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5097,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5158,19 @@ msgstr "" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5178,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5243,83 @@ msgstr "" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6305,7 +6409,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6597,10 +6701,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6714,10 +6814,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6803,71 +6899,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7332,32 +7428,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/tr/messages.po b/src/frontend/src/locales/tr/messages.po index 6f856bfad7..32d166736e 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: 2024-07-17 16:38\n" +"PO-Revision-Date: 2024-07-24 18:23\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -30,12 +30,20 @@ msgstr "" msgid "Title" msgstr "Başlık" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" msgstr "" #: src/components/buttons/PrintingActions.tsx:93 @@ -54,16 +62,14 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "" msgid "No" msgstr "" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "" @@ -152,21 +150,20 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "Vazgeç" @@ -179,34 +176,34 @@ msgstr "" msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "Gönder" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "Başarılı" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "" @@ -321,19 +318,19 @@ msgstr "" msgid "The preview has been updated successfully." msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "" @@ -341,11 +338,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "" @@ -357,11 +354,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -397,7 +394,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "" @@ -405,17 +403,20 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "Parolayı sıfırla" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "E-posta" @@ -587,9 +588,10 @@ msgstr "Sunucu" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "Sunucu" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "Adı" @@ -639,6 +641,32 @@ msgstr "İsim: {0}" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "Durum: <0>worker ({0}), <1>eklenti{1}" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "Yükleniyor" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "Devamını Oku" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "Bilinmeyen hata" @@ -926,6 +958,30 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1164,11 +1220,6 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1190,7 +1241,7 @@ msgstr "Hesap ayarları" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "" @@ -1253,25 +1304,25 @@ msgstr "Dokümantasyon" msgid "About" msgstr "Hakkında" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "Bildirimler" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "" @@ -1308,23 +1359,23 @@ msgstr "Sonuç yok" msgid "No results available for search query" msgstr "Arama sorgusu için sonuç yok" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "Parça" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "Parçalar" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "Tedarikçi Parçaları" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "Üretici Parçaları" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "Parça Kategorileri" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "Stok Kalemleri" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "Stok Konumları" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "" @@ -1486,17 +1536,17 @@ msgstr "" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Satın Alma Emirleri" @@ -1511,16 +1561,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Satış Emirleri" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "İade Emirleri" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 -msgid "Import Sessions" -msgstr "" - -#: src/components/render/ModelType.tsx:212 -msgid "Label Template" +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" msgstr "" #: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 +msgid "Import Sessions" +msgstr "" + +#: src/components/render/ModelType.tsx:220 +msgid "Label Template" +msgstr "" + +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1626,48 +1686,48 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "Stok" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "Ana Sayfa" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "InvenTree org hakkında" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2395,74 +2455,74 @@ msgstr "Güncel Haberler" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "Web Sitesi" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "GitHub" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "Demo" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "Başlarken" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "InvenTree ile başlarken" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "API" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "InvenTree API dokümantasyonu" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "Geliştirici Kılavuzu" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "InvenTree geliştirici kılavuzu" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "SSS" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "Sıkça sorulan sorular" @@ -2470,20 +2530,20 @@ msgstr "Sıkça sorulan sorular" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "Lisanslar" @@ -2664,105 +2724,106 @@ msgstr "" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "Durum" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "Eylemler" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2816,7 +2878,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2824,15 +2886,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2840,82 +2902,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -3032,7 +3094,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "Zaten giriş yapıp yapmadığınız kontrol ediliyor" @@ -3053,7 +3115,7 @@ msgstr "" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -3114,7 +3176,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3403,83 +3465,128 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "Aktif" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "" @@ -3558,9 +3665,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3683,11 +3794,6 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3704,7 +3810,7 @@ msgstr "" msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "" @@ -3716,29 +3822,29 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "Yapım İşi Emirleri" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "" @@ -3754,11 +3860,11 @@ msgstr "" msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "Açıklama" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" @@ -3991,12 +4097,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "" +#: src/pages/company/CompanyDetail.tsx:175 +msgid "Manufactured Parts" +msgstr "" + #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" #~ msgstr "Edit company" -#: src/pages/company/CompanyDetail.tsx:176 -msgid "Manufactured Parts" -msgstr "" - -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -4077,192 +4183,202 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" @@ -4357,25 +4473,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "Aktif" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4498,7 +4595,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4540,25 +4637,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "Bileşen" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4824,7 +4921,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4870,64 +4967,64 @@ msgstr "" msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5044,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5097,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5158,19 @@ msgstr "Sütunları Seç" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5178,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5243,83 @@ msgstr "Filtre Ekle" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "Hiç kayıt bulunamadı" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "Hatalı istek" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "Yetkisiz" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "Yasaklı" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "Bulunamadı" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "Barkod işlemleri" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "Veriyi yenile" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "Tablo filtreleri" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "Montaj" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "Alt Kategorileri Dahil Et" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6305,7 +6409,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6597,10 +6701,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6714,10 +6814,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6803,71 +6899,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7332,32 +7428,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/uk/messages.po b/src/frontend/src/locales/uk/messages.po index 614e18c6a0..6d548f70f3 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: 2024-07-17 16:38\n" +"PO-Revision-Date: 2024-07-24 18:23\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" @@ -30,12 +30,20 @@ msgstr "Сталася помилка під час рендерингу цьо msgid "Title" msgstr "" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" msgstr "" #: src/components/buttons/PrintingActions.tsx:93 @@ -54,16 +62,14 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "" msgid "No" msgstr "" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "" @@ -152,21 +150,20 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "" @@ -179,34 +176,34 @@ msgstr "" msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "" @@ -321,19 +318,19 @@ msgstr "" msgid "The preview has been updated successfully." msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "" @@ -341,11 +338,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "" @@ -357,11 +354,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -397,7 +394,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "" @@ -405,17 +403,20 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" @@ -587,9 +588,10 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -639,6 +641,32 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "" @@ -926,6 +958,30 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1164,11 +1220,6 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1190,7 +1241,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "" @@ -1253,25 +1304,25 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "" @@ -1308,23 +1359,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "" @@ -1486,17 +1536,17 @@ msgstr "" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1511,16 +1561,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 -msgid "Import Sessions" -msgstr "" - -#: src/components/render/ModelType.tsx:212 -msgid "Label Template" +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" msgstr "" #: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 +msgid "Import Sessions" +msgstr "" + +#: src/components/render/ModelType.tsx:220 +msgid "Label Template" +msgstr "" + +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1626,48 +1686,48 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2395,74 +2455,74 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "" @@ -2470,20 +2530,20 @@ msgstr "" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "" @@ -2664,105 +2724,106 @@ msgstr "" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2816,7 +2878,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2824,15 +2886,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2840,82 +2902,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -3032,7 +3094,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" @@ -3053,7 +3115,7 @@ msgstr "" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -3114,7 +3176,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3403,83 +3465,128 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "" @@ -3558,9 +3665,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3683,11 +3794,6 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3704,7 +3810,7 @@ msgstr "" msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "" @@ -3716,29 +3822,29 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "" @@ -3754,11 +3860,11 @@ msgstr "" msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" @@ -3991,12 +4097,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "" +#: src/pages/company/CompanyDetail.tsx:175 +msgid "Manufactured Parts" +msgstr "" + #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" #~ msgstr "Edit company" -#: src/pages/company/CompanyDetail.tsx:176 -msgid "Manufactured Parts" -msgstr "" - -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -4077,192 +4183,202 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" @@ -4357,25 +4473,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4498,7 +4595,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4540,25 +4637,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4824,7 +4921,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4870,64 +4967,64 @@ msgstr "" msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5044,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5097,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5158,19 @@ msgstr "" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5178,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5243,83 @@ msgstr "" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6305,7 +6409,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6597,10 +6701,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6714,10 +6814,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6803,71 +6899,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7332,32 +7428,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/vi/messages.po b/src/frontend/src/locales/vi/messages.po index 3f5867d939..f4e4b8005b 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: 2024-07-17 16:38\n" +"PO-Revision-Date: 2024-07-24 18:24\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -30,13 +30,21 @@ msgstr "" msgid "Title" msgstr "Tiêu đề" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" -msgstr "Sao chép đến bảng tạm" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "Đã sao chép" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" +msgstr "Sao chép" #: src/components/buttons/PrintingActions.tsx:93 msgid "Print Label" @@ -54,16 +62,14 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "Đồng ý" msgid "No" msgstr "Không" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "Đã sao chép" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "Sao chép" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "" @@ -152,21 +150,20 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "Hủy bỏ" @@ -179,34 +176,34 @@ msgstr "" msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "Gửi" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "Thành công" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "" @@ -321,19 +318,19 @@ msgstr "" msgid "The preview has been updated successfully." msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "" @@ -341,11 +338,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "" @@ -357,11 +354,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -397,7 +394,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "Lỗi form" @@ -405,17 +403,20 @@ msgstr "Lỗi form" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "Cập nhật" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "Đặt lại mật khẩu" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "Địa chỉ email" @@ -587,9 +588,10 @@ msgstr "Host" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "Host" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "Tên" @@ -639,6 +641,32 @@ msgstr "Tên: {0}" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "Trạng thái: <0>worker ({0}), <1>plugins{1}" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "Tìm kiếm" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "Đang tải" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "Chức năng mã vạch" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "Xem" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "Xem mã vạch" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "Liên kết mã vạch" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "Liên kết mã vạch tùy chỉnh" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "Gỡ liên kết mã vạch" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "Gỡ bỏ mã vạch tùy chỉnh" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "Sửa" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "Xoá mặt hàng" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "Nhân bản" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "Nhân bản hàng hóa" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "Xem thêm" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "Lỗi không xác định" @@ -926,6 +958,30 @@ msgstr "PLH" msgid "This panel is a placeholder." msgstr "Bảng điều khiển này là dự kiến." +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "Thông tin phiên bản" @@ -1164,11 +1220,6 @@ msgstr "Phiên bản" msgid "Server Version" msgstr "Phiên bản máy chủ" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1190,7 +1241,7 @@ msgstr "Cài đặt tài khoản" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "Thiết lập hệ thống" @@ -1253,25 +1304,25 @@ msgstr "Tài liệu" msgid "About" msgstr "Giới thiệu" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "Thông báo" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "Bạn chưa có thông báo mới." -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "Thông báo" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "Đánh dấu đã đọc" @@ -1308,23 +1359,23 @@ msgstr "Không có kết quả" msgid "No results available for search query" msgstr "Không có kết quả nào được tìm thấy với truy vấn tìm kiếm" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "Model không rõ: {model}" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "Phụ kiện" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "Phụ tùng" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "Nhà cung cấp phụ kiện" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "Phụ kiện nhà sản xuất" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "Nhà sản xuất phụ kiện" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "Danh mục phụ kiện" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "Danh mục phụ kiện" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "Hàng trong kho" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "Hàng trong kho" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "Vị trí kho hàng" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "Vị trí kho hàng" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "Xây dựng" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "Công ty" @@ -1486,17 +1536,17 @@ msgstr "Mã dự án" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "Đơn đặt mua" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Đơn hàng mua" @@ -1511,16 +1561,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "Đơn đặt bán" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Đơn hàng bán" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "Đơn hàng trả lại" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "Đơn hàng trả lại" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "Địa chỉ" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "Địa chỉ" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "Liên hệ" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "Danh bạ" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "Chủ sở hữu" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "Người dùng" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" +msgstr "Nhóm" + +#: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 msgid "Import Sessions" msgstr "" -#: src/components/render/ModelType.tsx:212 +#: src/components/render/ModelType.tsx:220 msgid "Label Template" msgstr "" -#: src/components/render/ModelType.tsx:213 +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1626,48 +1686,48 @@ msgstr "" msgid "Shipment" msgstr "Lô hàng" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "Kho hàng" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "Chinese (Traditional)" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "Trang chủ" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "Giới thiệu" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "Giới thiệu InvenTree org" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "Về thực thể Inventree" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2395,74 +2455,74 @@ msgstr "Tin hiện tại" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "Trang web" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "GitHub" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "Demo" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "Mua sắm" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "Bán hàng" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "Sân chơi" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "Bắt đầu" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "Bắt đầu với InvenTree" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "API" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "Tài liệu InvenTree API" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "Sổ tay lập trình" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "Sổ tay lập trình InvenTree" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "Câu hỏi thường gặp" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "Câu hỏi thường gặp" @@ -2470,20 +2530,20 @@ msgstr "Câu hỏi thường gặp" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "Thông tin hệ thống" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "Thông tin hệ thống" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "Giấy phép" @@ -2664,105 +2724,106 @@ msgstr "Danh mục phụ kiện cha" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "Trạng thái" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "Đã nhận" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "Chức năng" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2816,7 +2878,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 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ẻ" @@ -2824,15 +2886,15 @@ msgstr "Thêm số lượng đã có theo gói thay vì các mục đơn lẻ" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 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:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "Số sê-ri" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Điền số sê-ri cho kho mới (hoặc để trống)" @@ -2840,82 +2902,82 @@ msgstr "Điền số sê-ri cho kho mới (hoặc để trống)" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "Còn hàng" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "Thêm" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "Đếm" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -3032,7 +3094,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "Đang kiểm tra trạng thái đăng nhập của bạn" @@ -3053,7 +3115,7 @@ msgstr "" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -3114,7 +3176,7 @@ msgstr "Trang này đã được thay thế cho trang khởi động cũ với t msgid "Welcome to your Dashboard{0}" msgstr "Chào mừng bạn đến với bảng điều khiển của bạn" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "Trang này là trình diễn tính năng dự kiến cho nền tảng UI." @@ -3403,83 +3465,128 @@ msgstr "" msgid "Use pseudo language" msgstr "Sử dụng ngôn ngữ pseudo" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "Tài khoản đăng nhập một lần" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "Không kích hoạt" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "Máy chủ này chưa bật chức năng đăng nhập một lần" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "Đa nhân tố" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "Chưa cấu hình xác thực đa nhân tố cho tài khoản của bạn" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "Địa chỉ email sau đã được liên kết với tài khoản của bạn:" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "Chính" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "Đã xác minh" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "Chưa xác minh" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "Thêm địa chỉ email" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "Email" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "Địa chỉ Email" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "Gửi lại xác minh" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "Thêm email" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "Nhà cung cấp chưa được cấu hình" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "Chưa được cấu hình" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "Hoạt động" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "thanh" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "Tham số phụ kiện" @@ -3558,9 +3665,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3683,11 +3794,6 @@ msgstr "Tác vụ thất bại" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "Nhóm" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "Chọn thiết lập thích hợp với vòng đời người dùng. Có thêm ở" @@ -3704,7 +3810,7 @@ msgstr "Đăng nhập" msgid "Barcodes" msgstr "Mã vạch" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "Giá bán" @@ -3716,29 +3822,29 @@ msgstr "Giá bán" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "Nhãn" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "Báo cáo" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "Kiểm kê" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "Đơn đặt bản dựng" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "Chuyển sang thiết lập người dùng" @@ -3754,11 +3860,11 @@ msgstr "Bảo mật" msgid "Display Options" msgstr "Tùy chọn hiển thị" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "Cài đặt tài khoản" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "Chuyển sang thiết lập hệ thống" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "Mô tả" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "Đơn đặt bản dựng con" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "Đính kèm" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "Ghi chú" @@ -3991,12 +4097,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "" msgid "Supplier" msgstr "Nhà cung cấp" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "Nhà sản xuất" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "Nhà sản xuất" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "Chi tiết" #: src/pages/company/CompanyDetail.tsx:175 -#~ msgid "Edit company" -#~ msgstr "Edit company" - -#: src/pages/company/CompanyDetail.tsx:176 msgid "Manufactured Parts" msgstr "" -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:175 +#~ msgid "Edit company" +#~ msgstr "Edit company" + +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -4077,192 +4183,202 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "Sửa doanh nghiệp" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "Thông số" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "Nhà cung cấp" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "Số lượng gói" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "Sửa sản phẩm nhà cung cấp" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "Thêm sản phẩm nhà cung cấp" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "Đường dẫn" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "Cấu trúc" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" @@ -4357,25 +4473,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "Hoạt động" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "Biến thể" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "Phân bổ" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4498,7 +4595,7 @@ msgstr "Phụ kiện liên quan" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "On Order" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4540,25 +4637,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "Thành phần" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "Đơn giá" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "Đã cập nhật" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4824,7 +4921,7 @@ msgstr "" msgid "Order Details" msgstr "Chi tiết đơn đặt" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4870,64 +4967,64 @@ msgstr "" msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5044,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "Theo dõi tồn kho" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "Mục đã cài đặt" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "Mục con" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "Sửa hàng trong kho" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5097,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "Đếm hàng" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "Thêm hàng" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "Xóa hàng" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "Chuyển" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "Chuyển giao hàng" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5158,19 @@ msgstr "Chọn cột" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "CSV" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "CSV" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "TSV" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5178,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5243,83 @@ msgstr "Thêm bộ lọc" msgid "Clear Filters" msgstr "Xóa bộ lọc" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "Không tìm thấy biểu ghi" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "Yêu cầu không hợp lệ" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "Chưa cấp quyền" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "Bị cấm" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "Không tìm thấy" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "Chức năng mã vạch" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "Làm mới dữ liệu" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "Bộ lọc bảng" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "Lắp ráp" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "Bao gồm danh mục con" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6305,7 +6409,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6597,10 +6701,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "Mô tả sản phẩm" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "Tổng số lượng" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "Mã nhà cung cấp" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "Liên kết nhà cung cấp" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "Mã nhà sản xuất" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "Đích đến" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "Thêm hạng mục" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "Sửa hạng mục" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "Nhận hạng mục" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "Thêm hạng mục" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "Nhận hàng hóa" @@ -6714,10 +6814,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6803,71 +6899,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7332,32 +7428,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/zh-hans/messages.po b/src/frontend/src/locales/zh-hans/messages.po index c95d8e2ba9..5a8e8c6af0 100644 --- a/src/frontend/src/locales/zh-hans/messages.po +++ b/src/frontend/src/locales/zh-hans/messages.po @@ -25,12 +25,20 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" +#~ msgid "Copy to clipboard" +#~ msgstr "" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" msgstr "" #: src/components/buttons/PrintingActions.tsx:93 @@ -49,16 +57,14 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 -#: src/components/importer/ImportDataSelector.tsx:172 +#: src/components/forms/fields/ApiFormField.tsx:313 +#: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -126,18 +132,10 @@ msgstr "" msgid "No" msgstr "" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "" @@ -147,21 +145,20 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "" @@ -174,34 +171,34 @@ msgstr "" msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "" @@ -238,7 +235,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -352,11 +349,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -392,7 +389,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "" @@ -400,17 +398,20 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -435,12 +436,12 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:59 #: src/components/forms/AuthenticationForm.tsx:76 #: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:165 +#: src/functions/auth.tsx:164 msgid "Check your input and try again." msgstr "" #: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:155 msgid "Mail delivery successful" msgstr "" @@ -485,7 +486,7 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" @@ -563,6 +564,7 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:80 #: src/pages/part/PartDetail.tsx:127 #: src/pages/stock/LocationDetail.tsx:87 @@ -573,7 +575,7 @@ msgstr "" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 #: src/tables/stock/LocationTypesTable.tsx:60 msgid "Name" @@ -624,7 +626,7 @@ msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" @@ -649,60 +651,60 @@ msgstr "" msgid "Thumbnail" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:155 +#: src/components/importer/ImportDataSelector.tsx:166 msgid "Importing Rows" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:156 +#: src/components/importer/ImportDataSelector.tsx:167 msgid "Please wait while the data is imported" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:173 +#: src/components/importer/ImportDataSelector.tsx:184 msgid "An error occurred while importing data" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:194 +#: src/components/importer/ImportDataSelector.tsx:205 msgid "Edit Data" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:222 +#: src/components/importer/ImportDataSelector.tsx:233 msgid "Delete Row" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:252 +#: src/components/importer/ImportDataSelector.tsx:263 msgid "Row" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:270 +#: src/components/importer/ImportDataSelector.tsx:281 msgid "Row contains errors" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:311 +#: src/components/importer/ImportDataSelector.tsx:322 msgid "Accept" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:344 +#: src/components/importer/ImportDataSelector.tsx:355 msgid "Valid" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:345 +#: src/components/importer/ImportDataSelector.tsx:356 msgid "Filter by row validation status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:350 +#: src/components/importer/ImportDataSelector.tsx:361 #: src/tables/build/BuildOutputTable.tsx:205 msgid "Complete" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:351 +#: src/components/importer/ImportDataSelector.tsx:362 msgid "Filter by row completion status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:368 +#: src/components/importer/ImportDataSelector.tsx:379 msgid "Import selected rows" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:394 msgid "Processing Data" msgstr "" @@ -804,59 +806,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "" @@ -865,7 +871,7 @@ msgid "Read More" msgstr "" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "" @@ -902,6 +908,30 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1141,7 +1171,7 @@ msgid "Server Version" msgstr "" #: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 +#: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "" @@ -1166,7 +1196,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "" @@ -1221,25 +1251,25 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "" @@ -1276,23 +1306,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:210 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1301,9 +1331,9 @@ msgid "Part" msgstr "" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:173 #: src/pages/part/CategoryDetail.tsx:112 #: src/pages/part/CategoryDetail.tsx:237 #: src/pages/part/CategoryDetail.tsx:267 @@ -1328,9 +1358,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:192 -#: src/pages/company/SupplierPartDetail.tsx:320 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1341,7 +1371,7 @@ msgid "Supplier Parts" msgstr "" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:127 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1355,24 +1385,23 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/part/CategoryDetail.tsx:251 #: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 +#: src/pages/company/CompanyDetail.tsx:200 #: src/pages/stock/LocationDetail.tsx:120 #: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/stock/LocationDetail.tsx:379 msgid "Stock Items" msgstr "" @@ -1382,8 +1411,8 @@ msgstr "" #: src/components/render/ModelType.tsx:82 #: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:371 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1404,7 +1433,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" @@ -1430,7 +1459,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "" @@ -1454,17 +1483,17 @@ msgstr "" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:226 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1479,16 +1508,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1507,9 +1536,9 @@ msgid "Return Order" msgstr "" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" @@ -1519,7 +1548,7 @@ msgid "Address" msgstr "" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "" @@ -1531,7 +1560,7 @@ msgid "Contact" msgstr "" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "" @@ -1544,7 +1573,7 @@ msgid "Owners" msgstr "" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1557,36 +1586,46 @@ msgid "Users" msgstr "" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 -msgid "Import Sessions" -msgstr "" - -#: src/components/render/ModelType.tsx:212 -msgid "Label Template" +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" msgstr "" #: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 +msgid "Import Sessions" +msgstr "" + +#: src/components/render/ModelType.tsx:220 +msgid "Label Template" +msgstr "" + +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1596,8 +1635,8 @@ msgstr "" #: src/components/render/Part.tsx:24 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:307 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "" @@ -1609,33 +1648,33 @@ msgid "No stock" msgstr "" #: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "" #: src/components/render/Stock.tsx:52 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" #: src/components/render/Stock.tsx:54 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:127 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2227,13 +2266,13 @@ msgid "Chinese (Traditional)" msgstr "" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2249,13 +2288,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "" @@ -2264,17 +2303,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2351,74 +2390,74 @@ msgstr "" msgid "Current News" msgstr "" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:236 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:294 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:351 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "" @@ -2426,20 +2465,20 @@ msgstr "" #~ msgid "Instance" #~ msgstr "" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "" @@ -2556,105 +2595,106 @@ msgstr "" #~ msgid "Part updated" #~ msgstr "" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:145 -#: src/pages/company/SupplierPartDetail.tsx:196 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:148 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2664,43 +2704,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:99 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:134 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2708,7 +2749,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2716,15 +2757,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2732,82 +2773,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -2827,11 +2868,11 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:117 msgid "Logged Out" msgstr "" -#: src/functions/auth.tsx:119 +#: src/functions/auth.tsx:118 msgid "Successfully logged out" msgstr "" @@ -2847,20 +2888,20 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "" -#: src/functions/auth.tsx:157 +#: src/functions/auth.tsx:156 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:164 +#: src/functions/auth.tsx:163 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:194 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:196 +#: src/functions/auth.tsx:195 msgid "Successfully logged in" msgstr "" @@ -2920,7 +2961,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" @@ -2937,7 +2978,7 @@ msgstr "" msgid "Register below" msgstr "" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -2998,7 +3039,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3163,83 +3204,128 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3318,9 +3404,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3443,11 +3533,6 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3464,7 +3549,7 @@ msgstr "" msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "" @@ -3476,29 +3561,29 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "" @@ -3514,11 +3599,11 @@ msgstr "" msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3561,9 +3646,9 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:78 -#: src/pages/company/SupplierPartDetail.tsx:85 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:94 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 @@ -3702,23 +3787,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:174 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:265 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" @@ -3745,12 +3832,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -3764,23 +3851,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:195 -#: src/pages/company/SupplierPartDetail.tsx:298 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -3788,21 +3875,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:96 -#: src/pages/company/ManufacturerPartDetail.tsx:240 -#: src/pages/company/SupplierPartDetail.tsx:124 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -3810,20 +3897,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "" +#: src/pages/company/CompanyDetail.tsx:175 +msgid "Manufactured Parts" +msgstr "" + #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" #~ msgstr "" -#: src/pages/company/CompanyDetail.tsx:176 -msgid "Manufactured Parts" -msgstr "" - -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -3831,118 +3918,128 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:71 -#: src/pages/company/SupplierPartDetail.tsx:78 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:77 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:86 -#: src/pages/company/SupplierPartDetail.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:104 -#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:133 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:142 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:148 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:160 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:191 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:198 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:214 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:252 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:152 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:112 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:170 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:197 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:206 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:212 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:236 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:251 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:275 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:282 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" @@ -3982,7 +4079,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:160 #: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/tables/part/PartCategoryTable.tsx:94 msgid "Edit Part Category" msgstr "" @@ -4111,25 +4208,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4193,7 +4271,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4217,7 +4295,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4234,7 +4312,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4252,7 +4330,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4271,7 +4349,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4294,68 +4372,68 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:309 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4364,19 +4442,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4390,28 +4468,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:179 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4478,19 +4556,19 @@ msgstr "" msgid "Maximum Value" msgstr "" -#: src/pages/part/pricing/PricingPanel.tsx:25 +#: src/pages/part/pricing/PricingPanel.tsx:24 msgid "No data available" msgstr "" -#: src/pages/part/pricing/PricingPanel.tsx:66 +#: src/pages/part/pricing/PricingPanel.tsx:65 msgid "No Data" msgstr "" -#: src/pages/part/pricing/PricingPanel.tsx:67 +#: src/pages/part/pricing/PricingPanel.tsx:66 msgid "No pricing data available" msgstr "" -#: src/pages/part/pricing/PricingPanel.tsx:78 +#: src/pages/part/pricing/PricingPanel.tsx:77 msgid "Loading pricing data" msgstr "" @@ -4574,7 +4652,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4602,7 +4680,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4651,13 +4729,13 @@ msgid "Default Parts" msgstr "" #: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:336 +#: src/tables/stock/StockLocationTable.tsx:115 msgid "Edit Stock Location" msgstr "" #: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "" @@ -4677,7 +4755,7 @@ msgstr "" msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:331 msgid "Location Actions" msgstr "" @@ -4697,52 +4775,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -4750,34 +4828,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -4811,19 +4889,19 @@ msgstr "" #~ msgid "Excel" #~ msgstr "" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -4831,7 +4909,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -4896,76 +4974,83 @@ msgstr "" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5753,7 +5838,7 @@ msgstr "" msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:104 msgid "Add Part Category" msgstr "" @@ -6055,7 +6140,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6347,10 +6432,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "" @@ -6363,51 +6444,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:91 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 +msgid "Import Line Items" +msgstr "" + +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:118 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:157 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:164 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:185 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:224 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:243 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6459,10 +6545,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6548,71 +6630,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7102,7 +7184,7 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:125 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/zh-hant/messages.po b/src/frontend/src/locales/zh-hant/messages.po index 34e1b13b10..61141cc992 100644 --- a/src/frontend/src/locales/zh-hant/messages.po +++ b/src/frontend/src/locales/zh-hant/messages.po @@ -25,12 +25,20 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" +#~ msgid "Copy to clipboard" +#~ msgstr "" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" msgstr "" #: src/components/buttons/PrintingActions.tsx:93 @@ -49,16 +57,14 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 -#: src/components/importer/ImportDataSelector.tsx:172 +#: src/components/forms/fields/ApiFormField.tsx:313 +#: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -126,18 +132,10 @@ msgstr "" msgid "No" msgstr "" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "" @@ -147,21 +145,20 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "" @@ -174,34 +171,34 @@ msgstr "" msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "" @@ -238,7 +235,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -352,11 +349,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -392,7 +389,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "" @@ -400,17 +398,20 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -435,12 +436,12 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:59 #: src/components/forms/AuthenticationForm.tsx:76 #: src/components/forms/AuthenticationForm.tsx:211 -#: src/functions/auth.tsx:165 +#: src/functions/auth.tsx:164 msgid "Check your input and try again." msgstr "" #: src/components/forms/AuthenticationForm.tsx:70 -#: src/functions/auth.tsx:156 +#: src/functions/auth.tsx:155 msgid "Mail delivery successful" msgstr "" @@ -485,7 +486,7 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" @@ -563,6 +564,7 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:80 #: src/pages/part/PartDetail.tsx:127 #: src/pages/stock/LocationDetail.tsx:87 @@ -573,7 +575,7 @@ msgstr "" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 #: src/tables/stock/LocationTypesTable.tsx:60 msgid "Name" @@ -624,7 +626,7 @@ msgstr "" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" @@ -649,60 +651,60 @@ msgstr "" msgid "Thumbnail" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:155 +#: src/components/importer/ImportDataSelector.tsx:166 msgid "Importing Rows" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:156 +#: src/components/importer/ImportDataSelector.tsx:167 msgid "Please wait while the data is imported" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:173 +#: src/components/importer/ImportDataSelector.tsx:184 msgid "An error occurred while importing data" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:194 +#: src/components/importer/ImportDataSelector.tsx:205 msgid "Edit Data" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:222 +#: src/components/importer/ImportDataSelector.tsx:233 msgid "Delete Row" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:252 +#: src/components/importer/ImportDataSelector.tsx:263 msgid "Row" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:270 +#: src/components/importer/ImportDataSelector.tsx:281 msgid "Row contains errors" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:311 +#: src/components/importer/ImportDataSelector.tsx:322 msgid "Accept" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:344 +#: src/components/importer/ImportDataSelector.tsx:355 msgid "Valid" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:345 +#: src/components/importer/ImportDataSelector.tsx:356 msgid "Filter by row validation status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:350 +#: src/components/importer/ImportDataSelector.tsx:361 #: src/tables/build/BuildOutputTable.tsx:205 msgid "Complete" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:351 +#: src/components/importer/ImportDataSelector.tsx:362 msgid "Filter by row completion status" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:368 +#: src/components/importer/ImportDataSelector.tsx:379 msgid "Import selected rows" msgstr "" -#: src/components/importer/ImportDataSelector.tsx:383 +#: src/components/importer/ImportDataSelector.tsx:394 msgid "Processing Data" msgstr "" @@ -804,59 +806,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "" @@ -865,7 +871,7 @@ msgid "Read More" msgstr "" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "" @@ -902,6 +908,30 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1141,7 +1171,7 @@ msgid "Server Version" msgstr "" #: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 +#: src/tables/part/PartThumbTable.tsx:192 msgid "Search..." msgstr "" @@ -1166,7 +1196,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "" @@ -1221,25 +1251,25 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "" @@ -1276,23 +1306,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:210 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1301,9 +1331,9 @@ msgid "Part" msgstr "" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 +#: src/pages/Index/Settings/SystemSettings.tsx:173 #: src/pages/part/CategoryDetail.tsx:112 #: src/pages/part/CategoryDetail.tsx:237 #: src/pages/part/CategoryDetail.tsx:267 @@ -1328,9 +1358,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:192 -#: src/pages/company/SupplierPartDetail.tsx:320 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1341,7 +1371,7 @@ msgid "Supplier Parts" msgstr "" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:127 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1355,24 +1385,23 @@ msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 #: src/pages/part/CategoryDetail.tsx:251 #: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 +#: src/pages/company/CompanyDetail.tsx:200 #: src/pages/stock/LocationDetail.tsx:120 #: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/stock/LocationDetail.tsx:379 msgid "Stock Items" msgstr "" @@ -1382,8 +1411,8 @@ msgstr "" #: src/components/render/ModelType.tsx:82 #: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:371 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1404,7 +1433,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" @@ -1430,7 +1459,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "" @@ -1454,17 +1483,17 @@ msgstr "" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:348 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:226 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1479,16 +1508,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1507,9 +1536,9 @@ msgid "Return Order" msgstr "" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" @@ -1519,7 +1548,7 @@ msgid "Address" msgstr "" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "" @@ -1531,7 +1560,7 @@ msgid "Contact" msgstr "" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "" @@ -1544,7 +1573,7 @@ msgid "Owners" msgstr "" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1557,36 +1586,46 @@ msgid "Users" msgstr "" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 -msgid "Import Sessions" -msgstr "" - -#: src/components/render/ModelType.tsx:212 -msgid "Label Template" +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" msgstr "" #: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 +msgid "Import Sessions" +msgstr "" + +#: src/components/render/ModelType.tsx:220 +msgid "Label Template" +msgstr "" + +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1596,8 +1635,8 @@ msgstr "" #: src/components/render/Part.tsx:24 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:307 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "" @@ -1609,33 +1648,33 @@ msgid "No stock" msgstr "" #: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "" #: src/components/render/Stock.tsx:52 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" #: src/components/render/Stock.tsx:54 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:127 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2227,13 +2266,13 @@ msgid "Chinese (Traditional)" msgstr "" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2249,13 +2288,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "" @@ -2264,17 +2303,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2351,74 +2390,74 @@ msgstr "" msgid "Current News" msgstr "" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:236 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:294 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:351 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "" @@ -2426,20 +2465,20 @@ msgstr "" #~ msgid "Instance" #~ msgstr "" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "" @@ -2556,105 +2595,106 @@ msgstr "" #~ msgid "Part updated" #~ msgstr "" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:145 -#: src/pages/company/SupplierPartDetail.tsx:196 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:148 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2664,43 +2704,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:99 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:117 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:134 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2708,7 +2749,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2716,15 +2757,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2732,82 +2773,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -2827,11 +2868,11 @@ msgstr "" #~ msgid "You have been logged out" #~ msgstr "" -#: src/functions/auth.tsx:118 +#: src/functions/auth.tsx:117 msgid "Logged Out" msgstr "" -#: src/functions/auth.tsx:119 +#: src/functions/auth.tsx:118 msgid "Successfully logged out" msgstr "" @@ -2847,20 +2888,20 @@ msgstr "" #~ msgid "Found an existing login - welcome back!" #~ msgstr "" -#: src/functions/auth.tsx:157 +#: src/functions/auth.tsx:156 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:164 +#: src/functions/auth.tsx:163 #: src/pages/Auth/Set-Password.tsx:39 msgid "Reset failed" msgstr "" -#: src/functions/auth.tsx:195 +#: src/functions/auth.tsx:194 msgid "Logged In" msgstr "" -#: src/functions/auth.tsx:196 +#: src/functions/auth.tsx:195 msgid "Successfully logged in" msgstr "" @@ -2920,7 +2961,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" @@ -2937,7 +2978,7 @@ msgstr "" msgid "Register below" msgstr "" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -2998,7 +3039,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3163,83 +3204,128 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3318,9 +3404,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3443,11 +3533,6 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3464,7 +3549,7 @@ msgstr "" msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "" @@ -3476,29 +3561,29 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "" @@ -3514,11 +3599,11 @@ msgstr "" msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3561,9 +3646,9 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:78 -#: src/pages/company/SupplierPartDetail.tsx:85 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:94 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 @@ -3702,23 +3787,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:174 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:265 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:276 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" @@ -3745,12 +3832,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:319 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -3764,23 +3851,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:109 -#: src/pages/company/SupplierPartDetail.tsx:195 -#: src/pages/company/SupplierPartDetail.tsx:298 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -3788,21 +3875,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:96 -#: src/pages/company/ManufacturerPartDetail.tsx:240 -#: src/pages/company/SupplierPartDetail.tsx:124 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -3810,20 +3897,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "" +#: src/pages/company/CompanyDetail.tsx:175 +msgid "Manufactured Parts" +msgstr "" + #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" #~ msgstr "" -#: src/pages/company/CompanyDetail.tsx:176 -msgid "Manufactured Parts" -msgstr "" - -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -3831,118 +3918,128 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:71 -#: src/pages/company/SupplierPartDetail.tsx:78 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:77 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:86 -#: src/pages/company/SupplierPartDetail.tsx:92 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:104 -#: src/pages/company/SupplierPartDetail.tsx:133 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:133 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:142 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:148 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:160 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:191 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:198 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:214 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:252 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:152 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:112 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:153 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:163 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:170 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:197 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:206 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:212 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:252 +#: src/pages/company/SupplierPartDetail.tsx:218 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:236 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:251 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:275 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:282 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" @@ -3982,7 +4079,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:160 #: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/tables/part/PartCategoryTable.tsx:94 msgid "Edit Part Category" msgstr "" @@ -4111,25 +4208,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4193,7 +4271,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4217,7 +4295,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4234,7 +4312,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4252,7 +4330,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4271,7 +4349,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4294,68 +4372,68 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:309 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4364,19 +4442,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4390,28 +4468,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:179 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4478,19 +4556,19 @@ msgstr "" msgid "Maximum Value" msgstr "" -#: src/pages/part/pricing/PricingPanel.tsx:25 +#: src/pages/part/pricing/PricingPanel.tsx:24 msgid "No data available" msgstr "" -#: src/pages/part/pricing/PricingPanel.tsx:66 +#: src/pages/part/pricing/PricingPanel.tsx:65 msgid "No Data" msgstr "" -#: src/pages/part/pricing/PricingPanel.tsx:67 +#: src/pages/part/pricing/PricingPanel.tsx:66 msgid "No pricing data available" msgstr "" -#: src/pages/part/pricing/PricingPanel.tsx:78 +#: src/pages/part/pricing/PricingPanel.tsx:77 msgid "Loading pricing data" msgstr "" @@ -4574,7 +4652,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:309 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4602,7 +4680,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4651,13 +4729,13 @@ msgid "Default Parts" msgstr "" #: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:336 +#: src/tables/stock/StockLocationTable.tsx:115 msgid "Edit Stock Location" msgstr "" #: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:341 msgid "Delete Stock Location" msgstr "" @@ -4677,7 +4755,7 @@ msgstr "" msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:331 msgid "Location Actions" msgstr "" @@ -4697,52 +4775,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -4750,34 +4828,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -4811,19 +4889,19 @@ msgstr "" #~ msgid "Excel" #~ msgstr "" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -4831,7 +4909,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -4896,76 +4974,83 @@ msgstr "" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5753,7 +5838,7 @@ msgstr "" msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:104 msgid "Add Part Category" msgstr "" @@ -6055,7 +6140,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6347,10 +6432,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "" @@ -6363,51 +6444,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:91 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 +msgid "Import Line Items" +msgstr "" + +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:118 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:157 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:164 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:171 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:185 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:207 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:224 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:243 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:281 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6459,10 +6545,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6548,71 +6630,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7102,7 +7184,7 @@ msgid "Filter by location type" msgstr "" #: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:125 msgid "Add Stock Location" msgstr "" diff --git a/src/frontend/src/locales/zh/messages.po b/src/frontend/src/locales/zh/messages.po index 43f7743750..2580d12945 100644 --- a/src/frontend/src/locales/zh/messages.po +++ b/src/frontend/src/locales/zh/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: zh\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"PO-Revision-Date: 2024-07-25 18:20\n" "Last-Translator: \n" "Language-Team: Chinese Traditional\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -30,12 +30,20 @@ msgstr "" msgid "Title" msgstr "" -#: src/components/buttons/AdminButton.tsx:83 +#: src/components/buttons/AdminButton.tsx:80 msgid "Open in admin interface" msgstr "" #: src/components/buttons/CopyButton.tsx:18 -msgid "Copy to clipboard" +#~ msgid "Copy to clipboard" +#~ msgstr "Copy to clipboard" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copied" +msgstr "" + +#: src/components/buttons/CopyButton.tsx:24 +msgid "Copy" msgstr "" #: src/components/buttons/PrintingActions.tsx:93 @@ -54,16 +62,14 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/ApiForm.tsx:538 -#: src/components/forms/fields/ApiFormField.tsx:321 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 #: src/components/nav/SearchDrawer.tsx:426 #: src/pages/ErrorPage.tsx:11 -#: src/pages/part/PartPricingPanel.tsx:71 -#: src/tables/InvenTreeTable.tsx:470 -#: src/tables/InvenTreeTable.tsx:544 +#: src/pages/part/PartPricingPanel.tsx:67 +#: src/tables/InvenTreeTable.tsx:486 #: src/tables/bom/BomTable.tsx:444 #: src/tables/stock/StockItemTestResultTable.tsx:294 msgid "Error" @@ -131,18 +137,10 @@ msgstr "" msgid "No" msgstr "" -#: src/components/details/Details.tsx:294 +#: src/components/details/Details.tsx:292 msgid "No name defined" msgstr "" -#: src/components/details/Details.tsx:331 -msgid "Copied" -msgstr "" - -#: src/components/details/Details.tsx:331 -msgid "Copy" -msgstr "" - #: src/components/details/DetailsImage.tsx:65 msgid "Remove Image" msgstr "" @@ -152,21 +150,20 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:535 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:192 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:299 -#: src/pages/stock/StockDetail.tsx:465 +#: src/forms/StockForms.tsx:532 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 +#: src/pages/stock/StockDetail.tsx:474 msgid "Remove" msgstr "" #: src/components/details/DetailsImage.tsx:71 #: src/components/editors/TemplateEditor/TemplateEditor.tsx:158 -#: src/components/items/ActionDropdown.tsx:231 -#: src/components/items/ActionDropdown.tsx:232 +#: src/components/items/ActionDropdown.tsx:243 +#: src/components/items/ActionDropdown.tsx:244 #: src/contexts/ThemeContext.tsx:43 #: src/hooks/UseForm.tsx:40 #: src/tables/FilterSelectDrawer.tsx:204 -#: src/tables/InvenTreeTable.tsx:517 #: src/tables/build/BuildOutputTable.tsx:225 msgid "Cancel" msgstr "取消" @@ -179,34 +176,34 @@ msgstr "拖曳並上傳" msgid "Click to select file(s)" msgstr "" -#: src/components/details/DetailsImage.tsx:224 +#: src/components/details/DetailsImage.tsx:226 msgid "Clear" msgstr "" -#: src/components/details/DetailsImage.tsx:227 -#: src/components/forms/ApiForm.tsx:607 +#: src/components/details/DetailsImage.tsx:232 +#: src/components/forms/ApiForm.tsx:620 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" msgstr "" -#: src/components/details/DetailsImage.tsx:267 +#: src/components/details/DetailsImage.tsx:272 msgid "Select from existing images" msgstr "" -#: src/components/details/DetailsImage.tsx:275 +#: src/components/details/DetailsImage.tsx:280 msgid "Select Image" msgstr "" -#: src/components/details/DetailsImage.tsx:287 +#: src/components/details/DetailsImage.tsx:292 msgid "Upload new image" msgstr "上傳新圖片" -#: src/components/details/DetailsImage.tsx:294 +#: src/components/details/DetailsImage.tsx:299 msgid "Upload Image" msgstr "上傳圖片" -#: src/components/details/DetailsImage.tsx:307 +#: src/components/details/DetailsImage.tsx:312 msgid "Delete image" msgstr "刪除圖片" @@ -243,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:458 +#: src/components/forms/ApiForm.tsx:460 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -293,7 +290,7 @@ msgid "Error saving template" msgstr "" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "" @@ -321,19 +318,19 @@ msgstr "" msgid "The preview has been updated successfully." msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "" @@ -341,11 +338,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "" @@ -357,11 +354,11 @@ msgstr "" msgid "Client error occurred" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:51 +#: src/components/errors/GenericErrorPage.tsx:50 msgid "Status Code" msgstr "" -#: src/components/errors/GenericErrorPage.tsx:64 +#: src/components/errors/GenericErrorPage.tsx:63 msgid "Return to the index page" msgstr "" @@ -397,7 +394,8 @@ msgstr "" msgid "A server error occurred" msgstr "" -#: src/components/forms/ApiForm.tsx:150 +#: src/components/forms/ApiForm.tsx:151 +#: src/components/forms/ApiForm.tsx:548 msgid "Form Error" msgstr "" @@ -405,17 +403,20 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:645 +#: src/components/forms/ApiForm.tsx:556 +msgid "Errors exist for one or more form fields" +msgstr "" + +#: src/components/forms/ApiForm.tsx:658 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:665 -#: src/components/items/ActionDropdown.tsx:212 +#: src/components/forms/ApiForm.tsx:678 +#: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 #: src/pages/Notifications.tsx:123 -#: src/tables/InvenTreeTable.tsx:516 #: src/tables/RowActions.tsx:71 #: src/tables/plugin/PluginListTable.tsx:420 msgid "Delete" @@ -509,7 +510,7 @@ msgstr "" #: src/components/forms/AuthenticationForm.tsx:134 #: src/components/forms/AuthenticationForm.tsx:233 #: src/pages/Auth/Reset.tsx:31 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:49 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:51 msgid "Email" msgstr "" @@ -587,9 +588,10 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 -#: src/pages/part/CategoryDetail.tsx:80 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 +#: src/pages/part/CategoryDetail.tsx:81 #: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -597,9 +599,9 @@ msgstr "" #: src/tables/plugin/PluginErrorTable.tsx:33 #: src/tables/plugin/PluginListTable.tsx:126 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 -#: src/tables/settings/GroupTable.tsx:103 +#: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -639,6 +641,32 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -648,7 +676,7 @@ msgstr "搜尋" #: src/components/forms/fields/RelatedModelField.tsx:321 #: src/components/modals/AboutInvenTreeModal.tsx:81 #: src/components/widgets/WidgetLayout.tsx:120 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:309 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:316 msgid "Loading" msgstr "" @@ -828,59 +856,63 @@ msgstr "" msgid "Importing Data" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:36 +#: src/components/importer/ImporterImportProgress.tsx:35 msgid "Importing Records" msgstr "" -#: src/components/importer/ImporterImportProgress.tsx:39 +#: src/components/importer/ImporterImportProgress.tsx:38 msgid "Imported rows" msgstr "" -#: src/components/items/ActionDropdown.tsx:121 +#: src/components/items/ActionDropdown.tsx:124 #: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" -#: src/components/items/ActionDropdown.tsx:138 +#: src/components/items/ActionDropdown.tsx:143 +msgid "View Barcode" +msgstr "" + +#: src/components/items/ActionDropdown.tsx:150 msgid "View" msgstr "" -#: src/components/items/ActionDropdown.tsx:139 +#: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:155 +#: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:156 +#: src/components/items/ActionDropdown.tsx:168 msgid "Link custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:172 -#: src/forms/PurchaseOrderForms.tsx:426 +#: src/components/items/ActionDropdown.tsx:184 +#: src/forms/PurchaseOrderForms.tsx:423 msgid "Unlink Barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:173 +#: src/components/items/ActionDropdown.tsx:185 msgid "Unlink custom barcode" msgstr "" -#: src/components/items/ActionDropdown.tsx:191 +#: src/components/items/ActionDropdown.tsx:203 #: src/tables/RowActions.tsx:51 msgid "Edit" msgstr "" -#: src/components/items/ActionDropdown.tsx:213 +#: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" msgstr "" -#: src/components/items/ActionDropdown.tsx:250 +#: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" msgstr "" -#: src/components/items/ActionDropdown.tsx:251 +#: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" msgstr "" @@ -889,7 +921,7 @@ msgid "Read More" msgstr "" #: src/components/items/ErrorItem.tsx:5 -#: src/tables/InvenTreeTable.tsx:462 +#: src/tables/InvenTreeTable.tsx:478 msgid "Unknown error" msgstr "" @@ -926,6 +958,30 @@ msgstr "" msgid "This panel is a placeholder." msgstr "" +#: src/components/items/QRCode.tsx:87 +msgid "Low (7%)" +msgstr "" + +#: src/components/items/QRCode.tsx:88 +msgid "Medium (15%)" +msgstr "" + +#: src/components/items/QRCode.tsx:89 +msgid "Quartile (25%)" +msgstr "" + +#: src/components/items/QRCode.tsx:90 +msgid "High (30%)" +msgstr "" + +#: src/components/items/QRCode.tsx:107 +msgid "Barcode Data:" +msgstr "" + +#: src/components/items/QRCode.tsx:118 +msgid "Select Error Correction Level" +msgstr "" + #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" msgstr "" @@ -1164,11 +1220,6 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:194 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1190,7 +1241,7 @@ msgstr "" #: src/components/nav/MainMenu.tsx:57 #: src/defaults/menuItems.tsx:58 -#: src/pages/Index/Settings/SystemSettings.tsx:319 +#: src/pages/Index/Settings/SystemSettings.tsx:314 msgid "System Settings" msgstr "" @@ -1253,25 +1304,25 @@ msgstr "" msgid "About" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:80 -#: src/pages/Index/Settings/SystemSettings.tsx:108 +#: src/components/nav/NotificationDrawer.tsx:79 +#: src/pages/Index/Settings/SystemSettings.tsx:109 #: src/pages/Index/Settings/UserSettings.tsx:101 #: src/pages/Notifications.tsx:65 -#: src/pages/Notifications.tsx:152 +#: src/pages/Notifications.tsx:151 msgid "Notifications" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:97 +#: src/components/nav/NotificationDrawer.tsx:96 msgid "You have no unread notifications." msgstr "" -#: src/components/nav/NotificationDrawer.tsx:113 -#: src/components/nav/NotificationDrawer.tsx:119 +#: src/components/nav/NotificationDrawer.tsx:112 +#: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" msgstr "" -#: src/components/nav/NotificationDrawer.tsx:142 +#: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 msgid "Mark as read" msgstr "" @@ -1308,23 +1359,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:209 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:982 +#: src/pages/part/PartDetail.tsx:985 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1333,12 +1384,12 @@ msgid "Part" msgstr "" #: src/components/render/ModelType.tsx:23 -#: src/defaults/links.tsx:28 +#: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 -#: src/pages/Index/Settings/SystemSettings.tsx:178 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 +#: src/pages/Index/Settings/SystemSettings.tsx:173 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 #: src/pages/part/PartDetail.tsx:747 msgid "Parts" msgstr "" @@ -1360,9 +1411,9 @@ msgid "Part Test Templates" msgstr "" #: src/components/render/ModelType.tsx:45 -#: src/pages/company/SupplierPartDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:334 -#: src/pages/stock/StockDetail.tsx:164 +#: src/pages/company/SupplierPartDetail.tsx:198 +#: src/pages/company/SupplierPartDetail.tsx:350 +#: src/pages/stock/StockDetail.tsx:170 #: src/tables/build/BuildAllocatedStockTable.tsx:93 #: src/tables/purchasing/SupplierPartTable.tsx:68 msgid "Supplier Part" @@ -1373,7 +1424,7 @@ msgid "Supplier Parts" msgstr "" #: src/components/render/ModelType.tsx:54 -#: src/pages/company/ManufacturerPartDetail.tsx:129 +#: src/pages/company/ManufacturerPartDetail.tsx:132 msgid "Manufacturer Part" msgstr "" @@ -1382,29 +1433,28 @@ msgid "Manufacturer Parts" msgstr "" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/Index/Settings/SystemSettings.tsx:172 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:972 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:975 msgid "Part Categories" msgstr "" #: src/components/render/ModelType.tsx:72 -#: src/pages/stock/StockDetail.tsx:563 +#: src/pages/stock/StockDetail.tsx:572 #: src/tables/stock/StockTrackingTable.tsx:45 msgid "Stock Item" msgstr "" #: src/components/render/ModelType.tsx:73 -#: src/pages/company/CompanyDetail.tsx:201 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:374 +#: src/pages/company/CompanyDetail.tsx:200 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "" @@ -1413,9 +1463,9 @@ msgid "Stock Location" msgstr "" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:366 -#: src/pages/stock/StockDetail.tsx:555 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1436,7 +1486,7 @@ msgid "Stock Histories" msgstr "" #: src/components/render/ModelType.tsx:100 -#: src/defaults/links.tsx:30 +#: src/defaults/links.tsx:31 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" @@ -1462,7 +1512,7 @@ msgid "Build Items" msgstr "" #: src/components/render/ModelType.tsx:122 -#: src/pages/company/CompanyDetail.tsx:328 +#: src/pages/company/CompanyDetail.tsx:327 msgid "Company" msgstr "" @@ -1486,17 +1536,17 @@ msgstr "" #: src/components/render/ModelType.tsx:138 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:32 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:349 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 #: src/tables/stock/StockTrackingTable.tsx:107 msgid "Purchase Order" msgstr "" #: src/components/render/ModelType.tsx:139 -#: src/pages/Index/Settings/SystemSettings.tsx:259 -#: src/pages/company/CompanyDetail.tsx:194 -#: src/pages/company/SupplierPartDetail.tsx:228 +#: src/pages/Index/Settings/SystemSettings.tsx:254 +#: src/pages/company/CompanyDetail.tsx:193 +#: src/pages/company/SupplierPartDetail.tsx:232 #: src/pages/part/PartDetail.tsx:598 -#: src/pages/purchasing/PurchasingIndex.tsx:20 +#: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1511,16 +1561,16 @@ msgstr "" #: src/components/render/ModelType.tsx:152 #: src/pages/build/BuildDetail.tsx:135 #: src/pages/sales/SalesOrderDetail.tsx:345 -#: src/pages/stock/StockDetail.tsx:212 +#: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" msgstr "" #: src/components/render/ModelType.tsx:153 -#: src/pages/Index/Settings/SystemSettings.tsx:274 -#: src/pages/company/CompanyDetail.tsx:214 +#: src/pages/Index/Settings/SystemSettings.tsx:269 +#: src/pages/company/CompanyDetail.tsx:213 #: src/pages/part/PartDetail.tsx:605 -#: src/pages/sales/SalesIndex.tsx:21 +#: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1539,9 +1589,9 @@ msgid "Return Order" msgstr "" #: src/components/render/ModelType.tsx:169 -#: src/pages/Index/Settings/SystemSettings.tsx:290 -#: src/pages/company/CompanyDetail.tsx:221 -#: src/pages/sales/SalesIndex.tsx:27 +#: src/pages/Index/Settings/SystemSettings.tsx:285 +#: src/pages/company/CompanyDetail.tsx:220 +#: src/pages/sales/SalesIndex.tsx:32 msgid "Return Orders" msgstr "" @@ -1551,7 +1601,7 @@ msgid "Address" msgstr "" #: src/components/render/ModelType.tsx:178 -#: src/pages/company/CompanyDetail.tsx:251 +#: src/pages/company/CompanyDetail.tsx:250 msgid "Addresses" msgstr "" @@ -1563,7 +1613,7 @@ msgid "Contact" msgstr "" #: src/components/render/ModelType.tsx:185 -#: src/pages/company/CompanyDetail.tsx:245 +#: src/pages/company/CompanyDetail.tsx:244 msgid "Contacts" msgstr "" @@ -1576,7 +1626,7 @@ msgid "Owners" msgstr "" #: src/components/render/ModelType.tsx:198 -#: src/tables/settings/ImportSessionTable.tsx:122 +#: src/tables/settings/ImportSessionTable.tsx:121 #: src/tables/stock/StockItemTestResultTable.tsx:193 #: src/tables/stock/StockTrackingTable.tsx:195 msgid "User" @@ -1589,36 +1639,46 @@ msgid "Users" msgstr "" #: src/components/render/ModelType.tsx:205 -msgid "Import Session" +msgid "Group" msgstr "" #: src/components/render/ModelType.tsx:206 -msgid "Import Sessions" -msgstr "" - -#: src/components/render/ModelType.tsx:212 -msgid "Label Template" +#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 +#: src/tables/settings/UserTable.tsx:135 +msgid "Groups" msgstr "" #: src/components/render/ModelType.tsx:213 +msgid "Import Session" +msgstr "" + +#: src/components/render/ModelType.tsx:214 +msgid "Import Sessions" +msgstr "" + +#: src/components/render/ModelType.tsx:220 +msgid "Label Template" +msgstr "" + +#: src/components/render/ModelType.tsx:221 #: src/pages/Index/Settings/AdminCenter/Index.tsx:158 msgid "Label Templates" msgstr "" -#: src/components/render/ModelType.tsx:219 +#: src/components/render/ModelType.tsx:227 msgid "Report Template" msgstr "" -#: src/components/render/ModelType.tsx:220 +#: src/components/render/ModelType.tsx:228 #: src/pages/Index/Settings/AdminCenter/Index.tsx:164 msgid "Report Templates" msgstr "" -#: src/components/render/ModelType.tsx:226 +#: src/components/render/ModelType.tsx:234 msgid "Plugin Configuration" msgstr "" -#: src/components/render/ModelType.tsx:227 +#: src/components/render/ModelType.tsx:235 msgid "Plugin Configurations" msgstr "" @@ -1626,48 +1686,48 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 -#: src/pages/company/CompanyDetail.tsx:315 -#: src/pages/company/SupplierPartDetail.tsx:321 +#: src/pages/company/CompanyDetail.tsx:314 +#: src/pages/company/SupplierPartDetail.tsx:335 #: src/pages/part/PartDetail.tsx:799 msgid "Inactive" msgstr "" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 -#: src/defaults/links.tsx:29 +#: src/components/render/Part.tsx:30 +#: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 -#: src/pages/Index/Settings/SystemSettings.tsx:211 +#: src/pages/Index/Settings/SystemSettings.tsx:206 #: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:347 -#: src/pages/stock/StockDetail.tsx:355 +#: src/pages/stock/LocationDetail.tsx:359 +#: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 -#: src/pages/stock/StockDetail.tsx:520 +#: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/part/pricing/BomPricingPanel.tsx:108 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/part/pricing/BomPricingPanel.tsx:104 #: src/pages/part/pricing/PriceBreakPanel.tsx:85 #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 -#: src/pages/stock/StockDetail.tsx:526 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:147 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:175 +#: src/pages/stock/StockDetail.tsx:535 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 #: src/tables/stock/StockTrackingTable.tsx:59 msgid "Quantity" @@ -2263,13 +2323,13 @@ msgid "Chinese (Traditional)" msgstr "" #: src/defaults/actions.tsx:16 -#: src/defaults/links.tsx:26 +#: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:9 msgid "Home" msgstr "" #: src/defaults/actions.tsx:23 -#: src/defaults/links.tsx:27 +#: src/defaults/links.tsx:28 #: src/defaults/menuItems.tsx:28 #: src/pages/Index/Dashboard.tsx:19 #: src/pages/Index/Settings/UserSettings.tsx:47 @@ -2285,13 +2345,13 @@ msgid "Visit the documentation to learn more about InvenTree" msgstr "" #: src/defaults/actions.tsx:37 -#: src/defaults/links.tsx:92 -#: src/defaults/links.tsx:122 +#: src/defaults/links.tsx:98 +#: src/defaults/links.tsx:128 msgid "About InvenTree" msgstr "" #: src/defaults/actions.tsx:38 -#: src/defaults/links.tsx:123 +#: src/defaults/links.tsx:129 msgid "About the InvenTree org" msgstr "" @@ -2300,17 +2360,17 @@ msgid "Server Information" msgstr "" #: src/defaults/actions.tsx:45 -#: src/defaults/links.tsx:117 +#: src/defaults/links.tsx:123 msgid "About this Inventree instance" msgstr "" #: src/defaults/actions.tsx:51 -#: src/defaults/links.tsx:105 +#: src/defaults/links.tsx:111 msgid "License Information" msgstr "" #: src/defaults/actions.tsx:52 -#: src/defaults/links.tsx:129 +#: src/defaults/links.tsx:135 msgid "Licenses for dependencies of the service" msgstr "" @@ -2395,74 +2455,74 @@ msgstr "" #~ msgid "Local Server" #~ msgstr "Local Server" -#: src/defaults/links.tsx:11 -#: src/pages/company/CompanyDetail.tsx:94 +#: src/defaults/links.tsx:12 +#: src/pages/company/CompanyDetail.tsx:93 msgid "Website" msgstr "" -#: src/defaults/links.tsx:16 +#: src/defaults/links.tsx:17 msgid "GitHub" msgstr "" -#: src/defaults/links.tsx:21 +#: src/defaults/links.tsx:22 msgid "Demo" msgstr "" -#: src/defaults/links.tsx:31 +#: src/defaults/links.tsx:33 #: src/defaults/menuItems.tsx:48 #: src/pages/company/ManufacturerDetail.tsx:9 -#: src/pages/company/ManufacturerPartDetail.tsx:250 +#: src/pages/company/ManufacturerPartDetail.tsx:263 #: src/pages/company/SupplierDetail.tsx:9 -#: src/pages/company/SupplierPartDetail.tsx:308 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:352 -#: src/pages/purchasing/PurchasingIndex.tsx:52 +#: src/pages/company/SupplierPartDetail.tsx:322 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:355 +#: src/pages/purchasing/PurchasingIndex.tsx:60 msgid "Purchasing" msgstr "" -#: src/defaults/links.tsx:32 +#: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 #: src/pages/sales/ReturnOrderDetail.tsx:332 -#: src/pages/sales/SalesIndex.tsx:45 +#: src/pages/sales/SalesIndex.tsx:53 #: src/pages/sales/SalesOrderDetail.tsx:350 msgid "Sales" msgstr "" -#: src/defaults/links.tsx:35 +#: src/defaults/links.tsx:41 #: src/defaults/menuItems.tsx:71 -#: src/pages/Index/Playground.tsx:221 +#: src/pages/Index/Playground.tsx:217 msgid "Playground" msgstr "" -#: src/defaults/links.tsx:49 +#: src/defaults/links.tsx:55 msgid "Getting Started" msgstr "" -#: src/defaults/links.tsx:50 +#: src/defaults/links.tsx:56 msgid "Getting started with InvenTree" msgstr "" -#: src/defaults/links.tsx:56 +#: src/defaults/links.tsx:62 msgid "API" msgstr "" -#: src/defaults/links.tsx:57 +#: src/defaults/links.tsx:63 msgid "InvenTree API documentation" msgstr "" -#: src/defaults/links.tsx:62 +#: src/defaults/links.tsx:68 msgid "Developer Manual" msgstr "" -#: src/defaults/links.tsx:63 +#: src/defaults/links.tsx:69 msgid "InvenTree developer manual" msgstr "" -#: src/defaults/links.tsx:68 +#: src/defaults/links.tsx:74 msgid "FAQ" msgstr "" -#: src/defaults/links.tsx:69 +#: src/defaults/links.tsx:75 msgid "Frequently asked questions" msgstr "" @@ -2470,20 +2530,20 @@ msgstr "" #~ msgid "Instance" #~ msgstr "Instance" -#: src/defaults/links.tsx:79 -#: src/defaults/links.tsx:116 -msgid "System Information" -msgstr "" - #: src/defaults/links.tsx:83 #~ msgid "InvenTree" #~ msgstr "InvenTree" +#: src/defaults/links.tsx:85 +#: src/defaults/links.tsx:122 +msgid "System Information" +msgstr "" + #: src/defaults/links.tsx:117 #~ msgid "Licenses for packages used by InvenTree" #~ msgstr "Licenses for packages used by InvenTree" -#: src/defaults/links.tsx:128 +#: src/defaults/links.tsx:134 msgid "Licenses" msgstr "" @@ -2664,105 +2724,106 @@ msgstr "" #~ msgid "Part updated" #~ msgstr "Part updated" -#: src/forms/PurchaseOrderForms.tsx:300 +#: src/forms/PurchaseOrderForms.tsx:297 msgid "Choose Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:308 +#: src/forms/PurchaseOrderForms.tsx:305 msgid "Item Destination selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:317 +#: src/forms/PurchaseOrderForms.tsx:314 msgid "Part category default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:327 +#: src/forms/PurchaseOrderForms.tsx:324 msgid "Received stock location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:332 +#: src/forms/PurchaseOrderForms.tsx:329 msgid "Default location selected" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:343 -#: src/forms/PurchaseOrderForms.tsx:435 +#: src/forms/PurchaseOrderForms.tsx:340 +#: src/forms/PurchaseOrderForms.tsx:432 msgid "Scan Barcode" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:388 +#: src/forms/PurchaseOrderForms.tsx:385 msgid "Set Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:396 +#: src/forms/PurchaseOrderForms.tsx:393 msgid "Assign Batch Code{0}" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:405 -#: src/forms/StockForms.tsx:422 +#: src/forms/PurchaseOrderForms.tsx:402 +#: src/forms/StockForms.tsx:419 msgid "Adjust Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:412 +#: src/forms/PurchaseOrderForms.tsx:409 msgid "Change Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:418 +#: src/forms/PurchaseOrderForms.tsx:415 msgid "Add Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:444 -#: src/forms/StockForms.tsx:430 +#: src/forms/PurchaseOrderForms.tsx:441 +#: src/forms/StockForms.tsx:427 msgid "Remove item from list" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:471 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 -#: src/pages/stock/StockDetail.tsx:172 +#: src/forms/PurchaseOrderForms.tsx:468 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 msgid "Location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:486 +#: src/forms/PurchaseOrderForms.tsx:483 msgid "Store at default location" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:499 +#: src/forms/PurchaseOrderForms.tsx:496 msgid "Store at line item destination" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:509 +#: src/forms/PurchaseOrderForms.tsx:506 msgid "Store with already received stock" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:524 +#: src/forms/PurchaseOrderForms.tsx:521 #: src/pages/build/BuildDetail.tsx:201 -#: src/pages/stock/StockDetail.tsx:538 +#: src/pages/stock/StockDetail.tsx:159 +#: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 msgid "Batch Code" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:535 +#: src/forms/PurchaseOrderForms.tsx:532 msgid "Serial numbers" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:544 -#: src/forms/StockForms.tsx:445 -#: src/pages/company/SupplierPartDetail.tsx:147 -#: src/pages/company/SupplierPartDetail.tsx:198 -#: src/pages/stock/StockDetail.tsx:235 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:196 +#: src/forms/PurchaseOrderForms.tsx:541 +#: src/forms/StockForms.tsx:442 +#: src/pages/company/SupplierPartDetail.tsx:151 +#: src/pages/company/SupplierPartDetail.tsx:202 +#: src/pages/stock/StockDetail.tsx:241 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:195 msgid "Packaging" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:556 +#: src/forms/PurchaseOrderForms.tsx:553 #: src/pages/build/BuildDetail.tsx:93 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:99 @@ -2772,43 +2833,44 @@ msgstr "" #: src/tables/purchasing/PurchaseOrderTable.tsx:55 #: src/tables/sales/ReturnOrderTable.tsx:46 #: src/tables/sales/SalesOrderTable.tsx:52 -#: src/tables/settings/ImportSessionTable.tsx:116 +#: src/tables/settings/ImportSessionTable.tsx:115 #: src/tables/stock/StockItemTable.tsx:293 #: src/tables/stock/StockTrackingTable.tsx:52 msgid "Status" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:564 -#: src/pages/company/SupplierPartDetail.tsx:101 +#: src/forms/PurchaseOrderForms.tsx:561 +#: src/pages/company/SupplierPartDetail.tsx:105 #: src/tables/ColumnRenderers.tsx:132 msgid "Note" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/pages/company/SupplierPartDetail.tsx:119 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/pages/company/SupplierPartDetail.tsx:123 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:57 msgid "SKU" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:182 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:181 msgid "Received" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:639 -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/PurchaseOrderForms.tsx:636 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" msgstr "" -#: src/forms/PurchaseOrderForms.tsx:655 +#: src/forms/PurchaseOrderForms.tsx:652 msgid "Receive Line Items" msgstr "" @@ -2816,7 +2878,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:106 +#: src/forms/StockForms.tsx:103 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2824,15 +2886,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:119 +#: src/forms/StockForms.tsx:116 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:126 +#: src/forms/StockForms.tsx:123 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:127 +#: src/forms/StockForms.tsx:124 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2840,82 +2902,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:181 -#: src/pages/stock/StockDetail.tsx:378 +#: src/forms/StockForms.tsx:178 +#: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:364 +#: src/forms/StockForms.tsx:361 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:410 +#: src/forms/StockForms.tsx:407 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:501 -#: src/forms/StockForms.tsx:535 -#: src/forms/StockForms.tsx:564 -#: src/forms/StockForms.tsx:592 -#: src/forms/StockForms.tsx:623 -#: src/forms/StockForms.tsx:658 -#: src/forms/StockForms.tsx:700 -#: src/forms/StockForms.tsx:736 +#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:620 +#: src/forms/StockForms.tsx:655 +#: src/forms/StockForms.tsx:697 +#: src/forms/StockForms.tsx:733 #: src/pages/part/PartDetail.tsx:214 #: src/pages/part/PartDetail.tsx:763 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:501 +#: src/forms/StockForms.tsx:498 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:564 -#: src/pages/stock/StockDetail.tsx:457 +#: src/forms/StockForms.tsx:561 +#: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:592 +#: src/forms/StockForms.tsx:589 #: src/pages/Index/Scan.tsx:266 -#: src/pages/stock/StockDetail.tsx:447 +#: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:837 +#: src/forms/StockForms.tsx:834 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:846 +#: src/forms/StockForms.tsx:843 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:855 -#: src/pages/part/PartDetail.tsx:926 +#: src/forms/StockForms.tsx:852 +#: src/pages/part/PartDetail.tsx:929 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:864 -#: src/pages/part/PartDetail.tsx:915 +#: src/forms/StockForms.tsx:861 +#: src/pages/part/PartDetail.tsx:918 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:873 +#: src/forms/StockForms.tsx:870 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:882 +#: src/forms/StockForms.tsx:879 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:901 +#: src/forms/StockForms.tsx:898 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:908 +#: src/forms/StockForms.tsx:905 msgid "Parent stock location" msgstr "" @@ -3032,7 +3094,7 @@ msgstr "" msgid "Are you sure you want to delete this item?" msgstr "" -#: src/pages/Auth/Logged-In.tsx:23 +#: src/pages/Auth/Logged-In.tsx:22 msgid "Checking if you are already logged in" msgstr "" @@ -3053,7 +3115,7 @@ msgstr "" #~ msgid "Edit host options" #~ msgstr "Edit host options" -#: src/pages/Auth/Logout.tsx:23 +#: src/pages/Auth/Logout.tsx:22 msgid "Logging out" msgstr "" @@ -3114,7 +3176,7 @@ msgstr "" msgid "Welcome to your Dashboard{0}" msgstr "" -#: src/pages/Index/Playground.tsx:226 +#: src/pages/Index/Playground.tsx:222 msgid "This page is a showcase for the possibilities of Platform UI." msgstr "" @@ -3403,83 +3465,128 @@ msgstr "" msgid "Use pseudo language" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:53 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55 msgid "Single Sign On Accounts" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60 -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:78 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:62 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:80 msgid "Not enabled" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:63 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:65 msgid "Single Sign On is not enabled for this server" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:67 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:69 msgid "Multifactor" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:81 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:83 msgid "Multifactor authentication is not configured for your account" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:132 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:92 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:407 +msgid "Token" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:139 msgid "The following email addresses are associated with your account:" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:144 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:151 msgid "Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:149 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:156 msgid "Verified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:153 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:160 msgid "Unverified" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:166 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:173 msgid "Add Email Address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:169 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:176 msgid "E-Mail" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:170 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:177 msgid "E-Mail address" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:182 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:189 msgid "Make Primary" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:187 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:194 msgid "Re-send Verification" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:198 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:205 msgid "Add Email" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:263 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:270 msgid "Provider has not been configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:273 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:280 msgid "Not configured" msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:276 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:283 msgid "There are no social network accounts connected to this account." msgstr "" -#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:286 +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:293 msgid "You can sign in to your account using any of the following third party accounts" msgstr "" +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:368 +msgid "Token is used - no actions" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:375 +msgid "Revoke" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:389 +msgid "No tokens configured" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 +#: src/pages/part/PartDetail.tsx:281 +#: src/tables/bom/UsedInTable.tsx:73 +#: src/tables/build/BuildOrderTable.tsx:108 +#: src/tables/company/CompanyTable.tsx:61 +#: src/tables/company/CompanyTable.tsx:95 +#: src/tables/machine/MachineListTable.tsx:332 +#: src/tables/machine/MachineListTable.tsx:594 +#: src/tables/part/ParametricPartTable.tsx:222 +#: src/tables/part/PartTable.tsx:178 +#: src/tables/part/PartVariantTable.tsx:15 +#: src/tables/plugin/PluginListTable.tsx:149 +#: src/tables/plugin/PluginListTable.tsx:271 +#: src/tables/plugin/PluginListTable.tsx:563 +#: src/tables/purchasing/SupplierPartTable.tsx:98 +#: src/tables/purchasing/SupplierPartTable.tsx:187 +#: src/tables/stock/StockItemTable.tsx:288 +msgid "Active" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:401 +msgid "Expiry" +msgstr "" + +#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:404 +msgid "Last Seen" +msgstr "" + #: src/pages/Index/Settings/AccountSettings/UserThemePanel.tsx:65 msgid "bars" msgstr "" @@ -3549,7 +3656,7 @@ msgid "Custom Units" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "" @@ -3558,9 +3665,13 @@ msgid "Category Parameters" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:170 -msgid "Location types" +msgid "Location Types" msgstr "" +#: src/pages/Index/Settings/AdminCenter/Index.tsx:170 +#~ msgid "Location types" +#~ msgstr "Location types" + #: src/pages/Index/Settings/AdminCenter/Index.tsx:182 #: src/tables/machine/MachineTypeTable.tsx:287 msgid "Machines" @@ -3683,11 +3794,6 @@ msgstr "" #~ msgid "Stock location" #~ msgstr "Stock location" -#: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:18 -#: src/tables/settings/UserTable.tsx:135 -msgid "Groups" -msgstr "" - #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:30 msgid "Select settings relevant for user lifecycle. More available in" msgstr "" @@ -3704,7 +3810,7 @@ msgstr "" msgid "Barcodes" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:114 +#: src/pages/Index/Settings/SystemSettings.tsx:115 msgid "Pricing" msgstr "" @@ -3716,29 +3822,29 @@ msgstr "" #~ msgid "Exchange Rates" #~ msgstr "Exchange Rates" -#: src/pages/Index/Settings/SystemSettings.tsx:149 +#: src/pages/Index/Settings/SystemSettings.tsx:150 msgid "Labels" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:155 +#: src/pages/Index/Settings/SystemSettings.tsx:156 #: src/pages/Index/Settings/UserSettings.tsx:107 msgid "Reporting" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:236 +#: src/pages/Index/Settings/SystemSettings.tsx:231 #: src/pages/part/PartDetail.tsx:618 msgid "Stocktake" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:242 -#: src/pages/build/BuildDetail.tsx:435 -#: src/pages/build/BuildIndex.tsx:14 +#: src/pages/Index/Settings/SystemSettings.tsx:237 +#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildIndex.tsx:22 #: src/pages/part/PartDetail.tsx:552 #: src/pages/sales/SalesOrderDetail.tsx:264 msgid "Build Orders" msgstr "" -#: src/pages/Index/Settings/SystemSettings.tsx:322 +#: src/pages/Index/Settings/SystemSettings.tsx:317 msgid "Switch to User Setting" msgstr "" @@ -3754,11 +3860,11 @@ msgstr "" msgid "Display Options" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:126 +#: src/pages/Index/Settings/UserSettings.tsx:125 msgid "Account Settings" msgstr "" -#: src/pages/Index/Settings/UserSettings.tsx:130 +#: src/pages/Index/Settings/UserSettings.tsx:129 msgid "Switch to System Setting" msgstr "" @@ -3805,15 +3911,15 @@ msgid "Reference" msgstr "" #: src/pages/build/BuildDetail.tsx:104 -#: src/pages/company/CompanyDetail.tsx:88 -#: src/pages/company/ManufacturerPartDetail.tsx:80 -#: src/pages/company/SupplierPartDetail.tsx:87 -#: src/pages/part/CategoryDetail.tsx:94 +#: src/pages/company/CompanyDetail.tsx:87 +#: src/pages/company/ManufacturerPartDetail.tsx:83 +#: src/pages/company/SupplierPartDetail.tsx:91 +#: src/pages/part/CategoryDetail.tsx:101 #: src/pages/part/PartDetail.tsx:134 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:93 #: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3822,7 +3928,7 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "" @@ -3946,25 +4052,25 @@ msgid "Child Build Orders" msgstr "" #: src/pages/build/BuildDetail.tsx:309 -#: src/pages/company/CompanyDetail.tsx:257 -#: src/pages/company/ManufacturerPartDetail.tsx:176 +#: src/pages/company/CompanyDetail.tsx:256 +#: src/pages/company/ManufacturerPartDetail.tsx:179 #: src/pages/part/PartDetail.tsx:641 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:230 #: src/pages/sales/SalesOrderDetail.tsx:274 -#: src/pages/stock/StockDetail.tsx:329 +#: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" #: src/pages/build/BuildDetail.tsx:317 -#: src/pages/company/CompanyDetail.tsx:268 -#: src/pages/company/ManufacturerPartDetail.tsx:187 -#: src/pages/company/SupplierPartDetail.tsx:248 +#: src/pages/company/CompanyDetail.tsx:267 +#: src/pages/company/ManufacturerPartDetail.tsx:190 +#: src/pages/company/SupplierPartDetail.tsx:252 #: src/pages/part/PartDetail.tsx:649 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:241 #: src/pages/sales/SalesOrderDetail.tsx:285 -#: src/pages/stock/StockDetail.tsx:340 +#: src/pages/stock/StockDetail.tsx:346 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" @@ -3991,12 +4097,12 @@ msgstr "" #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:388 +#: src/pages/build/BuildDetail.tsx:391 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:396 -#: src/pages/purchasing/PurchaseOrderDetail.tsx:320 +#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:309 #: src/pages/sales/SalesOrderDetail.tsx:315 msgid "Cancel order" @@ -4010,23 +4116,23 @@ msgstr "" #~ msgid "New Build Order" #~ msgstr "New Build Order" -#: src/pages/company/CompanyDetail.tsx:102 +#: src/pages/company/CompanyDetail.tsx:101 msgid "Phone Number" msgstr "" -#: src/pages/company/CompanyDetail.tsx:109 +#: src/pages/company/CompanyDetail.tsx:108 msgid "Email Address" msgstr "" -#: src/pages/company/CompanyDetail.tsx:119 +#: src/pages/company/CompanyDetail.tsx:118 msgid "Default Currency" msgstr "" -#: src/pages/company/CompanyDetail.tsx:124 +#: src/pages/company/CompanyDetail.tsx:123 #: src/pages/company/SupplierDetail.tsx:8 -#: src/pages/company/SupplierPartDetail.tsx:111 -#: src/pages/company/SupplierPartDetail.tsx:197 -#: src/pages/company/SupplierPartDetail.tsx:312 +#: src/pages/company/SupplierPartDetail.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:326 #: src/pages/purchasing/PurchaseOrderDetail.tsx:119 #: src/tables/company/CompanyTable.tsx:100 #: src/tables/purchasing/PurchaseOrderTable.tsx:88 @@ -4034,21 +4140,21 @@ msgstr "" msgid "Supplier" msgstr "" -#: src/pages/company/CompanyDetail.tsx:130 +#: src/pages/company/CompanyDetail.tsx:129 #: src/pages/company/ManufacturerDetail.tsx:8 -#: src/pages/company/ManufacturerPartDetail.tsx:98 -#: src/pages/company/ManufacturerPartDetail.tsx:254 -#: src/pages/company/SupplierPartDetail.tsx:126 +#: src/pages/company/ManufacturerPartDetail.tsx:101 +#: src/pages/company/ManufacturerPartDetail.tsx:267 +#: src/pages/company/SupplierPartDetail.tsx:130 #: src/tables/company/CompanyTable.tsx:105 msgid "Manufacturer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:136 +#: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 #: src/pages/sales/ReturnOrderDetail.tsx:87 #: src/pages/sales/SalesOrderDetail.tsx:91 -#: src/pages/stock/StockDetail.tsx:221 +#: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 #: src/tables/sales/SalesOrderTable.tsx:107 @@ -4056,20 +4162,20 @@ msgstr "" msgid "Customer" msgstr "" -#: src/pages/company/CompanyDetail.tsx:170 +#: src/pages/company/CompanyDetail.tsx:169 #: src/tables/stock/StockTrackingTable.tsx:183 msgid "Details" msgstr "" +#: src/pages/company/CompanyDetail.tsx:175 +msgid "Manufactured Parts" +msgstr "" + #: src/pages/company/CompanyDetail.tsx:175 #~ msgid "Edit company" #~ msgstr "Edit company" -#: src/pages/company/CompanyDetail.tsx:176 -msgid "Manufactured Parts" -msgstr "" - -#: src/pages/company/CompanyDetail.tsx:185 +#: src/pages/company/CompanyDetail.tsx:184 msgid "Supplied Parts" msgstr "" @@ -4077,192 +4183,202 @@ msgstr "" #~ msgid "Delete company" #~ msgstr "Delete company" -#: src/pages/company/CompanyDetail.tsx:230 +#: src/pages/company/CompanyDetail.tsx:229 msgid "Assigned Stock" msgstr "" -#: src/pages/company/CompanyDetail.tsx:288 +#: src/pages/company/CompanyDetail.tsx:287 #: src/tables/company/CompanyTable.tsx:86 msgid "Edit Company" msgstr "" -#: src/pages/company/CompanyDetail.tsx:297 +#: src/pages/company/CompanyDetail.tsx:296 msgid "Company Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:73 -#: src/pages/company/SupplierPartDetail.tsx:80 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:125 +#: src/pages/company/ManufacturerPartDetail.tsx:76 +#: src/pages/company/SupplierPartDetail.tsx:84 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:124 msgid "Internal Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:88 -#: src/pages/company/SupplierPartDetail.tsx:94 +#: src/pages/company/ManufacturerPartDetail.tsx:91 +#: src/pages/company/SupplierPartDetail.tsx:98 msgid "External Link" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:106 -#: src/pages/company/SupplierPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:109 +#: src/pages/company/SupplierPartDetail.tsx:139 #: src/tables/purchasing/ManufacturerPartTable.tsx:56 msgid "Manufacturer Part Number" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:135 +#: src/pages/company/ManufacturerPartDetail.tsx:138 msgid "Manufacturer Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:144 +#: src/pages/company/ManufacturerPartDetail.tsx:147 msgid "Manufacturer Part Details" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:150 +#: src/pages/company/ManufacturerPartDetail.tsx:153 #: src/pages/part/PartDetail.tsx:504 msgid "Parameters" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:162 +#: src/pages/company/ManufacturerPartDetail.tsx:165 #: src/pages/part/PartDetail.tsx:585 -#: src/pages/purchasing/PurchasingIndex.tsx:26 +#: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:205 +#: src/pages/company/ManufacturerPartDetail.tsx:208 #: src/tables/purchasing/ManufacturerPartTable.tsx:84 msgid "Edit Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:212 +#: src/pages/company/ManufacturerPartDetail.tsx:215 #: src/tables/purchasing/ManufacturerPartTable.tsx:72 #: src/tables/purchasing/ManufacturerPartTable.tsx:103 msgid "Add Manufacturer Part" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:228 +#: src/pages/company/ManufacturerPartDetail.tsx:227 +#: src/tables/purchasing/ManufacturerPartTable.tsx:92 +msgid "Delete Manufacturer Part" +msgstr "" + +#: src/pages/company/ManufacturerPartDetail.tsx:240 msgid "Manufacturer Part Actions" msgstr "" -#: src/pages/company/ManufacturerPartDetail.tsx:266 +#: src/pages/company/ManufacturerPartDetail.tsx:281 msgid "ManufacturerPart" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:154 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:160 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:201 +#: src/pages/company/SupplierPartDetail.tsx:158 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:159 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:200 #: src/tables/purchasing/SupplierPartTable.tsx:131 msgid "Pack Quantity" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:165 +#: src/pages/company/SupplierPartDetail.tsx:169 msgid "Supplier Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:172 +#: src/pages/company/SupplierPartDetail.tsx:176 msgid "Availability Updated" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:199 +#: src/pages/company/SupplierPartDetail.tsx:203 msgid "Availability" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:208 +#: src/pages/company/SupplierPartDetail.tsx:212 msgid "Supplier Part Details" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:214 +#: src/pages/company/SupplierPartDetail.tsx:218 #: src/pages/purchasing/PurchaseOrderDetail.tsx:253 msgid "Received Stock" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:238 -#: src/pages/part/PartPricingPanel.tsx:115 +#: src/pages/company/SupplierPartDetail.tsx:242 +#: src/pages/part/PartPricingPanel.tsx:111 #: src/pages/part/pricing/PricingOverviewPanel.tsx:121 msgid "Supplier Pricing" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:265 +#: src/pages/company/SupplierPartDetail.tsx:269 msgid "Supplier Part Actions" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:289 +#: src/pages/company/SupplierPartDetail.tsx:294 #: src/tables/purchasing/SupplierPartTable.tsx:210 msgid "Edit Supplier Part" msgstr "" -#: src/pages/company/SupplierPartDetail.tsx:296 +#: src/pages/company/SupplierPartDetail.tsx:302 +#: src/tables/purchasing/SupplierPartTable.tsx:218 +msgid "Delete Supplier Part" +msgstr "" + +#: src/pages/company/SupplierPartDetail.tsx:310 #: src/tables/purchasing/SupplierPartTable.tsx:163 msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:93 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" @@ -4357,25 +4473,6 @@ msgstr "" msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:281 -#: src/tables/bom/UsedInTable.tsx:73 -#: src/tables/build/BuildOrderTable.tsx:108 -#: src/tables/company/CompanyTable.tsx:61 -#: src/tables/company/CompanyTable.tsx:95 -#: src/tables/machine/MachineListTable.tsx:332 -#: src/tables/machine/MachineListTable.tsx:594 -#: src/tables/part/ParametricPartTable.tsx:222 -#: src/tables/part/PartTable.tsx:178 -#: src/tables/part/PartVariantTable.tsx:15 -#: src/tables/plugin/PluginListTable.tsx:149 -#: src/tables/plugin/PluginListTable.tsx:271 -#: src/tables/plugin/PluginListTable.tsx:563 -#: src/tables/purchasing/SupplierPartTable.tsx:98 -#: src/tables/purchasing/SupplierPartTable.tsx:187 -#: src/tables/stock/StockItemTable.tsx:288 -msgid "Active" -msgstr "" - #: src/pages/part/PartDetail.tsx:286 #: src/pages/part/PartDetail.tsx:793 #: src/tables/part/ParametricPartTable.tsx:227 @@ -4439,7 +4536,7 @@ msgid "Default Supplier" msgstr "" #: src/pages/part/PartDetail.tsx:360 -#: src/pages/part/pricing/BomPricingPanel.tsx:78 +#: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" @@ -4463,7 +4560,7 @@ msgid "Variants" msgstr "" #: src/pages/part/PartDetail.tsx:536 -#: src/pages/stock/StockDetail.tsx:285 +#: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" @@ -4480,7 +4577,7 @@ msgid "Part Pricing" msgstr "" #: src/pages/part/PartDetail.tsx:572 -#: src/pages/purchasing/PurchasingIndex.tsx:37 +#: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" @@ -4498,7 +4595,7 @@ msgstr "" #: src/pages/part/PartDetail.tsx:769 #: src/pages/stock/StockDetail.tsx:153 -#: src/pages/stock/StockDetail.tsx:532 +#: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 #: src/tables/part/PartTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:176 @@ -4517,7 +4614,7 @@ msgid "On Order" msgstr "" #: src/pages/part/PartDetail.tsx:787 -#: src/pages/stock/StockDetail.tsx:515 +#: src/pages/stock/StockDetail.tsx:524 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" @@ -4540,25 +4637,25 @@ msgstr "" msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:908 -#: src/pages/stock/LocationDetail.tsx:304 +#: src/pages/part/PartDetail.tsx:911 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:916 +#: src/pages/part/PartDetail.tsx:919 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:927 +#: src/pages/part/PartDetail.tsx:930 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:936 +#: src/pages/part/PartDetail.tsx:939 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:994 +#: src/pages/part/PartDetail.tsx:997 msgid "Select Part Revision" msgstr "" @@ -4566,46 +4663,46 @@ msgstr "" #~ msgid "Categories" #~ msgstr "Categories" -#: src/pages/part/PartPricingPanel.tsx:72 +#: src/pages/part/PartPricingPanel.tsx:68 msgid "No pricing data found for this part." msgstr "" -#: src/pages/part/PartPricingPanel.tsx:86 +#: src/pages/part/PartPricingPanel.tsx:82 #: src/pages/part/pricing/PricingOverviewPanel.tsx:190 msgid "Pricing Overview" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:92 +#: src/pages/part/PartPricingPanel.tsx:88 msgid "Purchase History" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:106 +#: src/pages/part/PartPricingPanel.tsx:102 #: src/pages/part/pricing/PricingOverviewPanel.tsx:100 msgid "Internal Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:124 +#: src/pages/part/PartPricingPanel.tsx:120 #: src/pages/part/pricing/PricingOverviewPanel.tsx:107 msgid "BOM Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:131 +#: src/pages/part/PartPricingPanel.tsx:127 #: src/pages/part/pricing/PricingOverviewPanel.tsx:128 msgid "Variant Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:143 +#: src/pages/part/PartPricingPanel.tsx:139 #: src/pages/part/pricing/PricingOverviewPanel.tsx:135 msgid "Sale Pricing" msgstr "" -#: src/pages/part/PartPricingPanel.tsx:150 +#: src/pages/part/PartPricingPanel.tsx:146 #: src/pages/part/pricing/PricingOverviewPanel.tsx:142 msgid "Sale History" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:57 -#: src/pages/part/pricing/BomPricingPanel.tsx:137 +#: src/pages/part/pricing/BomPricingPanel.tsx:53 +#: src/pages/part/pricing/BomPricingPanel.tsx:133 #: src/tables/ColumnRenderers.tsx:256 #: src/tables/bom/BomTable.tsx:184 #: src/tables/purchasing/PurchaseOrderTable.tsx:112 @@ -4614,19 +4711,19 @@ msgstr "" msgid "Total Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:77 -#: src/pages/part/pricing/BomPricingPanel.tsx:101 +#: src/pages/part/pricing/BomPricingPanel.tsx:73 +#: src/pages/part/pricing/BomPricingPanel.tsx:97 #: src/tables/part/PartTable.tsx:202 msgid "Component" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:80 +#: src/pages/part/pricing/BomPricingPanel.tsx:76 #: src/pages/part/pricing/VariantPricingPanel.tsx:37 #: src/pages/part/pricing/VariantPricingPanel.tsx:97 msgid "Minimum Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:81 +#: src/pages/part/pricing/BomPricingPanel.tsx:77 #: src/pages/part/pricing/VariantPricingPanel.tsx:45 #: src/pages/part/pricing/VariantPricingPanel.tsx:98 msgid "Maximum Price" @@ -4640,28 +4737,28 @@ msgstr "" #~ msgid "Maximum Total Price" #~ msgstr "Maximum Total Price" -#: src/pages/part/pricing/BomPricingPanel.tsx:128 +#: src/pages/part/pricing/BomPricingPanel.tsx:124 #: src/pages/part/pricing/PriceBreakPanel.tsx:168 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:67 #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:128 #: src/pages/part/pricing/SupplierPricingPanel.tsx:62 #: src/tables/bom/BomTable.tsx:175 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:227 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:226 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:88 msgid "Unit Price" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:153 +#: src/pages/part/pricing/BomPricingPanel.tsx:149 #: src/pages/part/pricing/VariantPricingPanel.tsx:53 #: src/tables/purchasing/SupplierPartTable.tsx:148 msgid "Updated" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:218 +#: src/pages/part/pricing/BomPricingPanel.tsx:214 msgid "Pie Chart" msgstr "" -#: src/pages/part/pricing/BomPricingPanel.tsx:219 +#: src/pages/part/pricing/BomPricingPanel.tsx:215 msgid "Bar Chart" msgstr "" @@ -4824,7 +4921,7 @@ msgstr "" msgid "Order Details" msgstr "" -#: src/pages/purchasing/PurchaseOrderDetail.tsx:310 +#: src/pages/purchasing/PurchaseOrderDetail.tsx:313 #: src/pages/sales/ReturnOrderDetail.tsx:299 #: src/pages/sales/SalesOrderDetail.tsx:307 msgid "Order Actions" @@ -4852,7 +4949,7 @@ msgstr "" msgid "Add Return Order" msgstr "" -#: src/pages/sales/SalesIndex.tsx:33 +#: src/pages/sales/SalesIndex.tsx:38 msgid "Customers" msgstr "" @@ -4870,64 +4967,64 @@ msgstr "" msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:331 -#: src/tables/stock/StockLocationTable.tsx:114 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:336 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:326 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4947,52 +5044,52 @@ msgstr "" #~ msgid "Unlink custom barcode from stock item" #~ msgstr "Unlink custom barcode from stock item" -#: src/pages/stock/StockDetail.tsx:179 +#: src/pages/stock/StockDetail.tsx:185 msgid "Installed In" msgstr "" -#: src/pages/stock/StockDetail.tsx:195 +#: src/pages/stock/StockDetail.tsx:201 msgid "Consumed By" msgstr "" -#: src/pages/stock/StockDetail.tsx:204 -#: src/tables/stock/StockTrackingTable.tsx:96 -msgid "Build Order" -msgstr "" - #: src/pages/stock/StockDetail.tsx:205 #~ msgid "Edit stock item" #~ msgstr "Edit stock item" +#: src/pages/stock/StockDetail.tsx:210 +#: src/tables/stock/StockTrackingTable.tsx:96 +msgid "Build Order" +msgstr "" + #: src/pages/stock/StockDetail.tsx:217 #~ msgid "Delete stock item" #~ msgstr "Delete stock item" -#: src/pages/stock/StockDetail.tsx:269 +#: src/pages/stock/StockDetail.tsx:275 msgid "Stock Details" msgstr "" -#: src/pages/stock/StockDetail.tsx:275 +#: src/pages/stock/StockDetail.tsx:281 msgid "Stock Tracking" msgstr "" -#: src/pages/stock/StockDetail.tsx:294 +#: src/pages/stock/StockDetail.tsx:300 msgid "Test Data" msgstr "" -#: src/pages/stock/StockDetail.tsx:308 +#: src/pages/stock/StockDetail.tsx:314 msgid "Installed Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:315 +#: src/pages/stock/StockDetail.tsx:321 msgid "Child Items" msgstr "" -#: src/pages/stock/StockDetail.tsx:369 +#: src/pages/stock/StockDetail.tsx:375 msgid "Edit Stock Item" msgstr "" -#: src/pages/stock/StockDetail.tsx:396 +#: src/pages/stock/StockDetail.tsx:402 msgid "Delete Stock Item" msgstr "" @@ -5000,34 +5097,34 @@ msgstr "" #~ msgid "Duplicate stock item" #~ msgstr "Duplicate stock item" -#: src/pages/stock/StockDetail.tsx:443 +#: src/pages/stock/StockDetail.tsx:452 msgid "Stock Operations" msgstr "" -#: src/pages/stock/StockDetail.tsx:448 +#: src/pages/stock/StockDetail.tsx:457 msgid "Count stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:458 +#: src/pages/stock/StockDetail.tsx:467 #: src/tables/stock/StockItemTable.tsx:448 msgid "Add stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:466 +#: src/pages/stock/StockDetail.tsx:475 #: src/tables/stock/StockItemTable.tsx:457 msgid "Remove stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:473 +#: src/pages/stock/StockDetail.tsx:482 msgid "Transfer" msgstr "" -#: src/pages/stock/StockDetail.tsx:474 +#: src/pages/stock/StockDetail.tsx:483 #: src/tables/stock/StockItemTable.tsx:477 msgid "Transfer stock" msgstr "" -#: src/pages/stock/StockDetail.tsx:485 +#: src/pages/stock/StockDetail.tsx:494 msgid "Stock Item Actions" msgstr "" @@ -5061,19 +5158,19 @@ msgstr "" #~ msgid "Excel" #~ msgstr "Excel" +#: src/tables/DownloadAction.tsx:21 +msgid "CSV" +msgstr "" + #: src/tables/DownloadAction.tsx:21 #~ msgid "Download selected data" #~ msgstr "Download selected data" #: src/tables/DownloadAction.tsx:22 -msgid "CSV" -msgstr "" - -#: src/tables/DownloadAction.tsx:23 msgid "TSV" msgstr "" -#: src/tables/DownloadAction.tsx:24 +#: src/tables/DownloadAction.tsx:23 msgid "Excel (.xlsx)" msgstr "" @@ -5081,7 +5178,7 @@ msgstr "" #~ msgid "Excel (.xls)" #~ msgstr "Excel (.xls)" -#: src/tables/DownloadAction.tsx:38 +#: src/tables/DownloadAction.tsx:36 msgid "Download Data" msgstr "" @@ -5146,76 +5243,83 @@ msgstr "" msgid "Clear Filters" msgstr "" -#: src/tables/InvenTreeTable.tsx:127 -#: src/tables/InvenTreeTable.tsx:409 -#: src/tables/InvenTreeTable.tsx:430 +#: src/tables/InvenTreeTable.tsx:126 +#: src/tables/InvenTreeTable.tsx:422 +#: src/tables/InvenTreeTable.tsx:446 msgid "No records found" msgstr "" -#: src/tables/InvenTreeTable.tsx:441 +#: src/tables/InvenTreeTable.tsx:457 msgid "Server returned incorrect data type" msgstr "" -#: src/tables/InvenTreeTable.tsx:449 +#: src/tables/InvenTreeTable.tsx:465 msgid "Bad request" msgstr "" -#: src/tables/InvenTreeTable.tsx:452 +#: src/tables/InvenTreeTable.tsx:468 msgid "Unauthorized" msgstr "" -#: src/tables/InvenTreeTable.tsx:455 +#: src/tables/InvenTreeTable.tsx:471 msgid "Forbidden" msgstr "" -#: src/tables/InvenTreeTable.tsx:458 +#: src/tables/InvenTreeTable.tsx:474 msgid "Not found" msgstr "" -#: src/tables/InvenTreeTable.tsx:506 -#: src/tables/InvenTreeTable.tsx:625 -msgid "Delete selected records" -msgstr "" - #: src/tables/InvenTreeTable.tsx:510 -msgid "Are you sure you want to delete the selected records?" +#~ msgid "Are you sure you want to delete the selected records?" +#~ msgstr "Are you sure you want to delete the selected records?" + +#: src/tables/InvenTreeTable.tsx:516 +msgid "Delete Selected Items" msgstr "" -#: src/tables/InvenTreeTable.tsx:512 +#: src/tables/InvenTreeTable.tsx:520 +msgid "Are you sure you want to delete the selected items?" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:522 msgid "This action cannot be undone!" msgstr "" #: src/tables/InvenTreeTable.tsx:535 -msgid "Deleted records" -msgstr "" +#~ msgid "Deleted records" +#~ msgstr "Deleted records" #: src/tables/InvenTreeTable.tsx:536 -msgid "Records were deleted successfully" -msgstr "" +#~ msgid "Records were deleted successfully" +#~ msgstr "Records were deleted successfully" #: src/tables/InvenTreeTable.tsx:545 -msgid "Failed to delete records" -msgstr "" +#~ msgid "Failed to delete records" +#~ msgstr "Failed to delete records" #: src/tables/InvenTreeTable.tsx:594 #: src/tables/InvenTreeTable.tsx:595 #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:615 -#: src/tables/InvenTreeTable.tsx:616 +#: src/tables/InvenTreeTable.tsx:600 +#: src/tables/InvenTreeTable.tsx:601 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:644 +#: src/tables/InvenTreeTable.tsx:610 +msgid "Delete selected records" +msgstr "" + +#: src/tables/InvenTreeTable.tsx:631 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:670 +#: src/tables/InvenTreeTable.tsx:657 msgid "Table filters" msgstr "" -#: src/tables/UploadAction.tsx:9 +#: src/tables/UploadAction.tsx:7 msgid "Upload Data" msgstr "" @@ -5977,33 +6081,33 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:103 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6305,7 +6409,7 @@ msgstr "" msgid "Any tests results associated with this template will be deleted" msgstr "" -#: src/tables/part/PartThumbTable.tsx:203 +#: src/tables/part/PartThumbTable.tsx:201 msgid "Select" msgstr "" @@ -6597,10 +6701,6 @@ msgstr "" #~ msgid "Create Manufacturer Part" #~ msgstr "Create Manufacturer Part" -#: src/tables/purchasing/ManufacturerPartTable.tsx:92 -msgid "Delete Manufacturer Part" -msgstr "" - #: src/tables/purchasing/ManufacturerPartTable.tsx:100 #~ msgid "Manufacturer part updated" #~ msgstr "Manufacturer part updated" @@ -6613,56 +6713,56 @@ msgstr "" #~ msgid "Are you sure you want to remove this manufacturer part?" #~ msgstr "Are you sure you want to remove this manufacturer part?" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:99 -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:330 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:98 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:329 msgid "Import Line Items" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:139 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:138 msgid "Part Description" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:166 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:165 msgid "Total Quantity" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:205 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:204 msgid "Supplier Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:212 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:211 msgid "Supplier Link" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:219 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:218 msgid "Manufacturer Code" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:233 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:232 msgid "Destination" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:255 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:254 msgid "Add Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:272 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:271 msgid "Edit Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:280 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:279 msgid "Delete Line Item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:291 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:290 msgid "Receive line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:335 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:334 msgid "Add line item" msgstr "" -#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:345 +#: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:344 msgid "Receive items" msgstr "" @@ -6714,10 +6814,6 @@ msgstr "" #~ msgid "Are you sure you want to remove this supplier part?" #~ msgstr "Are you sure you want to remove this supplier part?" -#: src/tables/purchasing/SupplierPartTable.tsx:218 -msgid "Delete Supplier Part" -msgstr "" - #: src/tables/settings/CurrencyTable.tsx:28 msgid "Rate" msgstr "" @@ -6803,71 +6899,71 @@ msgstr "" msgid "Attempts" msgstr "" -#: src/tables/settings/GroupTable.tsx:51 +#: src/tables/settings/GroupTable.tsx:89 msgid "Group with id {id} not found" msgstr "" -#: src/tables/settings/GroupTable.tsx:53 +#: src/tables/settings/GroupTable.tsx:91 msgid "An error occurred while fetching group details" msgstr "" -#: src/tables/settings/GroupTable.tsx:77 +#: src/tables/settings/GroupTable.tsx:115 msgid "Permission set" msgstr "" -#: src/tables/settings/GroupTable.tsx:127 +#: src/tables/settings/GroupTable.tsx:165 msgid "Delete group" msgstr "" -#: src/tables/settings/GroupTable.tsx:128 +#: src/tables/settings/GroupTable.tsx:166 msgid "Group deleted" msgstr "" -#: src/tables/settings/GroupTable.tsx:130 +#: src/tables/settings/GroupTable.tsx:168 msgid "Are you sure you want to delete this group?" msgstr "" -#: src/tables/settings/GroupTable.tsx:135 -#: src/tables/settings/GroupTable.tsx:147 +#: src/tables/settings/GroupTable.tsx:173 +#: src/tables/settings/GroupTable.tsx:185 msgid "Add group" msgstr "" -#: src/tables/settings/GroupTable.tsx:159 +#: src/tables/settings/GroupTable.tsx:197 msgid "Edit group" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:39 +#: src/tables/settings/ImportSessionTable.tsx:38 msgid "Delete Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:45 -#: src/tables/settings/ImportSessionTable.tsx:132 +#: src/tables/settings/ImportSessionTable.tsx:44 +#: src/tables/settings/ImportSessionTable.tsx:131 msgid "Create Import Session" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:70 +#: src/tables/settings/ImportSessionTable.tsx:69 msgid "Uploaded" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:80 +#: src/tables/settings/ImportSessionTable.tsx:79 msgid "Imported Rows" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:110 +#: src/tables/settings/ImportSessionTable.tsx:109 #: src/tables/settings/TemplateTable.tsx:276 msgid "Model Type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:111 +#: src/tables/settings/ImportSessionTable.tsx:110 #: src/tables/settings/TemplateTable.tsx:277 msgid "Filter by target model type" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:117 +#: src/tables/settings/ImportSessionTable.tsx:116 msgid "Filter by import session status" msgstr "" -#: src/tables/settings/ImportSessionTable.tsx:123 +#: src/tables/settings/ImportSessionTable.tsx:122 msgid "Filter by user" msgstr "" @@ -7021,20 +7117,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7111,7 +7207,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7332,32 +7428,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:124 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" From 06a95f944ef5fa09bb1dde09758b298c8b137f11 Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Tue, 30 Jul 2024 04:27:55 +0200 Subject: [PATCH 12/55] update ruff settings to new preference (#7756) --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 54e44d2db7..421a7fe37f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,7 +16,7 @@ exclude = [ src = ["src/backend/InvenTree"] # line-length = 120 -[tool.ruff.extend-per-file-ignores] +[tool.ruff.lint.extend-per-file-ignores] "__init__.py" = ["D104"] [tool.ruff.lint] From 413cc0ce20a95e665b89829fa7655d1c289a1601 Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Tue, 30 Jul 2024 04:28:36 +0200 Subject: [PATCH 13/55] Add detection of curroent commit / branch (#7745) this ensures runs are reproducible/replacable and doc contents stay up --- docs/main.py | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/docs/main.py b/docs/main.py index 78a4339315..4dcac9fcf8 100644 --- a/docs/main.py +++ b/docs/main.py @@ -2,7 +2,6 @@ import os import subprocess -import textwrap import requests import yaml @@ -54,11 +53,23 @@ def check_link(url) -> bool: return False +def get_build_enviroment() -> str: + """Returns the branch we are currently building on, based on the environment variables of the various CI platforms.""" + # Check if we are in ReadTheDocs + if os.environ.get('READTHEDOCS') == 'True': + return os.environ.get('READTHEDOCS_GIT_IDENTIFIER') + # We are in GitHub Actions + elif os.environ.get('GITHUB_ACTIONS') == 'true': + return os.environ.get('GITHUB_REF') + else: + return 'master' + + def define_env(env): """Define custom environment variables for the documentation build process.""" @env.macro - def sourcedir(dirname, branch='master'): + def sourcedir(dirname, branch=None): """Return a link to a directory within the source code repository. Arguments: @@ -70,6 +81,9 @@ def define_env(env): Raises: - FileNotFoundError: If the directory does not exist, or the generated URL is invalid """ + if branch == None: + branch = get_build_enviroment() + if dirname.startswith('/'): dirname = dirname[1:] @@ -94,7 +108,7 @@ def define_env(env): return url @env.macro - def sourcefile(filename, branch='master', raw=False): + def sourcefile(filename, branch=None, raw=False): """Return a link to a file within the source code repository. Arguments: @@ -106,6 +120,9 @@ def define_env(env): Raises: - FileNotFoundError: If the file does not exist, or the generated URL is invalid """ + if branch == None: + branch = get_build_enviroment() + if filename.startswith('/'): filename = filename[1:] From e3ccd3a682041a2b38fb340903ec71c34f5c966e Mon Sep 17 00:00:00 2001 From: Lukas <76838159+wolflu05@users.noreply.github.com> Date: Tue, 30 Jul 2024 12:31:16 +0200 Subject: [PATCH 14/55] Add how to install custom packages to the docker image section (#7752) --- docs/docs/start/docker_install.md | 83 +++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/docs/docs/start/docker_install.md b/docs/docs/start/docker_install.md index b2384c4df5..b99eaa16b6 100644 --- a/docs/docs/start/docker_install.md +++ b/docs/docs/start/docker_install.md @@ -212,3 +212,86 @@ To start afresh (and completely remove the existing database), run the following ``` docker compose run --rm inventree-server invoke delete-data ``` + +## Install custom packages + +To install custom packages to your docker image, a custom docker image can be built and used automatically each time when updating. The following changes need to be applied to the docker compose file: + +
docker-compose.yml changes + +```diff +diff --git a/docker-compose.yml b/docker-compose.yml +index 8adee63..dc3993c 100644 +--- a/docker-compose.yml ++++ b/docker-compose.yml +@@ -69,7 +69,14 @@ services: + # Uses gunicorn as the web server + inventree-server: + # If you wish to specify a particular InvenTree version, do so here +- image: inventree/inventree:${INVENTREE_TAG:-stable} ++ image: inventree/inventree:${INVENTREE_TAG:-stable}-custom ++ pull_policy: never ++ build: ++ context: . ++ dockerfile: Dockerfile ++ target: production ++ args: ++ INVENTREE_TAG: ${INVENTREE_TAG:-stable} + # Only change this port if you understand the stack. + # If you change this you have to change: + # - the proxy settings (on two lines) +@@ -88,7 +95,8 @@ services: + # Background worker process handles long-running or periodic tasks + inventree-worker: + # If you wish to specify a particular InvenTree version, do so here +- image: inventree/inventree:${INVENTREE_TAG:-stable} ++ image: inventree/inventree:${INVENTREE_TAG:-stable}-custom ++ pull_policy: never + command: invoke worker + depends_on: + - inventree-server +``` + +
+ +And the following `Dockerfile` needs to be created: + +
Dockerfile + +```dockerfile +ARG INVENTREE_TAG + +FROM inventree/inventree:${INVENTREE_TAG} as production + +# Install whatever dependency is needed here (e.g. git) +RUN apk add --no-cache git +``` + +
+ +And if addittional, development packages are needed e.g. just for building a wheel for a pip package, a multi stage build can be used with the following `Dockerfile`: + +
Dockerfile + +```dockerfile +ARG INVENTREE_TAG + +# prebuild stage - needs a lot of build dependencies +# make sure, the alpine and python version matches the version used in the inventree base image +FROM python:3.11-alpine3.18 as prebuild + +# Install whatever development dependency is needed (e.g. cups-dev, gcc, the musl-dev build tools and the pip pycups package) +RUN apk add --no-cache cups-dev gcc musl-dev && \ + pip install --user --no-cache-dir pycups + +# production image - only install the cups shared library +FROM inventree/inventree:${INVENTREE_TAG} as production + +# Install e.g. shared library later available in the final image +RUN apk add --no-cache cups-libs + +# Copy the pip wheels from the build stage in the production stage +COPY --from=prebuild /root/.local /root/.local +``` + +
From 648cb12b5c30fb6b6b881018c855ab40febbd482 Mon Sep 17 00:00:00 2001 From: Lukas <76838159+wolflu05@users.noreply.github.com> Date: Tue, 30 Jul 2024 12:51:27 +0200 Subject: [PATCH 15/55] Plugin static files (#7763) * add plugin_static template tag * don't load plugins for collectstatic anymore as they are now collected seperatly * fix clear plugin staic files bug with nested folder path --- src/backend/InvenTree/InvenTree/ready.py | 3 ++- src/backend/InvenTree/plugin/staticfiles.py | 10 +++++--- .../plugin/templatetags/plugin_extras.py | 25 +++++++++++++++++++ 3 files changed, 33 insertions(+), 5 deletions(-) diff --git a/src/backend/InvenTree/InvenTree/ready.py b/src/backend/InvenTree/InvenTree/ready.py index 0ae788282c..b08941d1c0 100644 --- a/src/backend/InvenTree/InvenTree/ready.py +++ b/src/backend/InvenTree/InvenTree/ready.py @@ -115,6 +115,7 @@ def canAppAccessDatabase( 'makemessages', 'compilemessages', 'spectactular', + 'collectstatic', ] if not allow_shell: @@ -125,7 +126,7 @@ def canAppAccessDatabase( excluded_commands.append('test') if not allow_plugins: - excluded_commands.extend(['collectstatic', 'collectplugins']) + excluded_commands.extend(['collectplugins']) for cmd in excluded_commands: if cmd in sys.argv: diff --git a/src/backend/InvenTree/plugin/staticfiles.py b/src/backend/InvenTree/plugin/staticfiles.py index c930ff497b..6e08051fc4 100644 --- a/src/backend/InvenTree/plugin/staticfiles.py +++ b/src/backend/InvenTree/plugin/staticfiles.py @@ -1,7 +1,6 @@ """Static files management for InvenTree plugins.""" import logging -from pathlib import Path from django.contrib.staticfiles.storage import staticfiles_storage @@ -23,12 +22,15 @@ def clear_static_dir(path, recursive=True): dirs, files = staticfiles_storage.listdir(path) for f in files: - staticfiles_storage.delete(f'{path}/{f}') + staticfiles_storage.delete(f'{path}{f}') if recursive: for d in dirs: - clear_static_dir(f'{path}/{d}', recursive=True) - staticfiles_storage.delete(d) + clear_static_dir(f'{path}{d}/', recursive=True) + staticfiles_storage.delete(f'{path}{d}') + + # Finally, delete the directory itself to remove orphan folders when uninstalling a plugin + staticfiles_storage.delete(path) def collect_plugins_static_files(): diff --git a/src/backend/InvenTree/plugin/templatetags/plugin_extras.py b/src/backend/InvenTree/plugin/templatetags/plugin_extras.py index 38abaa650e..c7d15e95a8 100644 --- a/src/backend/InvenTree/plugin/templatetags/plugin_extras.py +++ b/src/backend/InvenTree/plugin/templatetags/plugin_extras.py @@ -2,6 +2,7 @@ from django import template from django.conf import settings as djangosettings +from django.templatetags.static import static from django.urls import reverse from common.notifications import storage @@ -96,3 +97,27 @@ def notification_list(context, *args, **kwargs): } for a in storage.liste ] + + +@register.simple_tag(takes_context=True) +def plugin_static(context, file: str, **kwargs): + """Return the URL for a static file within a plugin. + + Arguments: + file: The path to the file within the plugin static directory + + Keyword Arguments: + plugin: The plugin slug (optional, will be inferred from the context if not provided) + + """ + plugin = context.get('plugin', None) + + if plugin: + plugin = plugin.slug + else: + plugin = kwargs.get('plugin', None) + + if not plugin: + return file + + return static(f'plugins/{plugin}/{file}') From 6c089d386930bd6aa14f15c42db3f96a4b752e22 Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Tue, 30 Jul 2024 12:53:02 +0200 Subject: [PATCH 16/55] fix path to CI dependencies (#7755) --- .github/dependabot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 8d14eeb906..37c37b524e 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -18,7 +18,7 @@ updates: directories: - /contrib/container - /docs - - /.github + - /contrib/dev_reqs - /src/backend schedule: interval: weekly From 930356f32b1a8fd307397b5b75173d1b15867ef1 Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Tue, 30 Jul 2024 12:56:47 +0200 Subject: [PATCH 17/55] Add option to disable MFA (#7757) * Add changes from https://github.com/inventree/InvenTree/pull/7747 * disable addition of factors * rename variable --- docs/docs/start/config.md | 4 ++++ src/backend/InvenTree/InvenTree/forms.py | 11 +++++++++++ src/backend/InvenTree/InvenTree/settings.py | 3 +++ src/backend/InvenTree/InvenTree/social_auth_urls.py | 5 ++++- 4 files changed, 22 insertions(+), 1 deletion(-) diff --git a/docs/docs/start/config.md b/docs/docs/start/config.md index 98498f25fc..e038c78753 100644 --- a/docs/docs/start/config.md +++ b/docs/docs/start/config.md @@ -297,6 +297,10 @@ Alternatively this location can be specified with the `INVENTREE_BACKUP_DIR` env InvenTree provides allowance for additional sign-in options. The following options are not enabled by default, and care must be taken by the system administrator when configuring these settings. +| Environment Variable | Configuration File | Description | Default | +| --- | --- | --- | --- | +| INVENTREE_MFA_ENABLED | mfa_enabled | Enable or disable multi-factor authentication support for the InvenTree server | True | + ### Single Sign On Single Sign On (SSO) allows users to sign in to InvenTree using a third-party authentication provider. This functionality is provided by the [django-allauth](https://docs.allauth.org/en/latest/) package. diff --git a/src/backend/InvenTree/InvenTree/forms.py b/src/backend/InvenTree/InvenTree/forms.py index cffb987e1f..0997f1a38b 100644 --- a/src/backend/InvenTree/InvenTree/forms.py +++ b/src/backend/InvenTree/InvenTree/forms.py @@ -15,6 +15,7 @@ from allauth.account.forms import LoginForm, SignupForm, set_form_field_order from allauth.core.exceptions import ImmediateHttpResponse from allauth.socialaccount.adapter import DefaultSocialAccountAdapter from allauth_2fa.adapter import OTPAdapter +from allauth_2fa.forms import TOTPDeviceForm from allauth_2fa.utils import user_has_valid_totp_device from crispy_forms.bootstrap import AppendedText, PrependedAppendedText, PrependedText from crispy_forms.helper import FormHelper @@ -211,6 +212,16 @@ class CustomSignupForm(SignupForm): return cleaned_data +class CustomTOTPDeviceForm(TOTPDeviceForm): + """Ensure that db registration is enabled.""" + + def __init__(self, user, metadata=None, **kwargs): + """Override to check if registration is open.""" + if not settings.MFA_ENABLED: + raise forms.ValidationError(_('MFA Registration is disabled.')) + super().__init__(user, metadata, **kwargs) + + def registration_enabled(): """Determine whether user registration is enabled.""" if get_global_setting('LOGIN_ENABLE_REG') or InvenTree.sso.registration_enabled(): diff --git a/src/backend/InvenTree/InvenTree/settings.py b/src/backend/InvenTree/InvenTree/settings.py index cedeb4e215..0d7b306ff2 100644 --- a/src/backend/InvenTree/InvenTree/settings.py +++ b/src/backend/InvenTree/InvenTree/settings.py @@ -1210,6 +1210,9 @@ ACCOUNT_FORMS = { 'reset_password_from_key': 'allauth.account.forms.ResetPasswordKeyForm', 'disconnect': 'allauth.socialaccount.forms.DisconnectForm', } +ALLAUTH_2FA_FORMS = {'setup': 'InvenTree.forms.CustomTOTPDeviceForm'} +# Determine if multi-factor authentication is enabled for this server (default = True) +MFA_ENABLED = get_boolean_setting('INVENTREE_MFA_ENABLED', 'mfa_enabled', True) SOCIALACCOUNT_ADAPTER = 'InvenTree.forms.CustomSocialAccountAdapter' ACCOUNT_ADAPTER = 'InvenTree.forms.CustomAccountAdapter' diff --git a/src/backend/InvenTree/InvenTree/social_auth_urls.py b/src/backend/InvenTree/InvenTree/social_auth_urls.py index 49d9e461ee..9702750b49 100644 --- a/src/backend/InvenTree/InvenTree/social_auth_urls.py +++ b/src/backend/InvenTree/InvenTree/social_auth_urls.py @@ -3,6 +3,7 @@ import logging from importlib import import_module +from django.conf import settings from django.urls import NoReverseMatch, include, path, reverse from allauth.account.models import EmailAddress @@ -177,7 +178,9 @@ class SocialProviderListView(ListAPI): data = { 'sso_enabled': InvenTree.sso.login_enabled(), 'sso_registration': InvenTree.sso.registration_enabled(), - 'mfa_required': get_global_setting('LOGIN_ENFORCE_MFA'), + 'mfa_required': settings.MFA_ENABLED + and get_global_setting('LOGIN_ENFORCE_MFA'), + 'mfa_enabled': settings.MFA_ENABLED, 'providers': provider_list, 'registration_enabled': get_global_setting('LOGIN_ENABLE_REG'), 'password_forgotten_enabled': get_global_setting('LOGIN_ENABLE_PWD_FORGOT'), From c33e91a42bf123a4e5406bf9e9d14662150e6756 Mon Sep 17 00:00:00 2001 From: Josip Medved Date: Tue, 30 Jul 2024 04:12:02 -0700 Subject: [PATCH 18/55] Removed obsoleted version element from docker-compose examples (#7760) --- .devcontainer/docker-compose.yml | 2 -- contrib/container/dev-docker-compose.yml | 2 -- contrib/container/docker-compose.yml | 2 -- 3 files changed, 6 deletions(-) diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml index aa549c0361..49d5201eec 100644 --- a/.devcontainer/docker-compose.yml +++ b/.devcontainer/docker-compose.yml @@ -1,5 +1,3 @@ -version: "3" - services: db: image: postgres:13 diff --git a/contrib/container/dev-docker-compose.yml b/contrib/container/dev-docker-compose.yml index 4b84be12a5..54636da3d5 100644 --- a/contrib/container/dev-docker-compose.yml +++ b/contrib/container/dev-docker-compose.yml @@ -1,5 +1,3 @@ -version: "3.8" - # Docker compose recipe for InvenTree development server # - Runs PostgreSQL as the database backend # - Uses built-in django webserver diff --git a/contrib/container/docker-compose.yml b/contrib/container/docker-compose.yml index de38b655b8..6a0b001f8b 100644 --- a/contrib/container/docker-compose.yml +++ b/contrib/container/docker-compose.yml @@ -1,5 +1,3 @@ -version: "3.8" - # Docker compose recipe for a production-ready InvenTree setup, with the following containers: # - PostgreSQL as the database backend # - gunicorn as the InvenTree web server From 3e5972e918c72cdf2b9132cd935e3fee03d4daf1 Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Tue, 30 Jul 2024 16:33:21 +0200 Subject: [PATCH 19/55] fix style issue (#7768) --- docs/docs/start/docker_install.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/docs/start/docker_install.md b/docs/docs/start/docker_install.md index b99eaa16b6..aca4ae4024 100644 --- a/docs/docs/start/docker_install.md +++ b/docs/docs/start/docker_install.md @@ -269,7 +269,7 @@ RUN apk add --no-cache git -And if addittional, development packages are needed e.g. just for building a wheel for a pip package, a multi stage build can be used with the following `Dockerfile`: +And if additional, development packages are needed e.g. just for building a wheel for a pip package, a multi stage build can be used with the following `Dockerfile`:
Dockerfile @@ -277,7 +277,7 @@ And if addittional, development packages are needed e.g. just for building a whe 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 +# make sure, the alpine and python version matches the version used in the inventree base image FROM python:3.11-alpine3.18 as prebuild # Install whatever development dependency is needed (e.g. cups-dev, gcc, the musl-dev build tools and the pip pycups package) From c8870c4ade2c2ecd8ca8b57396fe685b11a6d892 Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Tue, 30 Jul 2024 16:33:39 +0200 Subject: [PATCH 20/55] Pin OAS action (#7767) --- .github/workflows/qc_checks.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/qc_checks.yaml b/.github/workflows/qc_checks.yaml index 5858ced323..a128af69c8 100644 --- a/.github/workflows/qc_checks.yaml +++ b/.github/workflows/qc_checks.yaml @@ -177,7 +177,7 @@ jobs: echo "Downloaded api.yaml" - name: Running OpenAPI Spec diff action id: breaking_changes - uses: oasdiff/oasdiff-action/diff@main + uses: oasdiff/oasdiff-action/diff@205ce7e2c5ae1511e720cbd307cae79fd7d4a909 # pin@main with: base: 'api.yaml' revision: 'src/backend/InvenTree/schema.yml' From f7323d1e50241e62d6776bc9e4486cc0e363a791 Mon Sep 17 00:00:00 2001 From: Oliver Date: Wed, 31 Jul 2024 15:49:11 +1000 Subject: [PATCH 21/55] [PUI] Bug fix for API forms (#7758) * [PUI] Bug fix for API forms - Ensure that "blank" data does not get overriden with previous fields - Better logic for form data fetching * Playwright test fixes --- src/frontend/src/components/forms/ApiForm.tsx | 6 +++--- src/frontend/tests/pages/pui_scan.spec.ts | 4 ++-- src/frontend/tests/pui_general.spec.ts | 5 ++++- src/frontend/tests/pui_stock.spec.ts | 2 +- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/frontend/src/components/forms/ApiForm.tsx b/src/frontend/src/components/forms/ApiForm.tsx index 797862c0f3..67159e6398 100644 --- a/src/frontend/src/components/forms/ApiForm.tsx +++ b/src/frontend/src/components/forms/ApiForm.tsx @@ -309,17 +309,17 @@ export function ApiForm({ for (const k of Object.keys(_fields)) { // Ensure default values override initial field spec - if (defaultValues[k]) { + if (k in defaultValues) { _fields[k].value = defaultValues[k]; } // Ensure initial data overrides default values - if (_initialData && _initialData[k]) { + if (_initialData && k in _initialData) { _fields[k].value = _initialData[k]; } // Ensure fetched data overrides also - if (_fetchedData && _fetchedData[k]) { + if (_fetchedData && k in _fetchedData) { _fields[k].value = _fetchedData[k]; } } diff --git a/src/frontend/tests/pages/pui_scan.spec.ts b/src/frontend/tests/pages/pui_scan.spec.ts index 000aada917..78bfdfb419 100644 --- a/src/frontend/tests/pages/pui_scan.spec.ts +++ b/src/frontend/tests/pages/pui_scan.spec.ts @@ -38,8 +38,8 @@ test('PUI - Pages - Index - Scan (Stockitem)', async ({ page }) => { // stockitem: 408 await page.getByText('1551ABK').waitFor(); - await page.getByText('Quantity: 145').waitFor(); - await page.getByRole('cell', { name: 'Quantity: 145' }).waitFor(); + await page.getByText('Quantity: 100').waitFor(); + await page.getByRole('cell', { name: 'Quantity: 100' }).waitFor(); }); test('PUI - Pages - Index - Scan (StockLocation)', async ({ page }) => { diff --git a/src/frontend/tests/pui_general.spec.ts b/src/frontend/tests/pui_general.spec.ts index 24a56d91f7..fdc6e536f3 100644 --- a/src/frontend/tests/pui_general.spec.ts +++ b/src/frontend/tests/pui_general.spec.ts @@ -188,7 +188,10 @@ test('PUI - Company', async ({ page }) => { await page.getByRole('tab', { name: 'Purchase Orders' }).click(); await page.getByRole('cell', { name: 'Molex connectors' }).first().waitFor(); await page.getByRole('tab', { name: 'Stock Items' }).click(); - await page.getByRole('cell', { name: 'Blue plastic enclosure' }).waitFor(); + await page + .getByRole('cell', { name: 'Blue plastic enclosure' }) + .first() + .waitFor(); await page.getByRole('tab', { name: 'Contacts' }).click(); await page.getByRole('cell', { name: 'jimmy.mcleod@digikey.com' }).waitFor(); await page.getByRole('tab', { name: 'Addresses' }).click(); diff --git a/src/frontend/tests/pui_stock.spec.ts b/src/frontend/tests/pui_stock.spec.ts index 46535302a9..847050aed9 100644 --- a/src/frontend/tests/pui_stock.spec.ts +++ b/src/frontend/tests/pui_stock.spec.ts @@ -12,7 +12,7 @@ test('PUI - Stock', async ({ page }) => { await page.waitForURL('**/platform/stock/location/index/details'); await page.getByRole('tab', { name: 'Stock Items' }).click(); - await page.getByRole('cell', { name: '1551ABK' }).click(); + await page.getByText('1551ABK').first().click(); await page.getByRole('tab', { name: 'Stock', exact: true }).click(); await page.waitForURL('**/platform/stock/**'); From efda47d2cdda503d2af635b86dcfc682ba42472f Mon Sep 17 00:00:00 2001 From: Oliver Date: Wed, 31 Jul 2024 15:49:21 +1000 Subject: [PATCH 22/55] Add extra fields to BOM export (#7775) * Add extra fields to BOM export * Bump API version --- .../InvenTree/InvenTree/api_version.py | 5 +++- src/backend/InvenTree/part/serializers.py | 25 +++++++++++++++++-- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/backend/InvenTree/InvenTree/api_version.py b/src/backend/InvenTree/InvenTree/api_version.py index 1082460451..c0e3e67f6f 100644 --- a/src/backend/InvenTree/InvenTree/api_version.py +++ b/src/backend/InvenTree/InvenTree/api_version.py @@ -1,12 +1,15 @@ """InvenTree API version information.""" # InvenTree API version -INVENTREE_API_VERSION = 228 +INVENTREE_API_VERSION = 229 """Increment this API version number whenever there is a significant change to the API that any clients need to know about.""" INVENTREE_API_TEXT = """ +v229 - 2024-07-31 : https://github.com/inventree/InvenTree/pull/7775 + - Add extra exportable fields to the BomItem serializer + v228 - 2024-07-18 : https://github.com/inventree/InvenTree/pull/7684 - Adds "icon" field to the PartCategory.path and StockLocation.path API - Adds icon packages API endpoint diff --git a/src/backend/InvenTree/part/serializers.py b/src/backend/InvenTree/part/serializers.py index f1518e0780..0758a8ff8d 100644 --- a/src/backend/InvenTree/part/serializers.py +++ b/src/backend/InvenTree/part/serializers.py @@ -1490,6 +1490,8 @@ class BomItemSerializer( import_exclude_fields = ['validated', 'substitutes'] + export_only_fields = ['sub_part_name', 'sub_part_ipn', 'sub_part_description'] + class Meta: """Metaclass defining serializer fields.""" @@ -1497,6 +1499,10 @@ class BomItemSerializer( fields = [ 'part', 'sub_part', + # Extra fields only for export + 'sub_part_name', + 'sub_part_ipn', + 'sub_part_description', 'reference', 'quantity', 'overage', @@ -1563,15 +1569,30 @@ class BomItemSerializer( return quantity part = serializers.PrimaryKeyRelatedField( - queryset=Part.objects.filter(assembly=True) + queryset=Part.objects.filter(assembly=True), + label=_('Assembly'), + help_text=_('Select the parent assembly'), ) substitutes = BomItemSubstituteSerializer(many=True, read_only=True) part_detail = PartBriefSerializer(source='part', many=False, read_only=True) + # Extra fields only for export + sub_part_name = serializers.CharField( + source='sub_part.name', read_only=True, label=_('Component Name') + ) + sub_part_ipn = serializers.CharField( + source='sub_part.IPN', read_only=True, label=_('Component IPN') + ) + sub_part_description = serializers.CharField( + source='sub_part.description', read_only=True, label=_('Component Description') + ) + sub_part = serializers.PrimaryKeyRelatedField( - queryset=Part.objects.filter(component=True) + queryset=Part.objects.filter(component=True), + label=_('Component'), + help_text=_('Select the component part'), ) sub_part_detail = PartBriefSerializer(source='sub_part', many=False, read_only=True) From fdd9b7c77b6cf4940b20d5508d5ab53405f3f6f6 Mon Sep 17 00:00:00 2001 From: Oliver Date: Wed, 31 Jul 2024 15:49:30 +1000 Subject: [PATCH 23/55] Fix permissions for importing data (#7776) --- src/backend/InvenTree/importer/api.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/backend/InvenTree/importer/api.py b/src/backend/InvenTree/importer/api.py index b039c61063..6eb4815784 100644 --- a/src/backend/InvenTree/importer/api.py +++ b/src/backend/InvenTree/importer/api.py @@ -47,6 +47,8 @@ class DataImporterModelList(APIView): class DataImportSessionList(BulkDeleteMixin, ListCreateAPI): """API endpoint for accessing a list of DataImportSession objects.""" + permission_classes = [permissions.IsAuthenticated] + queryset = importer.models.DataImportSession.objects.all() serializer_class = importer.serializers.DataImportSessionSerializer From 3cbfcc11cbbc9b210e01670a8fea2325f58a0017 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikl=C3=B3s=20M=C3=A1rton?= Date: Wed, 31 Jul 2024 08:23:00 +0200 Subject: [PATCH 24/55] Added test statistics (#7164) * Added test statistics Fixed #5995 * Bump API version * Fix javascript varible scopes * Fix javascript exports * Remove duplicated import * Add files modified by the pre-commit scripts * Move test statistics API urls to a separate endpoint * Merge test-statistics urls * Undo unrelated changes * Formatting fix * Fix API urls for test statistics in PUI * Fix prefixing in test statistic functions --------- Co-authored-by: Oliver --- .../InvenTree/InvenTree/api_version.py | 5 +- .../InvenTree/static/css/inventree.css | 5 + src/backend/InvenTree/InvenTree/urls.py | 2 + .../build/templates/build/build_base.html | 6 + .../build/templates/build/detail.html | 15 ++ .../build/templates/build/sidebar.html | 4 + .../InvenTree/part/templates/part/detail.html | 19 +++ .../part/templates/part/part_sidebar.html | 2 + src/backend/InvenTree/stock/api.py | 74 +++++++++- src/backend/InvenTree/stock/models.py | 63 ++++++++ src/backend/InvenTree/stock/serializers.py | 30 ++++ .../templates/js/translated/filters.js | 3 + .../templates/js/translated/stock.js | 108 ++++++++++++++ .../templates/js/translated/table_filters.js | 18 +++ .../templates/test_statistics_table.html | 22 +++ src/frontend/src/enums/ApiEndpoints.tsx | 2 + src/frontend/src/pages/build/BuildDetail.tsx | 16 +++ src/frontend/src/pages/part/PartDetail.tsx | 18 +++ .../src/tables/stock/TestStatisticsTable.tsx | 136 ++++++++++++++++++ 19 files changed, 546 insertions(+), 2 deletions(-) create mode 100644 src/backend/InvenTree/templates/test_statistics_table.html create mode 100644 src/frontend/src/tables/stock/TestStatisticsTable.tsx diff --git a/src/backend/InvenTree/InvenTree/api_version.py b/src/backend/InvenTree/InvenTree/api_version.py index c0e3e67f6f..4161388461 100644 --- a/src/backend/InvenTree/InvenTree/api_version.py +++ b/src/backend/InvenTree/InvenTree/api_version.py @@ -1,12 +1,15 @@ """InvenTree API version information.""" # InvenTree API version -INVENTREE_API_VERSION = 229 +INVENTREE_API_VERSION = 230 """Increment this API version number whenever there is a significant change to the API that any clients need to know about.""" INVENTREE_API_TEXT = """ +v230 - 2024-05-05 : https://github.com/inventree/InvenTree/pull/7164 + - Adds test statistics endpoint + v229 - 2024-07-31 : https://github.com/inventree/InvenTree/pull/7775 - Add extra exportable fields to the BomItem serializer diff --git a/src/backend/InvenTree/InvenTree/static/css/inventree.css b/src/backend/InvenTree/InvenTree/static/css/inventree.css index cc392d28b7..185ca70e8c 100644 --- a/src/backend/InvenTree/InvenTree/static/css/inventree.css +++ b/src/backend/InvenTree/InvenTree/static/css/inventree.css @@ -1112,3 +1112,8 @@ a { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } + +.test-statistics-table-total-row { + font-weight: bold; + border-top-style: double; +} diff --git a/src/backend/InvenTree/InvenTree/urls.py b/src/backend/InvenTree/InvenTree/urls.py index 4d3d7f95c6..91a6ce35ca 100644 --- a/src/backend/InvenTree/InvenTree/urls.py +++ b/src/backend/InvenTree/InvenTree/urls.py @@ -35,6 +35,7 @@ from company.urls import company_urls, manufacturer_part_urls, supplier_part_url from order.urls import order_urls from part.urls import part_urls from plugin.urls import get_plugin_urls +from stock.api import test_statistics_api_urls from stock.urls import stock_urls from web.urls import api_urls as web_api_urls from web.urls import urlpatterns as platform_urls @@ -109,6 +110,7 @@ apipatterns = [ ), ]), ), + path('test-statistics/', include(test_statistics_api_urls)), path('user/', include(users.api.user_urls)), path('web/', include(web_api_urls)), # Plugin endpoints diff --git a/src/backend/InvenTree/build/templates/build/build_base.html b/src/backend/InvenTree/build/templates/build/build_base.html index 5a40b32e7b..3223c7b3d8 100644 --- a/src/backend/InvenTree/build/templates/build/build_base.html +++ b/src/backend/InvenTree/build/templates/build/build_base.html @@ -298,6 +298,12 @@ src="{% static 'img/blank_image.png' %}" build: {{ build.pk }}, }); }); + + {% if build.part.trackable > 0 %} + onPanelLoad("test-statistics", function() { + prepareTestStatisticsTable('build', '{% url "api-test-statistics-by-build" build.pk %}') + }); + {% endif %} {% endif %} {% endif %} diff --git a/src/backend/InvenTree/build/templates/build/detail.html b/src/backend/InvenTree/build/templates/build/detail.html index 6cabe1f01c..e1b2c47c61 100644 --- a/src/backend/InvenTree/build/templates/build/detail.html +++ b/src/backend/InvenTree/build/templates/build/detail.html @@ -267,6 +267,21 @@ +
+
+

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

+
+ +
+
+ {% include "filter_list.html" with id="buildteststatistics" %} +
+ {% include "test_statistics_table.html" with prefix="build-" %} +
+
+
diff --git a/src/backend/InvenTree/build/templates/build/sidebar.html b/src/backend/InvenTree/build/templates/build/sidebar.html index 1c20429f2f..ef3ca6f14d 100644 --- a/src/backend/InvenTree/build/templates/build/sidebar.html +++ b/src/backend/InvenTree/build/templates/build/sidebar.html @@ -20,6 +20,10 @@ {% include "sidebar_item.html" with label='consumed' text=text icon="fa-tasks" %} {% trans "Child Build Orders" as text %} {% include "sidebar_item.html" with label='children' text=text icon="fa-sitemap" %} +{% if build.part.trackable %} +{% trans "Test Statistics" as text %} +{% include "sidebar_item.html" with label='test-statistics' text=text icon="fa-chart-line" %} +{% endif %} {% trans "Attachments" as text %} {% include "sidebar_item.html" with label='attachments' text=text icon="fa-paperclip" %} {% trans "Notes" as text %} diff --git a/src/backend/InvenTree/part/templates/part/detail.html b/src/backend/InvenTree/part/templates/part/detail.html index 7aa0458c1b..eaec60b375 100644 --- a/src/backend/InvenTree/part/templates/part/detail.html +++ b/src/backend/InvenTree/part/templates/part/detail.html @@ -100,6 +100,22 @@
+
+
+
+

{% trans "Part Test Statistics" %}

+ {% include "spacer.html" %} +
+
+
+
+ {% include "filter_list.html" with id="partteststatistics" %} +
+ + {% include "test_statistics_table.html" with prefix="part-" %} +
+
+
@@ -751,6 +767,9 @@ }); }); }); + onPanelLoad("test-statistics", function() { + prepareTestStatisticsTable('part', '{% url "api-test-statistics-by-part" part.pk %}') + }); onPanelLoad("part-stock", function() { $('#new-stock-item').click(function () { diff --git a/src/backend/InvenTree/part/templates/part/part_sidebar.html b/src/backend/InvenTree/part/templates/part/part_sidebar.html index 368110d729..8579cbd5cc 100644 --- a/src/backend/InvenTree/part/templates/part/part_sidebar.html +++ b/src/backend/InvenTree/part/templates/part/part_sidebar.html @@ -53,6 +53,8 @@ {% if part.trackable %} {% trans "Test Templates" as text %} {% include "sidebar_item.html" with label="test-templates" text=text icon="fa-vial" %} +{% trans "Test Statistics" as text %} +{% include "sidebar_item.html" with label="test-statistics" text=text icon="fa-chart-line" %} {% endif %} {% if show_related %} {% trans "Related Parts" as text %} diff --git a/src/backend/InvenTree/stock/api.py b/src/backend/InvenTree/stock/api.py index 4ea5be3117..00119d1486 100644 --- a/src/backend/InvenTree/stock/api.py +++ b/src/backend/InvenTree/stock/api.py @@ -13,7 +13,7 @@ from django.utils.translation import gettext_lazy as _ from django_filters import rest_framework as rest_filters from drf_spectacular.types import OpenApiTypes -from drf_spectacular.utils import extend_schema_field +from drf_spectacular.utils import extend_schema, extend_schema_field from rest_framework import permissions, status from rest_framework.generics import GenericAPIView from rest_framework.response import Response @@ -1288,6 +1288,54 @@ class StockItemTestResultFilter(rest_filters.FilterSet): return queryset.filter(template__key=key) +class TestStatisticsFilter(rest_filters.FilterSet): + """API filter for the filtering the test results belonging to a specific build.""" + + class Meta: + """Metaclass options.""" + + model = StockItemTestResult + fields = [] + + # Created date filters + finished_before = InvenTreeDateFilter( + label='Finished before', field_name='finished_datetime', lookup_expr='lte' + ) + finished_after = InvenTreeDateFilter( + label='Finished after', field_name='finished_datetime', lookup_expr='gte' + ) + + +class TestStatistics(GenericAPIView): + """API endpoint for accessing a test statistics broken down by test templates.""" + + queryset = StockItemTestResult.objects.all() + serializer_class = StockSerializers.TestStatisticsSerializer + pagination_class = None + filterset_class = TestStatisticsFilter + filter_backends = SEARCH_ORDER_FILTER_ALIAS + + @extend_schema( + responses={200: StockSerializers.TestStatisticsSerializer(many=False)} + ) + def get(self, request, pk, *args, **kwargs): + """Return test execution count matrix broken down by test result.""" + instance = self.get_object() + serializer = self.get_serializer(instance) + if request.resolver_match.url_name == 'api-test-statistics-by-part': + serializer.context['type'] = 'by-part' + elif request.resolver_match.url_name == 'api-test-statistics-by-build': + serializer.context['type'] = 'by-build' + serializer.context['finished_datetime_after'] = self.request.query_params.get( + 'finished_datetime_after' + ) + serializer.context['finished_datetime_before'] = self.request.query_params.get( + 'finished_datetime_before' + ) + serializer.context['pk'] = pk + return Response([serializer.data]) + + class StockItemTestResultList(StockItemTestResultMixin, ListCreateDestroyAPIView): """API endpoint for listing (and creating) a StockItemTestResult object.""" @@ -1663,3 +1711,27 @@ stock_api_urls = [ # Anything else path('', StockList.as_view(), name='api-stock-list'), ] + +test_statistics_api_urls = [ + # Test statistics endpoints + path( + 'by-part/', + include([ + path( + '/', + TestStatistics.as_view(), + name='api-test-statistics-by-part', + ) + ]), + ), + path( + 'by-build/', + include([ + path( + '/', + TestStatistics.as_view(), + name='api-test-statistics-by-build', + ) + ]), + ), +] diff --git a/src/backend/InvenTree/stock/models.py b/src/backend/InvenTree/stock/models.py index 936c7097ce..35ce61a99a 100644 --- a/src/backend/InvenTree/stock/models.py +++ b/src/backend/InvenTree/stock/models.py @@ -33,6 +33,7 @@ import InvenTree.ready import InvenTree.tasks import report.mixins import report.models +from build import models as BuildModels from common.icons import validate_icon from common.settings import get_global_setting from company import models as CompanyModels @@ -40,6 +41,7 @@ from InvenTree.fields import InvenTreeModelMoneyField, InvenTreeURLField from order.status_codes import SalesOrderStatusGroups from part import models as PartModels from plugin.events import trigger_event +from stock import models as StockModels from stock.generators import generate_batch_code from stock.status_codes import StockHistoryCode, StockStatus, StockStatusGroups from users.models import Owner @@ -2459,6 +2461,67 @@ class StockItemTestResult(InvenTree.models.InvenTreeMetadataModel): """Return key for test.""" return InvenTree.helpers.generateTestKey(self.test_name) + def calculate_test_statistics_for_test_template( + self, query_base, test_template, ret, start, end + ): + """Helper function to calculate the passed/failed/total tests count per test template type.""" + query = query_base & Q(template=test_template.pk) + if start is not None and end is not None: + query = query & Q(started_datetime__range=(start, end)) + elif start is not None and end is None: + query = query & Q(started_datetime__gt=start) + elif start is None and end is not None: + query = query & Q(started_datetime__lt=end) + + passed = StockModels.StockItemTestResult.objects.filter( + query & Q(result=True) + ).count() + failed = StockModels.StockItemTestResult.objects.filter( + query & ~Q(result=True) + ).count() + if test_template.test_name not in ret: + ret[test_template.test_name] = {'passed': 0, 'failed': 0, 'total': 0} + ret[test_template.test_name]['passed'] += passed + ret[test_template.test_name]['failed'] += failed + ret[test_template.test_name]['total'] += passed + failed + ret['total']['passed'] += passed + ret['total']['failed'] += failed + ret['total']['total'] += passed + failed + return ret + + def build_test_statistics(self, build_order_pk, start, end): + """Generate a statistics matrix for each test template based on the test executions result counts.""" + build = BuildModels.Build.objects.get(pk=build_order_pk) + if not build or not build.part.trackable: + return {} + + test_templates = build.part.getTestTemplates() + ret = {'total': {'passed': 0, 'failed': 0, 'total': 0}} + for build_item in build.get_build_outputs(): + for test_template in test_templates: + query_base = Q(stock_item=build_item) + ret = self.calculate_test_statistics_for_test_template( + query_base, test_template, ret, start, end + ) + return ret + + def part_test_statistics(self, part_pk, start, end): + """Generate a statistics matrix for each test template based on the test executions result counts.""" + part = PartModels.Part.objects.get(pk=part_pk) + + if not part or not part.trackable: + return {} + + test_templates = part.getTestTemplates() + ret = {'total': {'passed': 0, 'failed': 0, 'total': 0}} + for bo in part.stock_entries(): + for test_template in test_templates: + query_base = Q(stock_item=bo) + ret = self.calculate_test_statistics_for_test_template( + query_base, test_template, ret, start, end + ) + return ret + stock_item = models.ForeignKey( StockItem, on_delete=models.CASCADE, related_name='test_results' ) diff --git a/src/backend/InvenTree/stock/serializers.py b/src/backend/InvenTree/stock/serializers.py index 8cbdd28566..e92c133eb7 100644 --- a/src/backend/InvenTree/stock/serializers.py +++ b/src/backend/InvenTree/stock/serializers.py @@ -870,6 +870,36 @@ class UninstallStockItemSerializer(serializers.Serializer): item.uninstall_into_location(location, request.user, note) +class TestStatisticsLineField(serializers.DictField): + """DRF field definition for one column of the test statistics.""" + + test_name = serializers.CharField() + results = serializers.DictField(child=serializers.IntegerField(min_value=0)) + + +class TestStatisticsSerializer(serializers.Serializer): + """DRF serializer class for the test statistics.""" + + results = serializers.ListField(child=TestStatisticsLineField(), read_only=True) + + def to_representation(self, obj): + """Just pass through the test statistics from the model.""" + if self.context['type'] == 'by-part': + return obj.part_test_statistics( + self.context['pk'], + self.context['finished_datetime_after'], + self.context['finished_datetime_before'], + ) + elif self.context['type'] == 'by-build': + return obj.build_test_statistics( + self.context['pk'], + self.context['finished_datetime_after'], + self.context['finished_datetime_before'], + ) + + raise ValidationError(_('Unsupported statistic type: ' + self.context['type'])) + + class ConvertStockItemSerializer(serializers.Serializer): """DRF serializer class for converting a StockItem to a valid variant part.""" diff --git a/src/backend/InvenTree/templates/js/translated/filters.js b/src/backend/InvenTree/templates/js/translated/filters.js index a6ad9e505c..3e6dfc8220 100644 --- a/src/backend/InvenTree/templates/js/translated/filters.js +++ b/src/backend/InvenTree/templates/js/translated/filters.js @@ -15,6 +15,9 @@ /* exported setupFilterList, + addTableFilter, + removeTableFilter, + reloadTableFilters */ /** diff --git a/src/backend/InvenTree/templates/js/translated/stock.js b/src/backend/InvenTree/templates/js/translated/stock.js index fae4919ffb..f9c5c2b3e3 100644 --- a/src/backend/InvenTree/templates/js/translated/stock.js +++ b/src/backend/InvenTree/templates/js/translated/stock.js @@ -4,6 +4,7 @@ /* globals addCachedAlert, + addTableFilter, baseCurrency, calculateTotalPrice, clearFormInput, @@ -38,8 +39,11 @@ makeIconBadge, makeIconButton, makeRemoveButton, + moment, orderParts, partDetail, + reloadTableFilters, + removeTableFilter, renderClipboard, renderDate, renderLink, @@ -70,6 +74,7 @@ duplicateStockItem, editStockItem, editStockLocation, + filterTestStatisticsTableDateRange, findStockItemBySerialNumber, installStockItem, loadInstalledInTable, @@ -78,6 +83,7 @@ loadStockTestResultsTable, loadStockTrackingTable, loadTableFilters, + prepareTestStatisticsTable, mergeStockItems, removeStockRow, serializeStockItem, @@ -3411,3 +3417,105 @@ function setStockStatus(items, options={}) { } }); } + + +/* + * Load TestStatistics table. + */ +function loadTestStatisticsTable(table, prefix, url, options, filters = {}) { + inventreeGet(url, filters, { + async: true, + success: function(data) { + const keys = ['passed', 'failed', 'total'] + let header = ''; + let rows = [] + let passed= ''; + let failed = ''; + let total = ''; + $('.test-stat-result-cell').remove(); + $.each(data[0], function(key, value){ + if (key != "total") { + header += '' + key + ''; + keys.forEach(function(keyName) { + var tdText = '-'; + if (value['total'] != '0' && value[keyName] != '0') { + let percentage = '' + if (keyName != 'total' && value[total] != 0) { + percentage = ' (' + (100.0 * (parseFloat(value[keyName]) / parseFloat(value['total']))).toLocaleString(undefined, {minimumFractionDigits: 0, maximumFractionDigits: 2}) + '%)'; + } + tdText = value[keyName] + percentage; + } + rows[keyName] += '' + tdText + ''; + }) + } + }); + $('#' + prefix + '-test-statistics-table-header-id').after(header); + + keys.forEach(function(keyName) { + let valueStr = data[0]['total'][keyName]; + if (keyName != 'total' && data[0]['total']['total'] != '0') { + valueStr += ' (' + (100.0 * (parseFloat(valueStr) / parseFloat(data[0]['total']['total']))).toLocaleString(undefined, {minimumFractionDigits: 0, maximumFractionDigits: 2}) + '%)'; + } + rows[keyName] += '' + valueStr + ''; + $('#' + prefix + '-test-statistics-table-body-' + keyName).after(rows[keyName]); + }); + $('#' + prefix + '-test-statistics-table').show(); + setupFilterList(prefix + "teststatistics", table, "#filter-list-" + prefix + "teststatistics", options); + }, + }); +} + +function prepareTestStatisticsTable(keyName, apiUrl) +{ + let options = { + custom_actions: [ + { + icon: 'fa-calendar-week', + actions: [ + { + icon: 'fa-calendar-week', + title: '{% trans "This week" %}', + label: 'this-week', + callback: function(data) { + filterTestStatisticsTableDateRange(data, 'this-week', $("#test-statistics-table"), keyName + 'teststatistics', options); + } + }, + { + icon: 'fa-calendar-week', + title: '{% trans "This month" %}', + label: 'this-month', + callback: function(data) { + filterTestStatisticsTableDateRange(data, 'this-month', $("#test-statistics-table"), keyName + 'teststatistics', options); + } + }, + ], + } + ], + callback: function(table, filters, options) { + loadTestStatisticsTable($("#test-statistics-table"), keyName, apiUrl, options, filters); + } + } + setupFilterList(keyName + 'teststatistics', $("#test-statistics-table"), '#filter-list-' + keyName + 'teststatistics', options); + + // Load test statistics table + loadTestStatisticsTable($("#test-statistics-table"), keyName, apiUrl, options); +} + +function filterTestStatisticsTableDateRange(data, range, table, tableKey, options) +{ + var startDateString = ''; + var d = new Date(); + if (range == "this-week") { + startDateString = moment(new Date(d.getFullYear(), d.getMonth(), d.getDate() - (d.getDay() == 0 ? 6 : d.getDay() - 1))).format('YYYY-MM-DD'); + } else if (range == "this-month") { + startDateString = moment(new Date(d.getFullYear(), d.getMonth(), 1)).format('YYYY-MM-DD'); + } else { + console.warn(`Invalid range specified for filterTestStatisticsTableDateRange`); + return; + } + var filters = addTableFilter(tableKey, 'finished_datetime_after', startDateString); + removeTableFilter(tableKey, 'finished_datetime_before') + + reloadTableFilters(table, filters, options); + setupFilterList(tableKey, table, "#filter-list-" + tableKey, options); +} diff --git a/src/backend/InvenTree/templates/js/translated/table_filters.js b/src/backend/InvenTree/templates/js/translated/table_filters.js index c32b69f8b6..71b8c8a917 100644 --- a/src/backend/InvenTree/templates/js/translated/table_filters.js +++ b/src/backend/InvenTree/templates/js/translated/table_filters.js @@ -462,6 +462,20 @@ function getStockTestTableFilters() { }; } +// Return a dictionary of filters for the "test statistics" table +function getTestStatisticsTableFilters() { + + return { + finished_datetime_after: { + type: 'date', + title: '{% trans "Interval start" %}', + }, + finished_datetime_before: { + type: 'date', + title: '{% trans "Interval end" %}', + } + }; +} // Return a dictionary of filters for the "stocktracking" table function getStockTrackingTableFilters() { @@ -863,6 +877,8 @@ function getAvailableTableFilters(tableKey) { return getBuildItemTableFilters(); case 'buildlines': return getBuildLineTableFilters(); + case 'buildteststatistics': + return getTestStatisticsTableFilters(); case 'bom': return getBOMTableFilters(); case 'category': @@ -885,6 +901,8 @@ function getAvailableTableFilters(tableKey) { return getPartTableFilters(); case 'parttests': return getPartTestTemplateFilters(); + case 'partteststatistics': + return getTestStatisticsTableFilters(); case 'plugins': return getPluginTableFilters(); case 'purchaseorder': diff --git a/src/backend/InvenTree/templates/test_statistics_table.html b/src/backend/InvenTree/templates/test_statistics_table.html new file mode 100644 index 0000000000..24361a3bf9 --- /dev/null +++ b/src/backend/InvenTree/templates/test_statistics_table.html @@ -0,0 +1,22 @@ +{% load i18n %} +{% load inventree_extras %} + + + + + + + + + + + + + + + + + + + + diff --git a/src/frontend/src/enums/ApiEndpoints.tsx b/src/frontend/src/enums/ApiEndpoints.tsx index e6a211eeff..62b54cdc27 100644 --- a/src/frontend/src/enums/ApiEndpoints.tsx +++ b/src/frontend/src/enums/ApiEndpoints.tsx @@ -115,6 +115,8 @@ export enum ApiEndpoints { stock_assign = 'stock/assign/', stock_status = 'stock/status/', stock_install = 'stock/:id/install', + build_test_statistics = 'test-statistics/by-build/:id', + part_test_statistics = 'test-statistics/by-part/:id', // Generator API endpoints generate_batch_code = 'generate/batch-code/', diff --git a/src/frontend/src/pages/build/BuildDetail.tsx b/src/frontend/src/pages/build/BuildDetail.tsx index b4caadabd6..ea10ca0baf 100644 --- a/src/frontend/src/pages/build/BuildDetail.tsx +++ b/src/frontend/src/pages/build/BuildDetail.tsx @@ -11,6 +11,7 @@ import { IconNotes, IconPaperclip, IconQrcode, + IconReportAnalytics, IconSitemap } from '@tabler/icons-react'; import { useMemo } from 'react'; @@ -53,6 +54,7 @@ import { BuildOrderTable } from '../../tables/build/BuildOrderTable'; import BuildOutputTable from '../../tables/build/BuildOutputTable'; import { AttachmentTable } from '../../tables/general/AttachmentTable'; import { StockItemTable } from '../../tables/stock/StockItemTable'; +import { TestStatisticsTable } from '../../tables/stock/TestStatisticsTable'; /** * Detail page for a single Build Order @@ -305,6 +307,20 @@ export default function BuildDetail() { ) }, + { + name: 'test-statistics', + label: t`Test Statistics`, + icon: , + content: ( + + ), + hidden: !build?.part_detail?.trackable + }, { name: 'attachments', label: t`Attachments`, diff --git a/src/frontend/src/pages/part/PartDetail.tsx b/src/frontend/src/pages/part/PartDetail.tsx index f6587d06a4..633ad3ae55 100644 --- a/src/frontend/src/pages/part/PartDetail.tsx +++ b/src/frontend/src/pages/part/PartDetail.tsx @@ -15,6 +15,7 @@ import { IconNotes, IconPackages, IconPaperclip, + IconReportAnalytics, IconShoppingCart, IconStack2, IconTestPipe, @@ -85,6 +86,7 @@ import { ManufacturerPartTable } from '../../tables/purchasing/ManufacturerPartT import { SupplierPartTable } from '../../tables/purchasing/SupplierPartTable'; import { SalesOrderTable } from '../../tables/sales/SalesOrderTable'; import { StockItemTable } from '../../tables/stock/StockItemTable'; +import { TestStatisticsTable } from '../../tables/stock/TestStatisticsTable'; import PartPricingPanel from './PartPricingPanel'; /** @@ -630,6 +632,22 @@ export default function PartDetail() { ) }, + { + name: 'test_statistics', + label: t`Test Statistics`, + icon: , + hidden: !part.trackable, + content: part?.pk ? ( + + ) : ( + + ) + }, { name: 'related_parts', label: t`Related Parts`, diff --git a/src/frontend/src/tables/stock/TestStatisticsTable.tsx b/src/frontend/src/tables/stock/TestStatisticsTable.tsx new file mode 100644 index 0000000000..c7706ec093 --- /dev/null +++ b/src/frontend/src/tables/stock/TestStatisticsTable.tsx @@ -0,0 +1,136 @@ +import { t } from '@lingui/macro'; +import { useCallback, useMemo, useState } from 'react'; +import { useNavigate } from 'react-router-dom'; + +import { AddItemButton } from '../../components/buttons/AddItemButton'; +import { ApiEndpoints } from '../../enums/ApiEndpoints'; +import { ModelType } from '../../enums/ModelType'; +import { UserRoles } from '../../enums/Roles'; +import { stockLocationFields } from '../../forms/StockForms'; +import { getDetailUrl } from '../../functions/urls'; +import { + useCreateApiFormModal, + useEditApiFormModal +} from '../../hooks/UseForm'; +import { useTable } from '../../hooks/UseTable'; +import { apiUrl } from '../../states/ApiState'; +import { useUserState } from '../../states/UserState'; +import { TableColumn } from '../Column'; +import { BooleanColumn, DescriptionColumn } from '../ColumnRenderers'; +import { TableFilter } from '../Filter'; +import { InvenTreeTable } from '../InvenTreeTable'; + +export function TestStatisticsTable({ params = {} }: { params?: any }) { + const initialColumns: TableColumn[] = []; + const [templateColumnList, setTemplateColumnList] = useState(initialColumns); + + const testTemplateColumns: TableColumn[] = useMemo(() => { + let data = templateColumnList ?? []; + return data; + }, [templateColumnList]); + + const tableColumns: TableColumn[] = useMemo(() => { + const firstColumn: TableColumn = { + accessor: 'col_0', + title: '', + sortable: true, + switchable: false, + noWrap: true + }; + + const lastColumn: TableColumn = { + accessor: 'col_total', + sortable: true, + switchable: false, + noWrap: true, + title: t`Total` + }; + + return [firstColumn, ...testTemplateColumns, lastColumn]; + }, [testTemplateColumns]); + + function statCountString(count: number, total: number) { + if (count > 0) { + let percentage = + ' (' + + ((100.0 * count) / total).toLocaleString(undefined, { + minimumFractionDigits: 0, + maximumFractionDigits: 2 + }) + + '%)'; + return count.toString() + percentage; + } + return '-'; + } + + // Format the test results based on the returned data + const formatRecords = useCallback((records: any[]): any[] => { + // interface needed to being able to dynamically assign keys + interface ResultRow { + [key: string]: string; + } + // Construct a list of test templates + let results: ResultRow[] = [ + { id: 'row_passed', col_0: t`Passed` }, + { id: 'row_failed', col_0: t`Failed` }, + { id: 'row_total', col_0: t`Total` } + ]; + let columnIndex = 0; + + columnIndex = 1; + + let newColumns: TableColumn[] = []; + for (let key in records[0]) { + if (key == 'total') continue; + let acc = 'col_' + columnIndex.toString(); + + const resultKeys = ['passed', 'failed', 'total']; + + results[0][acc] = statCountString( + records[0][key]['passed'], + records[0][key]['total'] + ); + results[1][acc] = statCountString( + records[0][key]['failed'], + records[0][key]['total'] + ); + results[2][acc] = records[0][key]['total'].toString(); + + newColumns.push({ + accessor: 'col_' + columnIndex.toString(), + title: key + }); + columnIndex++; + } + + setTemplateColumnList(newColumns); + + results[0]['col_total'] = statCountString( + records[0]['total']['passed'], + records[0]['total']['total'] + ); + results[1]['col_total'] = statCountString( + records[0]['total']['failed'], + records[0]['total']['total'] + ); + results[2]['col_total'] = records[0]['total']['total'].toString(); + + return results; + }, []); + + const table = useTable('teststatistics'); + + return ( + + ); +} From 97bef77d56a2fd9eceebbf140f181dd66092f012 Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 1 Aug 2024 14:58:26 +1000 Subject: [PATCH 25/55] [PUI] Build test results (#7777) * Skeleton for "test results" panel on build detail page * Generate table columns based on test templates * Fill out test result table in build panel * Fix for form submission with files attached - Better determination of "hasFiles" - Ignore undefined values * Add modal form to create a new test result * Add button for creating a new test result * Fix for build output table * Add extra API filtering options to BuildLine API endpoint * Improve table rendering * Adjust form fields * Account for multiple test results * Add "location" column * Docs updates * playwright tests --- .../build/build_panel_allocated_stock.png | Bin 0 -> 49257 bytes .../images/build/build_panel_details.png | Bin 0 -> 46374 bytes .../images/build/build_panel_line_items.png | Bin 0 -> 55641 bytes .../images/build/build_panel_test_results.png | Bin 0 -> 59243 bytes .../build/build_panel_test_statistics.png | Bin 0 -> 33127 bytes docs/docs/build/build.md | 68 +++-- docs/docs/start/config.md | 2 + docs/main.py | 1 + src/backend/InvenTree/build/api.py | 4 + .../src/components/details/Details.tsx | 4 +- src/frontend/src/components/forms/ApiForm.tsx | 6 +- src/frontend/src/forms/StockForms.tsx | 21 +- src/frontend/src/pages/build/BuildDetail.tsx | 13 + .../src/tables/build/BuildOrderTestTable.tsx | 256 ++++++++++++++++++ .../src/tables/build/BuildOutputTable.tsx | 6 +- src/frontend/tests/pages/pui_build.spec.ts | 10 + 16 files changed, 357 insertions(+), 34 deletions(-) create mode 100644 docs/docs/assets/images/build/build_panel_allocated_stock.png create mode 100644 docs/docs/assets/images/build/build_panel_details.png create mode 100644 docs/docs/assets/images/build/build_panel_line_items.png create mode 100644 docs/docs/assets/images/build/build_panel_test_results.png create mode 100644 docs/docs/assets/images/build/build_panel_test_statistics.png create mode 100644 src/frontend/src/tables/build/BuildOrderTestTable.tsx diff --git a/docs/docs/assets/images/build/build_panel_allocated_stock.png b/docs/docs/assets/images/build/build_panel_allocated_stock.png new file mode 100644 index 0000000000000000000000000000000000000000..33ab5bba0b5bea245e16fbeb5c68add7ec77c55b GIT binary patch literal 49257 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 #Ise|sA%0{?o;&wfCUz@*TPoHwf+8( zV{Ts6bEOb~+*wG-o%z7w`L^dI8rbco2vfJoNaE^0I*9GAJ=<>AP%aRpyPVl1Z9d#x zqO<%uxEo%L;=#4YOb7g6dbke9hf6sTP%>a1KIb{iF6`$wfAPyez)?2Sdt^DNhrGxO zP1@nMGgV`zIg=9ojv4=4TmX<;`C)E4bj=H4x-s;|3=;`R z%i%8WZ|#k^6vY;M&L77I5?o;(QRBk0Y>jd|s&~R6oh>>~*Xrhf&$ci>3{IH$d4rs* z4{*0|*Kv9a`ioAH#VArHVo6C1E(ntaENE0;`oOR18=Fb7nqn}71PNeJ)jCPtReZcy018=;(5r ztqPa)^RMY|#&~?i8W9~j*4HJ3+f%yTcax&;7HaQ=z8LV>QH|kH0lyBnoo<+Kj>g65Kx&!+QrK&;$g;dj#^K7=>(nD={#O9M2{iaP`Pdl+T@04CYzg7G*x5*|*bB-mLGhGH!m1!MId)5; zvG+Ls)ZD+la_kxeJBonJt?0>tHA%UK`OdmgqyO%3XA}^ab?=AOZ#zKMazSf(AaAeVyyHC=wz!Qjj(dke%?$ zPw|q-ME2i$M~`5#bdR9E+S+;$N5k*+%>X*qROjoh)G4aN66hGTwJ0f7;peDSTB=XF z&^%q;=ItYB(|lT#|3U74Lr&{}a*6^53W_OEg`LI|ftO~Le}eK2VCq;_w2q<=5^oH4 zpYn3#^sfx?o9(5fy-%>Ml3$?HdW4Poq558LR?E7_@+3umeM47w>}gw<%cEm!o(nJJ z?#a51)m&N*DyiX$NV;FN^#*xwb=i8!2q7LUpd?Q?MJp?uJLIDq8-T3ir61|Fxx?73LD-$?A~;}v5c}AL-|c_ZaE|W0ugsO7 zFj19A(f6Hy*L94kAKr#`=iH-FHh>&^rSQThLwB-qYtou^nSvrD^O%m3x|uPrH2uMO zdifvYjx#jotcPjyWP<7Xn^C9W{WX0W3XW7~XK2b~AH+1AOV9FFV)*uHzNs#H^QG=g znFQqmpUfV9I#wyN*T-iq)MMG4xN9K2`bn0U%i@k%hi!&~TAt}2mdF02<>CDP-Ny>(m;_TvVH z^|lV854?{VzPB0H`o@UxFcj0DcxrAjI!5ub;uG!DXu2pbh6w6!9Lo!1=e?reY4ocU zs~#ER%7&{>yPrufjQuRX5WF>N$D~8Kq3wM~WqPaGo%sY$Ty34{El(??aoHD(r7S(9 zNQ;8zdFHc=!m=vx@`L#aJL6!n@mNUWj%2~LYHFbM40EY95O{dyoc9*OYNI6+h1zJb zd+hoC&j-Z4T`k+YE&e#~)B~pTPc5MBl-@_Ow)z%?zjAa=$t81qKJw^OF$Z3Y_KAr@ zf^uN@A-J5|^B8p;Q#ysW*KrmYE?C8mxV?$%r^>VxY+Msjk>k?u4ZfgMSA!u{YwxE1g*3!z=I9 z&JIqw2x^26aQ;YOKee`7>=ZomUN4R6Bhr|X!cqCnR}Yim)gG1}l?#Zx!)i1i{_wY& z^iY(&@$>P}MfJgJvf8mncjVsc$29D;x*^@;%`59A!!%gt{A||Z<%qQHtfw3%V#VC( zsdI_~YrzCC1SWW}^5j}(gow#)aBoX71+;&EgY*^AdnVFTc|ylX*`>Fsn!`_VcUAl( z^I|Vhcn<@c%_9?(JwoSC-apbS*^i^5V4>=>fys&JiDwvVoIc==ej`SI^XkUo3=hku zrN}(fdSy@Nw(*3nyDm%-;~x-lo^m zsiG0_S&IA)(!|k*ZWVTgyy{9|P}$KZvW;cuM3|*_Oey!yak<9DAyuj@uvT;eF|Dz# z;-ZNrpN zu07aZ?q$I>75OQ0J@&Zov}O5L_Oq2Ub@j@9yd6)v0*982SIuucTU96^9LNVnGfBVP|#I%(U;^I zQ5CU<5qAA@6ffPmRV`*BiYc#}6* zrre9H`0z3@_~)g9k!uhs6)WcB6Pp8R8N6wVu2#E|a|3Qe(yGAew$WQ@b4o*B>OjqA z#{LAx-G$yeDx)Z$ z*1gm|;ao?T_~l*oLsoHe8%tLC-zi@z`TwyqgilNe&S%m5jJU@3!Eeu3M7m!K-Ksn^ z6u6Kz@A7T2f+^dFJ|8;#VQ*J3Pu{0U<&@z^e%3&qxHnVbU-{(cnhknr#Bf_?t;%VL z71c_Q?Kc zo?uBGVvWG>ElejQywTw|sJQu_v~&)V3p!KWiU6;F{>Gn+drk2E82@rNdVA$R4Tk{N z1AL2q1x-T$^auFuSFu(F@|gUx_<09F7r<}(t)sYg|3A20eb}GqvGron)#;DmQeUjS zIC}jh%C!5H$*^zf<^MXatZqa1VwlPp6Ks*&eP8(b1Jn*nvXKF+>Mux)>;5Dzzy~uZ zcW_p$pUQ82!Yy1`FFR z8S`@HkVh0@kFgZCGppnBOKt!8wl}rAR-N1-tub2vFGNPGz|seh*n-pj+)Yfd0BHIR z;d8@b<}Bzk>`IYet$vOqF)Kmx29tp-*21wl~qX`wT#ZkJ)y^LH6k$CZon ze){RPL;N&-D)GSytPm53ct*IcISUr)`^ejw)8VJ}140u#%Wa_{$uwwW%92A&_oPX4 zUUKzMTCEAkpu1=fj#ddVyN?i*JhR0&&=UKx$`EA^q!4Nq*x z($1Rk(e+(8+rw&1!bT;@S+j3w`5Zum%veS@;G_w%Z5)+tnnAn6!%+E}=R;6a%jEyEbQR%d3 zL+c2}A5(7*Eqvy%adbYH9#aq-$Kv`86C(5UgJgxv#64$$mA<9?g#;G&Fb$enCm#>x zpp|XOfQ{*bsZ_V)4XGbOL%lexzb#niA2zo1a1-Hzd2U?eC=1MqZ9dwHn4U56+UYYA zaE6StZFjh$iI|BY?B09givMz=TB}Rm(ROg7eMQVRDD%3sItCGU zoSD2Hj^3RwH1uYRbkef0_%Z5IPg+u+Ui#0RNNiKDdBxoDJDf{ z&Hv50chTCRnrg3Hb^NAxq|{#67}({}P){DaEOCGYk1S0@yVZ|Ga!Y8#1LRZE!?vJ0 z&W>=s*OMcd&f3zQI~hdkY1-F_dhUE7KFC^pG8iNqo&CvNz0?^jsa=X}!i`0q(l=VX zvU_EqtuKHax%Fa6fk2nnqIc%X<#Z``*8@uQ(^sQ1B{mT9F)8N#Hn3HD1((1pqh*e=LHg2q7q z{Y5hb*NIn{HNuSlp%63lc7GjAl`;p)M=9ZeERiD*grd|G>#x;h!owxow|W%wEX^7- zir7?&9Zf{OkmiHxM+@9ru6kX?or7BS^E~nimb-b`%VywZt>MjR{G3xu>z+4xdvcIj zY>~S`NYFIev+#S)?!+!d=%5T@m^r*v{fF%KkO0q|r*&Bys|K1|dr-!Z{_f)W$&0zf zK^GEIO0J5}ZjFov0EAzfB_=+Z^#(_o{+|eBNTl=hBx&Y1U-p}YM6uy$l#GaKXFkTS zum^oX*tA@zvE?2~gGbN7YMf)C2MX-Mi_*$6aQ^H9p`Rd`;@JZ5kA*(%qKi+8AdQ?V zoqk|+>Qmy8p{jl+TeSepxLnux$V!OaUt1jPvVN^z#Z`rsrG0l(eFY_~uMf0_lUFVJA-&|Av6k zzb8H={N`7=2VJ$dzi0Mv=qNB{r; literal 0 HcmV?d00001 diff --git a/docs/docs/assets/images/build/build_panel_details.png b/docs/docs/assets/images/build/build_panel_details.png new file mode 100644 index 0000000000000000000000000000000000000000..aa37b138d5a4f78ee838d4e13ee8a787e95e4ae1 GIT binary patch literal 46374 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

BtYkG@Ban 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 { - return undefined; + return {}; }); } }); diff --git a/src/frontend/src/components/forms/ApiForm.tsx b/src/frontend/src/components/forms/ApiForm.tsx index 67159e6398..609b7b2b57 100644 --- a/src/frontend/src/components/forms/ApiForm.tsx +++ b/src/frontend/src/components/forms/ApiForm.tsx @@ -398,7 +398,7 @@ export function ApiForm({ let value: any = data[key]; let field_type = fields[key]?.field_type; - if (field_type == 'file upload') { + if (field_type == 'file upload' && !!value) { hasFiles = true; } @@ -413,7 +413,9 @@ export function ApiForm({ } } - dataForm.append(key, value); + if (value != undefined) { + dataForm.append(key, value); + } }); return api({ diff --git a/src/frontend/src/forms/StockForms.tsx b/src/frontend/src/forms/StockForms.tsx index fb44f68917..8688680579 100644 --- a/src/frontend/src/forms/StockForms.tsx +++ b/src/frontend/src/forms/StockForms.tsx @@ -28,6 +28,7 @@ import { useSerialNumberGenerator } from '../hooks/UseGenerator'; import { apiUrl } from '../states/ApiState'; +import { useGlobalSettingsState } from '../states/SettingsState'; /** * Construct a set of fields for creating / editing a StockItem instance @@ -932,6 +933,13 @@ export function useTestResultFields({ // Field type for the "value" input const [fieldType, setFieldType] = useState<'string' | 'choice'>('string'); + const settings = useGlobalSettingsState.getState(); + + const includeTestStation = useMemo( + () => settings.isSet('TEST_STATION_DATA'), + [settings] + ); + return useMemo(() => { return { stock_item: { @@ -972,8 +980,15 @@ export function useTestResultFields({ }, attachment: {}, notes: {}, - started_datetime: {}, - finished_datetime: {} + started_datetime: { + hidden: !includeTestStation + }, + finished_datetime: { + hidden: !includeTestStation + }, + test_station: { + hidden: !includeTestStation + } }; - }, [choices, fieldType, partId, itemId]); + }, [choices, fieldType, partId, itemId, includeTestStation]); } diff --git a/src/frontend/src/pages/build/BuildDetail.tsx b/src/frontend/src/pages/build/BuildDetail.tsx index ea10ca0baf..550d795dcb 100644 --- a/src/frontend/src/pages/build/BuildDetail.tsx +++ b/src/frontend/src/pages/build/BuildDetail.tsx @@ -1,6 +1,7 @@ import { t } from '@lingui/macro'; import { Grid, Skeleton, Stack } from '@mantine/core'; import { + IconChecklist, IconClipboardCheck, IconClipboardList, IconDots, @@ -51,6 +52,7 @@ import { useUserState } from '../../states/UserState'; import BuildAllocatedStockTable from '../../tables/build/BuildAllocatedStockTable'; import BuildLineTable from '../../tables/build/BuildLineTable'; import { BuildOrderTable } from '../../tables/build/BuildOrderTable'; +import BuildOrderTestTable from '../../tables/build/BuildOrderTestTable'; import BuildOutputTable from '../../tables/build/BuildOutputTable'; import { AttachmentTable } from '../../tables/general/AttachmentTable'; import { StockItemTable } from '../../tables/stock/StockItemTable'; @@ -307,6 +309,17 @@ export default function BuildDetail() { ) }, + { + name: 'test-results', + label: t`Test Results`, + icon: , + hidden: !build.part_detail?.trackable, + content: build.pk ? ( + + ) : ( + + ) + }, { name: 'test-statistics', label: t`Test Statistics`, diff --git a/src/frontend/src/tables/build/BuildOrderTestTable.tsx b/src/frontend/src/tables/build/BuildOrderTestTable.tsx new file mode 100644 index 0000000000..371e7530a6 --- /dev/null +++ b/src/frontend/src/tables/build/BuildOrderTestTable.tsx @@ -0,0 +1,256 @@ +import { t } from '@lingui/macro'; +import { ActionIcon, Badge, Group, Text, Tooltip } from '@mantine/core'; +import { IconCirclePlus } from '@tabler/icons-react'; +import { useQuery } from '@tanstack/react-query'; +import { ReactNode, useCallback, useEffect, useMemo, useState } from 'react'; + +import { api } from '../../App'; +import { PassFailButton } from '../../components/buttons/YesNoButton'; +import { ApiFormFieldSet } from '../../components/forms/fields/ApiFormField'; +import { RenderUser } from '../../components/render/User'; +import { formatDate } from '../../defaults/formatters'; +import { ApiEndpoints } from '../../enums/ApiEndpoints'; +import { useTestResultFields } from '../../forms/StockForms'; +import { useCreateApiFormModal } from '../../hooks/UseForm'; +import { useTable } from '../../hooks/UseTable'; +import { apiUrl } from '../../states/ApiState'; +import { useUserState } from '../../states/UserState'; +import { TableColumn } from '../Column'; +import { LocationColumn } from '../ColumnRenderers'; +import { TableFilter } from '../Filter'; +import { InvenTreeTable } from '../InvenTreeTable'; +import { TableHoverCard } from '../TableHoverCard'; + +/** + * A table which displays all "test results" for the outputs generated by a build order. + */ +export default function BuildOrderTestTable({ + buildId, + partId +}: { + buildId: number; + partId: number; +}) { + const table = useTable('build-tests'); + const user = useUserState(); + + // Fetch the test templates required for this build order + const { data: testTemplates } = useQuery({ + queryKey: ['build-test-templates', partId, buildId], + queryFn: async () => { + if (!partId) { + return []; + } + + return api + .get(apiUrl(ApiEndpoints.part_test_template_list), { + params: { + part: partId, + include_inherited: true, + enabled: true, + required: true + } + }) + .then((res) => res.data) + .catch((err) => []); + } + }); + + // Reload the table data whenever the set of templates changes + useEffect(() => { + table.refreshTable(); + }, [testTemplates]); + + const [selectedOutput, setSelectedOutput] = useState(0); + const [selectedTemplate, setSelectedTemplate] = useState(0); + + const testResultFields: ApiFormFieldSet = useTestResultFields({ + partId: partId, + itemId: selectedOutput + }); + + const createTestResult = useCreateApiFormModal({ + url: apiUrl(ApiEndpoints.stock_test_result_list), + title: t`Add Test Result`, + fields: testResultFields, + initialData: { + template: selectedTemplate, + result: true + }, + onFormSuccess: () => table.refreshTable(), + successMessage: t`Test result added` + }); + + // Generate a table column for each test template + const testColumns: TableColumn[] = useMemo(() => { + if (!testTemplates || testTemplates.length == 0) { + return []; + } + + return testTemplates.map((template: any) => { + return { + accessor: `test_${template.pk}`, + title: template.test_name, + sortable: false, + switchable: true, + render: (record: any) => { + let tests = record.tests || []; + + // Find the most recent test result (highest primary key) + let test = tests + .filter((test: any) => test.template == template.pk) + .sort((a: any, b: any) => b.pk - a.pk) + .shift(); + + // No test result recorded + if (!test || test.result === undefined) { + return ( + + {t`No Result`} + + { + setSelectedOutput(record.pk); + setSelectedTemplate(template.pk); + createTestResult.open(); + }} + > + + + + + ); + } + + let extra: ReactNode[] = []; + + if (test.value) { + extra.push( + + {t`Value`}: {test.value} + + ); + } + + if (test.notes) { + extra.push( + + {t`Notes`}: {test.notes} + + ); + } + + if (test.date) { + extra.push( + + {t`Date`}: {formatDate(test.date)} + + ); + } + + if (test.user_detail) { + extra.push(); + } + + return ( + } + title={template.test_name} + extra={extra} + /> + ); + } + }; + }); + }, [testTemplates]); + + const tableColumns: TableColumn[] = useMemo(() => { + // Fixed columns + let columns: TableColumn[] = [ + { + accessor: 'stock', + title: t`Build Output`, + sortable: true, + switchable: false, + render: (record: any) => { + if (record.serial) { + return `# ${record.serial}`; + } else { + let extra: ReactNode[] = []; + + if (record.batch) { + extra.push( + + {t`Batch Code`}: {record.batch} + + ); + } + + return ( + + {t`Quantity`}: {record.quantity} + + } + title={t`Build Output`} + extra={extra} + /> + ); + } + } + }, + LocationColumn({ + accessor: 'location_detail' + }) + ]; + + return [...columns, ...testColumns]; + }, [testColumns]); + + const tableFilters: TableFilter[] = useMemo(() => { + return [ + { + name: 'is_building', + label: t`In Production`, + description: t`Show build outputs currently in production` + } + ]; + }, []); + + const tableActions = useMemo(() => { + return []; + }, []); + + const rowActions = useCallback( + (record: any) => { + return []; + }, + [user] + ); + + return ( + <> + {createTestResult.modal} + + + ); +} diff --git a/src/frontend/src/tables/build/BuildOutputTable.tsx b/src/frontend/src/tables/build/BuildOutputTable.tsx index b98d7a4dec..b1c65ddb75 100644 --- a/src/frontend/src/tables/build/BuildOutputTable.tsx +++ b/src/frontend/src/tables/build/BuildOutputTable.tsx @@ -47,9 +47,9 @@ export default function BuildOutputTable({ build }: { build: any }) { // Fetch the test templates associated with the partId const { data: testTemplates } = useQuery({ - queryKey: ['buildoutputtests', build.part], + queryKey: ['buildoutputtests', partId], queryFn: async () => { - if (!partId) { + if (!partId || partId < 0) { return []; } @@ -322,7 +322,7 @@ export default function BuildOutputTable({ build }: { build: any }) { } } ]; - }, [buildId, partId]); + }, [buildId, partId, testTemplates]); return ( <> diff --git a/src/frontend/tests/pages/pui_build.spec.ts b/src/frontend/tests/pages/pui_build.spec.ts index 93df2ca397..e7c7a3275b 100644 --- a/src/frontend/tests/pages/pui_build.spec.ts +++ b/src/frontend/tests/pages/pui_build.spec.ts @@ -24,6 +24,16 @@ test('PUI - Pages - Build Order', async ({ page }) => { .getByRole('cell', { name: 'R38, R39, R40, R41, R42, R43' }) .waitFor(); + // Check "test results" + await page.getByRole('tab', { name: 'Test Results' }).click(); + await page.getByText('Quantity: 25').waitFor(); + await page.getByText('Continuity Checks').waitFor(); + await page + .getByRole('row', { name: 'Quantity: 16 No location set' }) + .getByRole('button') + .hover(); + await page.getByText('Add Test Result').waitFor(); + // Click through to the "parent" build await page.getByRole('tab', { name: 'Build Details' }).click(); await page.getByRole('link', { name: 'BO0010' }).click(); From 8708028bcc094e64f73a2c7899506e02caa225cb Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 1 Aug 2024 15:44:17 +1000 Subject: [PATCH 26/55] Improve row click handling for tables (#7779) - Prevent clicks around "actions" icon from navigating away from table --- src/frontend/src/tables/InvenTreeTable.tsx | 27 ++++++++++++++-------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/src/frontend/src/tables/InvenTreeTable.tsx b/src/frontend/src/tables/InvenTreeTable.tsx index a33cb4da01..9b113960c4 100644 --- a/src/frontend/src/tables/InvenTreeTable.tsx +++ b/src/frontend/src/tables/InvenTreeTable.tsx @@ -281,7 +281,7 @@ export function InvenTreeTable({ // If row actions are available, add a column for them if (tableProps.rowActions) { cols.push({ - accessor: 'actions', + accessor: '--actions--', title: ' ', hidden: false, switchable: false, @@ -540,19 +540,29 @@ export function InvenTreeTable({ } }); - // Callback when a row is clicked - const handleRowClick = useCallback( + // Callback when a cell is clicked + const handleCellClick = useCallback( ({ event, record, - index + index, + column, + columnIndex }: { event: React.MouseEvent; record: any; index: number; + column: any; + columnIndex: number; }) => { - if (props.onRowClick) { - // If a custom row click handler is provided, use that + // Ignore any click on the 'actions' column + if (column.accessor == '--actions--') { + return; + } + + if (props.onCellClick) { + props.onCellClick({ event, record, index, column, columnIndex }); + } else if (props.onRowClick) { props.onRowClick(record, index, event); } else if (tableProps.modelType) { const accessor = tableProps.modelField ?? 'pk'; @@ -566,7 +576,7 @@ export function InvenTreeTable({ } } }, - [props.onRowClick] + [props.onRowClick, props.onCellClick] ); return ( @@ -705,8 +715,7 @@ export function InvenTreeTable({ noRecordsText={missingRecordsText} records={tableState.records} columns={dataColumns} - onRowClick={handleRowClick} - onCellClick={tableProps.onCellClick} + onCellClick={handleCellClick} defaultColumnProps={{ noWrap: true, textAlign: 'left', From 21511c74ff3f6f39552c5e98a20f21d484b80ccf Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 1 Aug 2024 15:44:26 +1000 Subject: [PATCH 27/55] [PUI] Update template tables (#7781) - Allow template files to be downloaded --- src/frontend/src/tables/settings/TemplateTable.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/frontend/src/tables/settings/TemplateTable.tsx b/src/frontend/src/tables/settings/TemplateTable.tsx index d0d0e36592..37e25ad526 100644 --- a/src/frontend/src/tables/settings/TemplateTable.tsx +++ b/src/frontend/src/tables/settings/TemplateTable.tsx @@ -11,6 +11,7 @@ import { TemplateEditor } from '../../components/editors/TemplateEditor'; import { ApiFormFieldSet } from '../../components/forms/fields/ApiFormField'; +import { AttachmentLink } from '../../components/items/AttachmentLink'; import { DetailDrawer } from '../../components/nav/DetailDrawer'; import { ApiEndpoints } from '../../enums/ApiEndpoints'; import { ModelType } from '../../enums/ModelType'; @@ -134,7 +135,11 @@ export function TemplateTable({ sortable: false, switchable: true, render: (record: any) => { - return record.template?.split('/')?.pop() ?? '-'; + if (!record.template) { + return '-'; + } + + return ; } }, { From e5fabc6788d3515f4c9fc6cbe252b5e9d2efc394 Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 2 Aug 2024 09:13:50 +1000 Subject: [PATCH 28/55] [PUI] Table Updates (#7783) * Refactor part display in tables - Remove legacy code * Remove unused function * Refactoring for PurchaseOrderLineItemTable * Implement sales order line item table * Add placeholders for row actions * Implement table actions * Add placeholder action to allocate stock --- .../src/components/images/Thumbnail.tsx | 46 --- src/frontend/src/forms/SalesOrderForms.tsx | 37 +++ .../src/pages/sales/SalesOrderDetail.tsx | 8 +- src/frontend/src/tables/bom/UsedInTable.tsx | 9 +- .../src/tables/build/BuildLineTable.tsx | 5 +- .../src/tables/build/BuildOrderTable.tsx | 4 +- .../purchasing/PurchaseOrderLineItemTable.tsx | 11 +- .../tables/sales/SalesOrderLineItemTable.tsx | 272 ++++++++++++++++++ 8 files changed, 327 insertions(+), 65 deletions(-) create mode 100644 src/frontend/src/tables/sales/SalesOrderLineItemTable.tsx diff --git a/src/frontend/src/components/images/Thumbnail.tsx b/src/frontend/src/components/images/Thumbnail.tsx index 2b63b0f16a..63e2414122 100644 --- a/src/frontend/src/components/images/Thumbnail.tsx +++ b/src/frontend/src/components/images/Thumbnail.tsx @@ -50,49 +50,3 @@ export function Thumbnail({ ); } - -export function ThumbnailHoverCard({ - src, - text, - link = '', - alt = t`Thumbnail`, - size = 20 -}: { - src: string; - text: string; - link?: string; - alt?: string; - size?: number; -}) { - const card = useMemo(() => { - return ( - - - {text} - - ); - }, [src, text, alt, size]); - - if (link) { - return ( - - {card} - - ); - } - - return

; -} - -export function PartHoverCard({ part }: { part: any }) { - return part ? ( - - ) : ( - - ); -} diff --git a/src/frontend/src/forms/SalesOrderForms.tsx b/src/frontend/src/forms/SalesOrderForms.tsx index 9c97f13201..9c11eb5c50 100644 --- a/src/frontend/src/forms/SalesOrderForms.tsx +++ b/src/frontend/src/forms/SalesOrderForms.tsx @@ -47,6 +47,43 @@ export function useSalesOrderFields(): ApiFormFieldSet { }, []); } +export function useSalesOrderLineItemFields({ + customerId, + orderId, + create +}: { + customerId?: number; + orderId?: number; + create?: boolean; +}): ApiFormFieldSet { + const fields = useMemo(() => { + return { + order: { + filters: { + customer_detail: true + }, + disabled: true, + value: create ? orderId : undefined + }, + part: { + filters: { + active: true, + salable: true + } + }, + reference: {}, + quantity: {}, + sale_price: {}, + sale_price_currency: {}, + target_date: {}, + notes: {}, + link: {} + }; + }, []); + + return fields; +} + export function useReturnOrderFields(): ApiFormFieldSet { return useMemo(() => { return { diff --git a/src/frontend/src/pages/sales/SalesOrderDetail.tsx b/src/frontend/src/pages/sales/SalesOrderDetail.tsx index 967749a5c4..5fb6c861c6 100644 --- a/src/frontend/src/pages/sales/SalesOrderDetail.tsx +++ b/src/frontend/src/pages/sales/SalesOrderDetail.tsx @@ -47,6 +47,7 @@ import { useInstance } from '../../hooks/UseInstance'; import { useUserState } from '../../states/UserState'; import { BuildOrderTable } from '../../tables/build/BuildOrderTable'; import { AttachmentTable } from '../../tables/general/AttachmentTable'; +import SalesOrderLineItemTable from '../../tables/sales/SalesOrderLineItemTable'; /** * Detail page for a single SalesOrder @@ -249,7 +250,12 @@ export default function SalesOrderDetail() { name: 'line-items', label: t`Line Items`, icon: , - content: + content: ( + + ) }, { name: 'pending-shipments', diff --git a/src/frontend/src/tables/bom/UsedInTable.tsx b/src/frontend/src/tables/bom/UsedInTable.tsx index f9227f92e2..bd0e7d8e14 100644 --- a/src/frontend/src/tables/bom/UsedInTable.tsx +++ b/src/frontend/src/tables/bom/UsedInTable.tsx @@ -2,14 +2,13 @@ import { t } from '@lingui/macro'; import { Group, Text } from '@mantine/core'; import { useMemo } from 'react'; -import { PartHoverCard } from '../../components/images/Thumbnail'; import { formatDecimal } from '../../defaults/formatters'; import { ApiEndpoints } from '../../enums/ApiEndpoints'; import { ModelType } from '../../enums/ModelType'; import { useTable } from '../../hooks/UseTable'; import { apiUrl } from '../../states/ApiState'; import { TableColumn } from '../Column'; -import { ReferenceColumn } from '../ColumnRenderers'; +import { PartColumn, ReferenceColumn } from '../ColumnRenderers'; import { TableFilter } from '../Filter'; import { InvenTreeTable } from '../InvenTreeTable'; @@ -31,12 +30,14 @@ export function UsedInTable({ accessor: 'part', switchable: false, sortable: true, - render: (record: any) => + title: t`Assembly`, + render: (record: any) => PartColumn(record.part_detail) }, { accessor: 'sub_part', sortable: true, - render: (record: any) => + title: t`Component`, + render: (record: any) => PartColumn(record.sub_part_detail) }, { accessor: 'quantity', diff --git a/src/frontend/src/tables/build/BuildLineTable.tsx b/src/frontend/src/tables/build/BuildLineTable.tsx index 90ee524b51..5d0b6c90ac 100644 --- a/src/frontend/src/tables/build/BuildLineTable.tsx +++ b/src/frontend/src/tables/build/BuildLineTable.tsx @@ -7,7 +7,6 @@ import { } from '@tabler/icons-react'; import { useCallback, useMemo } from 'react'; -import { PartHoverCard } from '../../components/images/Thumbnail'; import { ProgressBar } from '../../components/items/ProgressBar'; import { ApiEndpoints } from '../../enums/ApiEndpoints'; import { ModelType } from '../../enums/ModelType'; @@ -15,7 +14,7 @@ import { useTable } from '../../hooks/UseTable'; import { apiUrl } from '../../states/ApiState'; import { useUserState } from '../../states/UserState'; import { TableColumn } from '../Column'; -import { BooleanColumn } from '../ColumnRenderers'; +import { BooleanColumn, PartColumn } from '../ColumnRenderers'; import { TableFilter } from '../Filter'; import { InvenTreeTable } from '../InvenTreeTable'; import { TableHoverCard } from '../TableHoverCard'; @@ -131,7 +130,7 @@ export default function BuildLineTable({ params = {} }: { params?: any }) { ordering: 'part', sortable: true, switchable: false, - render: (record: any) => + render: (record: any) => PartColumn(record.part_detail) }, { accessor: 'bom_item_detail.reference', diff --git a/src/frontend/src/tables/build/BuildOrderTable.tsx b/src/frontend/src/tables/build/BuildOrderTable.tsx index 868840f551..18ff6f4f05 100644 --- a/src/frontend/src/tables/build/BuildOrderTable.tsx +++ b/src/frontend/src/tables/build/BuildOrderTable.tsx @@ -2,7 +2,6 @@ import { t } from '@lingui/macro'; import { useMemo } from 'react'; import { AddItemButton } from '../../components/buttons/AddItemButton'; -import { PartHoverCard } from '../../components/images/Thumbnail'; import { ProgressBar } from '../../components/items/ProgressBar'; import { RenderUser } from '../../components/render/User'; import { ApiEndpoints } from '../../enums/ApiEndpoints'; @@ -22,6 +21,7 @@ import { TableColumn } from '../Column'; import { CreationDateColumn, DateColumn, + PartColumn, ProjectCodeColumn, ReferenceColumn, ResponsibleColumn, @@ -41,7 +41,7 @@ function buildOrderTableColumns(): TableColumn[] { accessor: 'part', sortable: true, switchable: false, - render: (record: any) => + render: (record: any) => PartColumn(record.part_detail) }, { accessor: 'title', diff --git a/src/frontend/src/tables/purchasing/PurchaseOrderLineItemTable.tsx b/src/frontend/src/tables/purchasing/PurchaseOrderLineItemTable.tsx index 5166469637..5d10c1484c 100644 --- a/src/frontend/src/tables/purchasing/PurchaseOrderLineItemTable.tsx +++ b/src/frontend/src/tables/purchasing/PurchaseOrderLineItemTable.tsx @@ -5,7 +5,6 @@ import { useCallback, useMemo, useState } from 'react'; import { ActionButton } from '../../components/buttons/ActionButton'; import { AddItemButton } from '../../components/buttons/AddItemButton'; -import { Thumbnail } from '../../components/images/Thumbnail'; import ImporterDrawer from '../../components/importer/ImporterDrawer'; import { ProgressBar } from '../../components/items/ProgressBar'; import { RenderStockLocation } from '../../components/render/Stock'; @@ -30,6 +29,7 @@ import { CurrencyColumn, LinkColumn, NoteColumn, + PartColumn, ReferenceColumn, TargetDateColumn, TotalPriceColumn @@ -124,14 +124,7 @@ export function PurchaseOrderLineItemTable({ title: t`Internal Part`, sortable: true, switchable: false, - render: (record: any) => { - return ( - - ); - } + render: (record: any) => PartColumn(record.part_detail) }, { accessor: 'description', diff --git a/src/frontend/src/tables/sales/SalesOrderLineItemTable.tsx b/src/frontend/src/tables/sales/SalesOrderLineItemTable.tsx new file mode 100644 index 0000000000..957a32cdb2 --- /dev/null +++ b/src/frontend/src/tables/sales/SalesOrderLineItemTable.tsx @@ -0,0 +1,272 @@ +import { t } from '@lingui/macro'; +import { Text } from '@mantine/core'; +import { IconSquareArrowRight } from '@tabler/icons-react'; +import { ReactNode, useCallback, useMemo, useState } from 'react'; + +import { AddItemButton } from '../../components/buttons/AddItemButton'; +import { ProgressBar } from '../../components/items/ProgressBar'; +import { formatCurrency } from '../../defaults/formatters'; +import { ApiEndpoints } from '../../enums/ApiEndpoints'; +import { ModelType } from '../../enums/ModelType'; +import { UserRoles } from '../../enums/Roles'; +import { useSalesOrderLineItemFields } from '../../forms/SalesOrderForms'; +import { + useCreateApiFormModal, + useDeleteApiFormModal, + useEditApiFormModal +} from '../../hooks/UseForm'; +import { useTable } from '../../hooks/UseTable'; +import { apiUrl } from '../../states/ApiState'; +import { useUserState } from '../../states/UserState'; +import { TableColumn } from '../Column'; +import { DateColumn, LinkColumn, PartColumn } from '../ColumnRenderers'; +import { InvenTreeTable } from '../InvenTreeTable'; +import { + RowDeleteAction, + RowDuplicateAction, + RowEditAction +} from '../RowActions'; +import { TableHoverCard } from '../TableHoverCard'; + +export default function SalesOrderLineItemTable({ + orderId, + customerId +}: { + orderId: number; + customerId: number; +}) { + const user = useUserState(); + const table = useTable('sales-order-line-item'); + + const tableColumns: TableColumn[] = useMemo(() => { + return [ + { + accessor: 'part', + sortable: true, + switchable: false, + render: (record: any) => PartColumn(record?.part_detail) + }, + { + accessor: 'part_detail.IPN', + title: t`IPN`, + switchable: true + }, + { + accessor: 'part_detail.description', + title: t`Description`, + sortable: false, + switchable: true + }, + { + accessor: 'reference', + sortable: false, + switchable: true + }, + { + accessor: 'quantity', + sortable: true + }, + { + accessor: 'sale_price', + render: (record: any) => + formatCurrency(record.sale_price, { + currency: record.sale_price_currency + }) + }, + { + accessor: 'total_price', + title: t`Total Price`, + render: (record: any) => + formatCurrency(record.sale_price, { + currency: record.sale_price_currency, + multiplier: record.quantity + }) + }, + DateColumn({ + accessor: 'target_date', + sortable: true, + title: t`Target Date` + }), + { + accessor: 'stock', + title: t`Available Stock`, + render: (record: any) => { + let part_stock = record?.available_stock ?? 0; + let variant_stock = record?.available_variant_stock ?? 0; + let available = part_stock + variant_stock; + + let required = Math.max( + record.quantity - record.allocated - record.shipped, + 0 + ); + + let color: string | undefined = undefined; + let text: string = `${available}`; + + let extra: ReactNode[] = []; + + if (available <= 0) { + color = 'red'; + text = t`No stock available`; + } else if (available < required) { + color = 'orange'; + } + + if (variant_stock > 0) { + extra.push({t`Includes variant stock`}); + } + + return ( + {text}} + extra={extra} + title={t`Stock Information`} + /> + ); + } + }, + { + accessor: 'allocated', + render: (record: any) => ( + + ) + }, + { + accessor: 'shipped', + render: (record: any) => ( + + ) + }, + { + accessor: 'notes' + }, + LinkColumn({ + accessor: 'link' + }) + ]; + }, []); + + const [selectedLine, setSelectedLine] = useState(0); + + const [initialData, setInitialData] = useState({}); + + const createLineFields = useSalesOrderLineItemFields({ + orderId: orderId, + customerId: customerId, + create: true + }); + + const newLine = useCreateApiFormModal({ + url: ApiEndpoints.sales_order_line_list, + title: t`Add Line Item`, + fields: createLineFields, + initialData: initialData, + table: table + }); + + const editLineFields = useSalesOrderLineItemFields({ + orderId: orderId, + customerId: customerId, + create: false + }); + + const editLine = useEditApiFormModal({ + url: ApiEndpoints.sales_order_line_list, + pk: selectedLine, + title: t`Edit Line Item`, + fields: editLineFields, + table: table + }); + + const deleteLine = useDeleteApiFormModal({ + url: ApiEndpoints.sales_order_line_list, + pk: selectedLine, + title: t`Delete Line Item`, + table: table + }); + + const tableActions = useMemo(() => { + return [ + { + setInitialData({ + order: orderId + }); + newLine.open(); + }} + hidden={!user.hasAddRole(UserRoles.sales_order)} + /> + ]; + }, [user]); + + const rowActions = useCallback( + (record: any) => { + const allocated = (record?.allocated ?? 0) > (record?.quantity ?? 0); + + return [ + { + hidden: allocated || !user.hasChangeRole(UserRoles.sales_order), + title: t`Allocate stock`, + icon: , + color: 'green' + }, + RowEditAction({ + hidden: !user.hasChangeRole(UserRoles.sales_order), + onClick: () => { + setSelectedLine(record.pk); + editLine.open(); + } + }), + RowDuplicateAction({ + hidden: !user.hasAddRole(UserRoles.sales_order), + onClick: () => { + setInitialData(record); + newLine.open(); + } + }), + RowDeleteAction({ + hidden: !user.hasDeleteRole(UserRoles.sales_order), + onClick: () => { + setSelectedLine(record.pk); + deleteLine.open(); + } + }) + ]; + }, + [user] + ); + + return ( + <> + {editLine.modal} + {deleteLine.modal} + {newLine.modal} + + + ); +} From 2cb8f4128edbdc4b04b5d7e15f9864a0b5de543d Mon Sep 17 00:00:00 2001 From: Lavissa Date: Fri, 2 Aug 2024 01:15:57 +0200 Subject: [PATCH 29/55] Add limit to default location annotation (#7771) * Add limit to default location annotation Limits the number of results from the default_location filter to 1 * Add unit test to verify annotation functionality --- src/backend/InvenTree/part/filters.py | 9 +-- src/backend/InvenTree/part/test_api.py | 76 ++++++++++++++++++++++++++ 2 files changed, 79 insertions(+), 6 deletions(-) diff --git a/src/backend/InvenTree/part/filters.py b/src/backend/InvenTree/part/filters.py index 0b9fafb983..2a35b80714 100644 --- a/src/backend/InvenTree/part/filters.py +++ b/src/backend/InvenTree/part/filters.py @@ -296,15 +296,12 @@ def annotate_default_location(reference=''): rght__gt=OuterRef(f'{reference}rght'), level__lte=OuterRef(f'{reference}level'), parent__isnull=False, - ) + default_location__isnull=False, + ).order_by('-level') return Coalesce( F(f'{reference}default_location'), - Subquery( - subquery.order_by('-level') - .filter(default_location__isnull=False) - .values('default_location') - ), + Subquery(subquery.values('default_location')[:1]), Value(None), output_field=IntegerField(), ) diff --git a/src/backend/InvenTree/part/test_api.py b/src/backend/InvenTree/part/test_api.py index 3d4e4909d9..85af447556 100644 --- a/src/backend/InvenTree/part/test_api.py +++ b/src/backend/InvenTree/part/test_api.py @@ -505,6 +505,82 @@ class PartCategoryAPITest(InvenTreeAPITestCase): self.assertEqual(item['parent'], parent) self.assertEqual(item['subcategories'], subcategories) + def test_part_category_default_location(self): + """Test default location propagation through location trees.""" + """Making a tree structure like this: + main + loc 2 + sub1 + sub2 + loc 3 + sub3 + loc 4 + sub4 + sub5 + Expected behaviour: + main parent loc: Out of test scope. Parent category data not controlled by the test + sub1 parent loc: loc 2 + sub2 parent loc: loc 2 + sub3 parent loc: loc 3 + sub4 parent loc: loc 4 + sub5 parent loc: loc 3 + """ + main = PartCategory.objects.create( + name='main', + parent=PartCategory.objects.first(), + default_location=StockLocation.objects.get(id=2), + ) + sub1 = PartCategory.objects.create(name='sub1', parent=main) + sub2 = PartCategory.objects.create( + name='sub2', parent=sub1, default_location=StockLocation.objects.get(id=3) + ) + sub3 = PartCategory.objects.create( + name='sub3', parent=sub2, default_location=StockLocation.objects.get(id=4) + ) + sub4 = PartCategory.objects.create(name='sub4', parent=sub3) + sub5 = PartCategory.objects.create(name='sub5', parent=sub2) + part = Part.objects.create(name='test', category=sub4) + PartCategory.objects.rebuild() + + # This query will trigger an internal server error if annotation results are not limited to 1 + url = reverse('api-part-list') + response = self.get(url, expected_code=200) + + # sub1, expect main to be propagated + url = reverse('api-part-category-detail', kwargs={'pk': sub1.pk}) + response = self.get(url, expected_code=200) + self.assertEqual( + response.data['parent_default_location'], main.default_location.pk + ) + + # sub2, expect main to be propagated + url = reverse('api-part-category-detail', kwargs={'pk': sub2.pk}) + response = self.get(url, expected_code=200) + self.assertEqual( + response.data['parent_default_location'], main.default_location.pk + ) + + # sub3, expect sub2 to be propagated + url = reverse('api-part-category-detail', kwargs={'pk': sub3.pk}) + response = self.get(url, expected_code=200) + self.assertEqual( + response.data['parent_default_location'], sub2.default_location.pk + ) + + # sub4, expect sub3 to be propagated + url = reverse('api-part-category-detail', kwargs={'pk': sub4.pk}) + response = self.get(url, expected_code=200) + self.assertEqual( + response.data['parent_default_location'], sub3.default_location.pk + ) + + # sub5, expect sub2 to be propagated + url = reverse('api-part-category-detail', kwargs={'pk': sub5.pk}) + response = self.get(url, expected_code=200) + self.assertEqual( + response.data['parent_default_location'], sub2.default_location.pk + ) + class PartOptionsAPITest(InvenTreeAPITestCase): """Tests for the various OPTIONS endpoints in the /part/ API. From dcc351be112dfd838c29fc79417efcc0163841d3 Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Fri, 2 Aug 2024 02:54:19 +0200 Subject: [PATCH 30/55] Add provenance to releases and publish SBOMs (#7784) * Add more names * split build and publish * add attestation and SBOM * format file * Add toplevel permissions * fix missing path * move provenance down * fix release workflow * simplify steps --- .github/workflows/release.yaml | 33 +++++++++++++++++++++++++++++---- pyproject.toml | 2 +- 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 13b9d8abc7..c091b048ba 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -1,13 +1,16 @@ # Runs on releases -name: Publish release notes +name: Publish release on: release: types: [published] +permissions: + contents: read jobs: stable: runs-on: ubuntu-latest + name: Write release to stable branch permissions: contents: write pull-requests: write @@ -28,11 +31,13 @@ jobs: branch: stable force: true - publish-build: + build: runs-on: ubuntu-latest + name: Build and attest frontend permissions: + id-token: write contents: write - pull-requests: write + attestations: write steps: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 - name: Environment Setup @@ -43,6 +48,11 @@ jobs: run: cd src/frontend && yarn install - name: Build frontend run: cd src/frontend && npm run compile && npm run build + - name: Create SBOM for frontend + uses: anchore/sbom-action@v0 + with: + artifact-name: frontend-build.spdx + path: src/frontend - name: Write version file - SHA run: cd src/backend/InvenTree/web/static/web/.vite && echo "$GITHUB_SHA" > sha.txt - name: Write version file - TAG @@ -51,10 +61,25 @@ jobs: run: | cd src/backend/InvenTree/web/static/web zip -r ../frontend-build.zip * .vite - - uses: svenstaro/upload-release-action@04733e069f2d7f7f0b4aebc4fbdbce8613b03ccd # pin@2.9.0 + - name: Attest Build Provenance + id: attest + uses: actions/attest-build-provenance@v1 + with: + subject-path: "${{ github.workspace }}/src/backend/InvenTree/web/static/frontend-build.zip" + + - name: Upload frontend + uses: svenstaro/upload-release-action@04733e069f2d7f7f0b4aebc4fbdbce8613b03ccd # pin@2.9.0 with: repo_token: ${{ secrets.GITHUB_TOKEN }} file: src/backend/InvenTree/web/static/frontend-build.zip asset_name: frontend-build.zip tag: ${{ github.ref }} overwrite: true + - name: Upload Attestation + uses: svenstaro/upload-release-action@04733e069f2d7f7f0b4aebc4fbdbce8613b03ccd # pin@2.9.0 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + asset_name: frontend-build.intoto.jsonl + file: ${{ steps.attest.outputs.bundle-path}} + tag: ${{ github.ref }} + overwrite: true diff --git a/pyproject.toml b/pyproject.toml index 421a7fe37f..0946691589 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -87,4 +87,4 @@ known_django="django" sections=["FUTURE","STDLIB","DJANGO","THIRDPARTY","FIRSTPARTY","LOCALFOLDER"] [tool.codespell] -ignore-words-list = ["assertIn","SME"] +ignore-words-list = ["assertIn","SME","intoto"] From 964096aedfe4a313d078ec1c052df888b7fd4ae2 Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 2 Aug 2024 11:17:47 +1000 Subject: [PATCH 31/55] New Crowdin updates (#7788) * updated translation base * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin * Fix: New translations messages.po from Crowdin --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../InvenTree/locale/ar/LC_MESSAGES/django.po | 1065 +++--- .../InvenTree/locale/bg/LC_MESSAGES/django.po | 1065 +++--- .../InvenTree/locale/cs/LC_MESSAGES/django.po | 1079 +++--- .../InvenTree/locale/da/LC_MESSAGES/django.po | 1069 +++--- .../InvenTree/locale/de/LC_MESSAGES/django.po | 1085 +++--- .../InvenTree/locale/el/LC_MESSAGES/django.po | 1069 +++--- .../InvenTree/locale/en/LC_MESSAGES/django.po | 3272 ++++++++-------- .../InvenTree/locale/es/LC_MESSAGES/django.po | 1067 +++--- .../locale/es_MX/LC_MESSAGES/django.po | 3272 ++++++++-------- .../InvenTree/locale/et/LC_MESSAGES/django.po | 1067 +++--- .../InvenTree/locale/fa/LC_MESSAGES/django.po | 1059 +++--- .../InvenTree/locale/fi/LC_MESSAGES/django.po | 1071 +++--- .../InvenTree/locale/fr/LC_MESSAGES/django.po | 1081 +++--- .../InvenTree/locale/he/LC_MESSAGES/django.po | 1069 +++--- .../InvenTree/locale/hi/LC_MESSAGES/django.po | 1063 +++--- .../InvenTree/locale/hu/LC_MESSAGES/django.po | 1088 +++--- .../InvenTree/locale/id/LC_MESSAGES/django.po | 1067 +++--- .../InvenTree/locale/it/LC_MESSAGES/django.po | 1083 +++--- .../InvenTree/locale/ja/LC_MESSAGES/django.po | 1071 +++--- .../InvenTree/locale/ko/LC_MESSAGES/django.po | 1063 +++--- .../InvenTree/locale/lv/LC_MESSAGES/django.po | 1065 +++--- .../InvenTree/locale/nl/LC_MESSAGES/django.po | 1077 +++--- .../InvenTree/locale/no/LC_MESSAGES/django.po | 1083 +++--- .../InvenTree/locale/pl/LC_MESSAGES/django.po | 1083 +++--- .../InvenTree/locale/pt/LC_MESSAGES/django.po | 1063 +++--- .../InvenTree/locale/ro/LC_MESSAGES/django.po | 1063 +++--- .../InvenTree/locale/ru/LC_MESSAGES/django.po | 1085 +++--- .../InvenTree/locale/sk/LC_MESSAGES/django.po | 1063 +++--- .../InvenTree/locale/sl/LC_MESSAGES/django.po | 1069 +++--- .../InvenTree/locale/sr/LC_MESSAGES/django.po | 1065 +++--- .../InvenTree/locale/sv/LC_MESSAGES/django.po | 1075 +++--- .../InvenTree/locale/th/LC_MESSAGES/django.po | 1067 +++--- .../InvenTree/locale/tr/LC_MESSAGES/django.po | 1075 +++--- .../InvenTree/locale/uk/LC_MESSAGES/django.po | 1065 +++--- .../InvenTree/locale/vi/LC_MESSAGES/django.po | 1083 +++--- .../InvenTree/locale/zh/LC_MESSAGES/django.po | 1063 +++--- .../locale/zh_Hans/LC_MESSAGES/django.po | 3290 +++++++++-------- src/frontend/src/locales/ar/messages.po | 561 +-- src/frontend/src/locales/bg/messages.po | 561 +-- src/frontend/src/locales/cs/messages.po | 561 +-- src/frontend/src/locales/da/messages.po | 561 +-- src/frontend/src/locales/de/messages.po | 563 +-- src/frontend/src/locales/el/messages.po | 561 +-- src/frontend/src/locales/en/messages.po | 802 ++-- src/frontend/src/locales/es-mx/messages.po | 800 ++-- src/frontend/src/locales/es/messages.po | 561 +-- src/frontend/src/locales/et/messages.po | 561 +-- src/frontend/src/locales/fa/messages.po | 561 +-- src/frontend/src/locales/fi/messages.po | 561 +-- src/frontend/src/locales/fr/messages.po | 561 +-- src/frontend/src/locales/he/messages.po | 561 +-- src/frontend/src/locales/hi/messages.po | 561 +-- src/frontend/src/locales/hu/messages.po | 456 +-- src/frontend/src/locales/id/messages.po | 561 +-- src/frontend/src/locales/it/messages.po | 561 +-- src/frontend/src/locales/ja/messages.po | 561 +-- src/frontend/src/locales/ko/messages.po | 561 +-- src/frontend/src/locales/lv/messages.po | 561 +-- src/frontend/src/locales/nl/messages.po | 561 +-- src/frontend/src/locales/no/messages.po | 561 +-- src/frontend/src/locales/pl/messages.po | 561 +-- .../src/locales/pseudo-LOCALE/messages.po | 800 ++-- src/frontend/src/locales/pt-br/messages.po | 800 ++-- src/frontend/src/locales/pt/messages.po | 563 +-- src/frontend/src/locales/ro/messages.po | 561 +-- src/frontend/src/locales/ru/messages.po | 629 ++-- src/frontend/src/locales/sk/messages.po | 561 +-- src/frontend/src/locales/sl/messages.po | 561 +-- src/frontend/src/locales/sr/messages.po | 561 +-- src/frontend/src/locales/sv/messages.po | 561 +-- src/frontend/src/locales/th/messages.po | 561 +-- src/frontend/src/locales/tr/messages.po | 561 +-- src/frontend/src/locales/uk/messages.po | 561 +-- src/frontend/src/locales/vi/messages.po | 561 +-- src/frontend/src/locales/zh-hans/messages.po | 800 ++-- src/frontend/src/locales/zh-hant/messages.po | 800 ++-- src/frontend/src/locales/zh/messages.po | 561 +-- 77 files changed, 37191 insertions(+), 32911 deletions(-) diff --git a/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po index e51d16019e..7081764263 100644 --- a/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:37\n" "Last-Translator: \n" "Language-Team: Arabic\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "أدخل التاريخ" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "أدخل التاريخ" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "أدخل التاريخ" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "ملاحظات" @@ -91,47 +92,53 @@ msgstr "القيمة '{name}' لا تظهر في تنسيق النمط" msgid "Provided value does not match required pattern: " msgstr "القيمة المقدمة لا تتطابق مع النمط المطلوب: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "أدخل كلمة المرور" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "أدخل كلمة مرور جديدة" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "تأكيد كلمة المرور" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "تأكيد كلمة المرور الجديدة" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "كلمة المرور القديمة" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "البريد الإلكتروني (مرة أخرى)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "تأكيد البريد الإلكتروني" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "يجب عليك كتابة نفس البريد الإلكتروني كل مرة." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +#, fuzzy +#| msgid "Registration is disabled." +msgid "MFA Registration is disabled." +msgstr "التسجيل معطل." + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "عنوان البريد الإلكتروني الرئيسي المقدم غير صالح." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "لم تتم الموافقة على نطاق البريد الإلكتروني المقدم." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "التسجيل معطل." @@ -417,7 +424,7 @@ msgstr "" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +437,7 @@ msgstr "" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "" @@ -446,7 +453,7 @@ msgstr "" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +473,17 @@ msgstr "" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" @@ -573,10 +580,10 @@ msgstr "" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -730,7 +737,7 @@ msgstr "" #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" @@ -739,19 +746,19 @@ msgstr "" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" @@ -765,7 +772,7 @@ msgstr "" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" @@ -774,7 +781,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" @@ -854,7 +861,7 @@ msgstr "" #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +873,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +898,10 @@ msgstr "" #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "" @@ -953,9 +960,9 @@ msgid "Build status code" msgstr "" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" @@ -1006,7 +1013,7 @@ msgstr "" #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" @@ -1020,14 +1027,14 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "" @@ -1082,8 +1089,8 @@ msgstr "" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" @@ -1146,9 +1153,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" @@ -1182,8 +1189,8 @@ msgid "Selected stock item does not match BOM line" msgstr "" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1201,8 @@ msgstr "" #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" @@ -1260,7 +1267,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" @@ -1271,8 +1278,8 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1289,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" @@ -1335,15 +1342,15 @@ msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" @@ -1443,7 +1450,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "" @@ -1537,7 +1544,7 @@ msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1554,7 @@ msgstr "" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" @@ -1576,7 +1583,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" @@ -1601,7 +1608,7 @@ msgid "Allocated Stock" msgstr "" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1616,13 @@ msgstr "" msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1646,7 @@ msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "" @@ -1685,7 +1692,7 @@ msgstr "" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1812,9 +1819,9 @@ msgstr "" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" @@ -1835,7 +1842,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" @@ -1893,8 +1900,8 @@ msgstr "" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1921,7 @@ msgstr "" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +1994,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2008,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,6 +2048,11 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + #: common/api.py:692 msgid "Is Link" msgstr "" @@ -2470,7 +2486,7 @@ msgstr "" #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" @@ -2479,9 +2495,9 @@ msgid "Parts are templates by default" msgstr "" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" @@ -2490,7 +2506,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" @@ -2507,7 +2523,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" @@ -2522,7 +2538,7 @@ msgstr "" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" @@ -3615,7 +3631,7 @@ msgstr "" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "" @@ -3812,7 +3828,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4259,7 @@ msgstr "" msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4277,7 @@ msgstr "" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" @@ -4297,9 +4313,9 @@ msgid "Parameter name" msgstr "" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" @@ -4321,12 +4337,12 @@ msgstr "" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" @@ -4354,7 +4370,7 @@ msgstr "" #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" @@ -4404,13 +4420,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "" @@ -4536,15 +4552,15 @@ msgstr "" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4594,7 +4610,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4607,7 +4623,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4621,7 +4637,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4660,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4732,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4751,12 +4767,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4815,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4852,7 +4868,7 @@ msgstr "" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4890,13 +4906,13 @@ msgstr "" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5224,7 +5240,7 @@ msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5257,7 +5273,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" @@ -5266,7 +5282,7 @@ msgstr "" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5459,7 +5475,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" @@ -5467,9 +5483,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" @@ -5757,7 +5773,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6069,7 +6085,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6250,7 +6266,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6283,7 +6299,7 @@ msgstr "" #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" @@ -6531,8 +6547,8 @@ msgstr "" msgid "Default location for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6566,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" @@ -6732,7 +6748,7 @@ msgid "Is this part active?" msgstr "" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6950,7 @@ msgstr "" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" @@ -7036,7 +7052,7 @@ msgstr "" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" @@ -7045,7 +7061,7 @@ msgid "Is this test enabled?" msgstr "" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" @@ -7106,7 +7122,7 @@ msgid "Parameter description" msgstr "" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" @@ -7254,7 +7270,7 @@ msgstr "" msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -7352,7 +7368,7 @@ msgstr "" msgid "Copy image from original part" msgstr "" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" @@ -7554,80 +7570,100 @@ msgstr "" msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" @@ -7785,7 +7821,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7797,101 +7833,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8134,8 +8174,8 @@ msgstr "" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8181,7 +8221,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8815,7 +8855,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -9228,6 +9268,8 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9244,11 +9286,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9274,8 +9316,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" @@ -9332,7 +9374,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9357,9 +9399,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9375,7 +9417,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9425,316 +9467,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9844,7 +9886,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "" @@ -9868,8 +9910,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "" @@ -9893,106 +9935,110 @@ msgstr "" msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 -msgid "Select part to convert stock item into" -msgstr "" - -#: stock/serializers.py:897 -msgid "Selected part is not a valid option for conversion" +#: stock/serializers.py:900 +msgid "Unsupported statistic type: " msgstr "" #: stock/serializers.py:914 +msgid "Select part to convert stock item into" +msgstr "" + +#: stock/serializers.py:927 +msgid "Selected part is not a valid option for conversion" +msgstr "" + +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "" @@ -10024,7 +10070,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10080,7 +10126,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10100,7 +10146,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10161,7 +10207,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10169,7 +10215,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10183,7 +10229,7 @@ msgstr "" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10192,17 +10238,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10211,12 +10257,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10342,7 +10388,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10451,7 +10497,7 @@ msgid "New Location" msgstr "" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" @@ -10839,7 +10885,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10849,7 +10895,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10954,7 +11000,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -11811,7 +11857,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12124,13 +12170,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12391,7 +12437,7 @@ msgstr "" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" @@ -12399,7 +12445,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" @@ -12468,7 +12514,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" @@ -12722,45 +12768,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -13000,8 +13046,8 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" @@ -13126,7 +13172,7 @@ msgid "Copy Bill of Materials" msgstr "" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" @@ -13256,7 +13302,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" @@ -13268,7 +13314,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" @@ -13550,7 +13596,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13933,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13945,513 +13991,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14486,12 +14540,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14533,7 +14587,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14634,56 +14688,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14956,6 +15018,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" @@ -15059,4 +15129,3 @@ msgstr "" #: users/models.py:408 msgid "Permission to delete items" msgstr "" - diff --git a/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po index 2b62c27d10..30e1f87cdd 100644 --- a/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Bulgarian\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "Въведи дата" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "Въведи дата" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "Въведи дата" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Бележки" @@ -91,47 +92,53 @@ msgstr "Значението '{name}' не отговаря на шаблона" msgid "Provided value does not match required pattern: " msgstr "Въведеното значение не отговаря на задължителния шаблон: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Въведете парола" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Въведи нова парола" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Потвърди паролата" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Потвърди нова парола" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Стара парола" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "Е-поща отново" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Потвърждение на електронната поща" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Трябва ла въведете една и съща електронна поща." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +#, fuzzy +#| msgid "Registration is disabled." +msgid "MFA Registration is disabled." +msgstr "Регистрацията е деактивирана." + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Въведената основна електронна поща е невалидна." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Въведеният домейн на електронната поща не е утвърден." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Регистрацията е деактивирана." @@ -417,7 +424,7 @@ msgstr "" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +437,7 @@ msgstr "" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "" @@ -446,7 +453,7 @@ msgstr "" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +473,17 @@ msgstr "" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" @@ -573,10 +580,10 @@ msgstr "" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -730,7 +737,7 @@ msgstr "" #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" @@ -739,19 +746,19 @@ msgstr "" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" @@ -765,7 +772,7 @@ msgstr "" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" @@ -774,7 +781,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" @@ -854,7 +861,7 @@ msgstr "" #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +873,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +898,10 @@ msgstr "" #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Част" @@ -953,9 +960,9 @@ msgid "Build status code" msgstr "" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" @@ -1006,7 +1013,7 @@ msgstr "" #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" @@ -1020,14 +1027,14 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "" @@ -1082,8 +1089,8 @@ msgstr "" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" @@ -1146,9 +1153,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" @@ -1182,8 +1189,8 @@ msgid "Selected stock item does not match BOM line" msgstr "" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1201,8 @@ msgstr "" #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" @@ -1260,7 +1267,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" @@ -1271,8 +1278,8 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1289,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" @@ -1335,15 +1342,15 @@ msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" @@ -1443,7 +1450,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "" @@ -1537,7 +1544,7 @@ msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1554,7 @@ msgstr "" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" @@ -1576,7 +1583,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" @@ -1601,7 +1608,7 @@ msgid "Allocated Stock" msgstr "" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1616,13 @@ msgstr "" msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1646,7 @@ msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "" @@ -1685,7 +1692,7 @@ msgstr "" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1812,9 +1819,9 @@ msgstr "" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" @@ -1835,7 +1842,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" @@ -1893,8 +1900,8 @@ msgstr "" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1921,7 @@ msgstr "" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +1994,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2008,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,6 +2048,11 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + #: common/api.py:692 msgid "Is Link" msgstr "" @@ -2470,7 +2486,7 @@ msgstr "" #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" @@ -2479,9 +2495,9 @@ msgid "Parts are templates by default" msgstr "" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" @@ -2490,7 +2506,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" @@ -2507,7 +2523,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" @@ -2522,7 +2538,7 @@ msgstr "" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" @@ -3615,7 +3631,7 @@ msgstr "" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Потребител" @@ -3812,7 +3828,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4259,7 @@ msgstr "" msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4277,7 @@ msgstr "" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" @@ -4297,9 +4313,9 @@ msgid "Parameter name" msgstr "" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" @@ -4321,12 +4337,12 @@ msgstr "" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" @@ -4354,7 +4370,7 @@ msgstr "" #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" @@ -4404,13 +4420,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "" @@ -4536,15 +4552,15 @@ msgstr "" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4594,7 +4610,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4607,7 +4623,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4621,7 +4637,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4660,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4732,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4751,12 +4767,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4815,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4852,7 +4868,7 @@ msgstr "" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4890,13 +4906,13 @@ msgstr "" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5224,7 +5240,7 @@ msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5257,7 +5273,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" @@ -5266,7 +5282,7 @@ msgstr "" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5459,7 +5475,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" @@ -5467,9 +5483,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" @@ -5757,7 +5773,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6069,7 +6085,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6250,7 +6266,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6283,7 +6299,7 @@ msgstr "" #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" @@ -6531,8 +6547,8 @@ msgstr "" msgid "Default location for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6566,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" @@ -6732,7 +6748,7 @@ msgid "Is this part active?" msgstr "" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6950,7 @@ msgstr "" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" @@ -7036,7 +7052,7 @@ msgstr "" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" @@ -7045,7 +7061,7 @@ msgid "Is this test enabled?" msgstr "" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" @@ -7106,7 +7122,7 @@ msgid "Parameter description" msgstr "" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" @@ -7254,7 +7270,7 @@ msgstr "" msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -7352,7 +7368,7 @@ msgstr "" msgid "Copy image from original part" msgstr "" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" @@ -7554,80 +7570,100 @@ msgstr "" msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" @@ -7785,7 +7821,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7797,101 +7833,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8134,8 +8174,8 @@ msgstr "" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "Наличност" @@ -8181,7 +8221,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8815,7 +8855,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -9228,6 +9268,8 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9244,11 +9286,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9274,8 +9316,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" @@ -9332,7 +9374,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9357,9 +9399,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9375,7 +9417,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9425,316 +9467,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Място в склада" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Места в склада" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9844,7 +9886,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "" @@ -9868,8 +9910,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "" @@ -9893,106 +9935,110 @@ msgstr "" msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 -msgid "Select part to convert stock item into" -msgstr "" - -#: stock/serializers.py:897 -msgid "Selected part is not a valid option for conversion" +#: stock/serializers.py:900 +msgid "Unsupported statistic type: " msgstr "" #: stock/serializers.py:914 +msgid "Select part to convert stock item into" +msgstr "" + +#: stock/serializers.py:927 +msgid "Selected part is not a valid option for conversion" +msgstr "" + +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "" @@ -10024,7 +10070,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10080,7 +10126,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10100,7 +10146,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10161,7 +10207,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10169,7 +10215,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10183,7 +10229,7 @@ msgstr "" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10192,17 +10238,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10211,12 +10257,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10342,7 +10388,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10451,7 +10497,7 @@ msgid "New Location" msgstr "" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" @@ -10839,7 +10885,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10849,7 +10895,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10954,7 +11000,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -11811,7 +11857,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12124,13 +12170,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12391,7 +12437,7 @@ msgstr "" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" @@ -12399,7 +12445,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" @@ -12468,7 +12514,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" @@ -12722,45 +12768,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -13000,8 +13046,8 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" @@ -13126,7 +13172,7 @@ msgid "Copy Bill of Materials" msgstr "" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" @@ -13256,7 +13302,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" @@ -13268,7 +13314,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" @@ -13550,7 +13596,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13933,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13945,513 +13991,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14486,12 +14540,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14533,7 +14587,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14634,56 +14688,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14956,6 +15018,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" @@ -15059,4 +15129,3 @@ msgstr "" #: users/models.py:408 msgid "Permission to delete items" msgstr "" - diff --git a/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po index dff9fe4bb0..b70d93946e 100644 --- a/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Czech\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "Zadejte datum" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "Zadejte datum" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "Zadejte datum" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Poznámky" @@ -91,47 +92,53 @@ msgstr "Hodnota '{name}' neodpovídá formátu vzoru" msgid "Provided value does not match required pattern: " msgstr "Poskytnutá hodnota neodpovídá požadovanému vzoru: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Zadejte heslo" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Zadejte nové heslo" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Potvrďte heslo" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Potvrďte nové heslo" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Původní heslo" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "Email (znovu)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Potvrzení emailové adresy" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Pokaždé musíte zadat stejný email." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +#, fuzzy +#| msgid "Registration is disabled." +msgid "MFA Registration is disabled." +msgstr "Registrace vypnuta." + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Zadaná primární e-mailová adresa je neplatná." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Zadaná e-mailová doména není povolena." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Registrace vypnuta." @@ -417,7 +424,7 @@ msgstr "Neplatný výběr" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +437,7 @@ msgstr "Neplatný výběr" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Název" @@ -446,7 +453,7 @@ msgstr "Název" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +473,17 @@ msgstr "Název" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Popis" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Popis (volitelně)" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Cesta" @@ -573,10 +580,10 @@ msgstr "Je tento uživatel superuživatel" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "Aktivní" @@ -730,7 +737,7 @@ msgstr "Sestavení musí být zrušeno před odstraněním" #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "Spotřební materiál" @@ -739,19 +746,19 @@ msgstr "Spotřební materiál" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "Volitelné" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "Sledováno" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "Přiděleno" @@ -765,7 +772,7 @@ msgstr "Přiděleno" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "Dostupné" @@ -774,7 +781,7 @@ msgstr "Dostupné" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Vytvořit objednávku" @@ -854,7 +861,7 @@ msgstr "Příkaz sestavení pro který je toto sestavení přiděleno" #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +873,7 @@ msgstr "Příkaz sestavení pro který je toto sestavení přiděleno" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +898,10 @@ msgstr "Příkaz sestavení pro který je toto sestavení přiděleno" #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Díl" @@ -953,9 +960,9 @@ msgid "Build status code" msgstr "Stavový kód sestavení" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Kód dávky" @@ -1006,7 +1013,7 @@ msgstr "Uživatel, který vydal tento příkaz k sestavení" #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "Odpovědný" @@ -1020,14 +1027,14 @@ msgstr "Uživatel nebo skupina odpovědná za tento příkaz k sestavení" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Externí odkaz" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Odkaz na externí URL" @@ -1082,8 +1089,8 @@ msgstr "Výstup sestavení neodpovídá příkazu sestavení" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "Množství musí být vyšší než nula" @@ -1146,9 +1153,9 @@ msgstr "Vytvořit objekt" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "Množství" @@ -1182,8 +1189,8 @@ msgid "Selected stock item does not match BOM line" msgstr "Vybraná položka zásob neodpovídá řádku BOM" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1201,8 @@ msgstr "Vybraná položka zásob neodpovídá řádku BOM" #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "Skladové položky" @@ -1260,7 +1267,7 @@ msgstr "Je vyžadována celočíselná hodnota množství, protože kusovník ob #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Sériová čísla" @@ -1271,8 +1278,8 @@ msgstr "Zadejte sériová čísla pro sestavení výstupů" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1289,9 @@ msgstr "Zadejte sériová čísla pro sestavení výstupů" #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "Lokace" @@ -1335,15 +1342,15 @@ msgstr "Umístění dokončených výstupů sestavy" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "Stav" @@ -1443,7 +1450,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 objednávka sestavy" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "Položka musí být skladem" @@ -1537,7 +1544,7 @@ msgstr "IPN dílu" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1554,7 @@ msgstr "IPN dílu" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" @@ -1576,7 +1583,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "Sledovatelné" @@ -1601,7 +1608,7 @@ msgid "Allocated Stock" msgstr "Přidělené zásoby" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1616,13 @@ msgstr "Přidělené zásoby" msgid "On Order" msgstr "Na objednávku" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "Ve výrobě" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1646,7 @@ msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "Nevyřízeno" @@ -1685,7 +1692,7 @@ msgstr "Miniatura dílu" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Akce čárového kódu" @@ -1812,9 +1819,9 @@ msgstr "Tato sestava byla splatná v %(target)s" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "Po splatnosti" @@ -1835,7 +1842,7 @@ msgstr "Dokončené výstupy" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "Prodejní objednávka" @@ -1893,8 +1900,8 @@ msgstr "Přidělené díly" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1921,7 @@ msgstr "Nenastaveno cílené datum" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "Dokončeno" @@ -1987,7 +1994,13 @@ msgstr "Spotřebované zásoby" msgid "Completed Build Outputs" msgstr "Dokončené výstupy sestavy" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +#, fuzzy +#| msgid "Build Details" +msgid "Build test statistics" +msgstr "Detaily sestavy" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2010,25 @@ msgstr "Dokončené výstupy sestavy" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Přílohy" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "Poznámky k sestavě" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "Přidělení dokončeno" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "Všechny řádky byly plně přiděleny" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "Objednávka nové sestavy" @@ -2037,6 +2050,11 @@ msgstr "Řádkové položky" msgid "Incomplete Outputs" msgstr "Neúplné výstupy" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + #: common/api.py:692 msgid "Is Link" msgstr "Je odkaz" @@ -2470,7 +2488,7 @@ msgstr "Kopírování šablon parametrů kategorie při vytváření dílu" #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "Šablona" @@ -2479,9 +2497,9 @@ msgid "Parts are templates by default" msgstr "Díly jsou ve výchozím nastavení šablony" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "Sestava" @@ -2490,7 +2508,7 @@ msgid "Parts can be assembled from other components by default" msgstr "Díly lze ve výchozím nastavení sestavit z jiných komponentů" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "Komponent" @@ -2507,7 +2525,7 @@ msgid "Parts are purchaseable by default" msgstr "Díly jsou zakoupitelné ve výchozím nastavení" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "Prodejné" @@ -2522,7 +2540,7 @@ msgstr "Díly jsou sledovatelné ve výchozím nastavení" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "Nehmotné (virtuální)" @@ -3615,7 +3633,7 @@ msgstr "Uložte poslední použité tiskárny pro uživatele" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Uživatel" @@ -3812,7 +3830,7 @@ msgstr "Definice" msgid "Unit definition" msgstr "Definice jednotky" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4261,7 @@ msgstr "Odkaz na informace o adrese (externí)" msgid "Manufacturer Part" msgstr "Výrobce dílu" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4279,7 @@ msgstr "Zvolte díl" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "Výrobce" @@ -4297,9 +4315,9 @@ msgid "Parameter name" msgstr "Název parametru" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Hodnota" @@ -4321,12 +4339,12 @@ msgstr "Jednotky parametru" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "Díl dodavatele" @@ -4354,7 +4372,7 @@ msgstr "Odkazovaný díl výrobce musí odkazovat na stejný základní díl" #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "Dodavatel" @@ -4404,13 +4422,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimální poplatek (např. poplatek za skladování)" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "Balení" @@ -4536,15 +4554,15 @@ msgstr "Smazat obrázek" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "Zákazník" @@ -4594,7 +4612,7 @@ msgstr "Vytvořit nového dodavatele dílu" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "Nová díl dodavatele" @@ -4607,7 +4625,7 @@ msgstr "Výrobce dílů" msgid "Create new manufacturer part" msgstr "Vytvořit nového výrobce dílu" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "Nový výrobce dílu" @@ -4621,7 +4639,7 @@ msgstr "Dodavatelský sklad" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4662,7 @@ msgstr "Nová nákupní objednávka" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4734,7 @@ msgstr "Výrobci" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "Objednávka dílů" @@ -4751,12 +4769,12 @@ msgstr "Dodavatelé" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Parametry" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4817,7 @@ msgstr "Akce týkající se dílu dodavatele" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "Objednávka dílů" @@ -4852,7 +4870,7 @@ msgstr "Vytvořit novou položku skladu" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "Nová skladová položka" @@ -4890,13 +4908,13 @@ msgstr "Aktualizovat dostupnost dílu" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "Skladové položky" @@ -5224,7 +5242,7 @@ msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5257,7 +5275,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" @@ -5266,7 +5284,7 @@ msgstr "" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5459,7 +5477,7 @@ msgstr "Díl dodavatele" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "Doručeno" @@ -5467,9 +5485,9 @@ msgstr "Doručeno" msgid "Number of items received" msgstr "Počet přijatých položek" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "Nákupní cena" @@ -5757,7 +5775,7 @@ msgid "Select destination location for received items" msgstr "Vyberte cílové umístění pro přijaté položky" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "Zadat kód dávky pro příchozí položky skladu" @@ -6069,7 +6087,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6250,7 +6268,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6283,7 +6301,7 @@ msgstr "" #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" @@ -6531,8 +6549,8 @@ msgstr "Kategorie dílů" msgid "Default location for parts in this category" msgstr "Výchozí umístění dílů v této kategorii" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6568,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "Výchozí klíčová slova pro díly v této kategorii" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" @@ -6732,7 +6750,7 @@ msgid "Is this part active?" msgstr "" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6952,7 @@ msgstr "" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" @@ -7036,7 +7054,7 @@ msgstr "" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" @@ -7045,7 +7063,7 @@ msgid "Is this test enabled?" msgstr "" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" @@ -7106,7 +7124,7 @@ msgid "Parameter description" msgstr "" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" @@ -7254,7 +7272,7 @@ msgstr "" msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -7352,7 +7370,7 @@ msgstr "" msgid "Copy image from original part" msgstr "" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" @@ -7554,80 +7572,110 @@ msgstr "" msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +#, fuzzy +#| msgid "Select parent part" +msgid "Select the parent assembly" +msgstr "Vyberte nadřazený díl" + +#: part/serializers.py:1583 +#, fuzzy +#| msgid "Component" +msgid "Component Name" +msgstr "Komponent" + +#: part/serializers.py:1586 +#, fuzzy +#| msgid "Component" +msgid "Component IPN" +msgstr "Komponent" + +#: part/serializers.py:1589 +#, fuzzy +#| msgid "Company description" +msgid "Component Description" +msgstr "Popis společnosti" + +#: part/serializers.py:1595 +#, fuzzy +#| msgid "Select parent part" +msgid "Select the component part" +msgstr "Vyberte nadřazený díl" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" @@ -7785,7 +7833,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7797,101 +7845,107 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +#, fuzzy +#| msgid "Copy Part Test Data" +msgid "Part Test Statistics" +msgstr "Kopírovat zkušební data dílu" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "Kusovník" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8134,8 +8188,8 @@ msgstr "" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8181,7 +8235,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8815,7 +8869,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -9228,6 +9282,8 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9244,11 +9300,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9274,8 +9330,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" @@ -9332,7 +9388,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9357,9 +9413,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9375,7 +9431,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9425,316 +9481,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9844,7 +9900,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "" @@ -9868,8 +9924,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "" @@ -9893,106 +9949,112 @@ msgstr "" msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:900 +#, fuzzy +#| msgid "Unsupported file type" +msgid "Unsupported statistic type: " +msgstr "Nepodporovaný typ souboru" + +#: stock/serializers.py:914 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:927 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "" @@ -10024,7 +10086,7 @@ msgstr "V karanténě" msgid "Legacy stock tracking entry" msgstr "Původní položka sledování zásob" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Položka zásob vytvořena" @@ -10080,7 +10142,7 @@ msgstr "Rozdělit od nadřazené položky" msgid "Split child item" msgstr "Rozdělit podřazený předmět" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Sloučené položky zásob" @@ -10100,7 +10162,7 @@ msgstr "Výstup objednávky sestavení dokončen" msgid "Build order output rejected" msgstr "Výstup objednávky sestavení byl odmítnut" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Spotřebováno podle objednávky" @@ -10161,7 +10223,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10169,7 +10231,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10183,7 +10245,7 @@ msgstr "" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10192,17 +10254,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10211,12 +10273,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10342,7 +10404,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10451,7 +10513,7 @@ msgid "New Location" msgstr "" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" @@ -10839,7 +10901,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10849,7 +10911,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10954,7 +11016,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "Odstranit" @@ -11811,7 +11873,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12124,13 +12186,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12391,7 +12453,7 @@ msgstr "" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" @@ -12399,7 +12461,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" @@ -12468,7 +12530,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" @@ -12722,45 +12784,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -13000,8 +13062,8 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" @@ -13126,7 +13188,7 @@ msgid "Copy Bill of Materials" msgstr "" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" @@ -13256,7 +13318,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" @@ -13268,7 +13330,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" @@ -13550,7 +13612,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13949,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13945,513 +14007,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14486,12 +14556,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14533,7 +14603,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14634,56 +14704,68 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +#, fuzzy +#| msgid "Internal Part" +msgid "Interval start" +msgstr "Interní díl" + +#: templates/js/translated/table_filters.js:475 +#, fuzzy +#| msgid "Internal Prices" +msgid "Interval end" +msgstr "Interní ceny" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14956,6 +15038,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "Ano" @@ -15059,4 +15149,3 @@ msgstr "Oprávnění k úpravě položek" #: users/models.py:408 msgid "Permission to delete items" msgstr "Oprávnění k odstranění položek" - diff --git a/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po index c01acabb72..9cb3d284d6 100644 --- a/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Danish\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "Angiv dato" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "Angiv dato" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "Angiv dato" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Bemærkninger" @@ -91,47 +92,53 @@ msgstr "Værdi '{name}' vises ikke i mønsterformat" msgid "Provided value does not match required pattern: " msgstr "Den angivne værdi matcher ikke det påkrævede mønster: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Indtast adgangskode" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Indtast ny adgangskode" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Bekræft adgangskode" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Bekræft ny adgangskode" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Gammel adgangskode" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "E-mail (igen)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Bekræftelse af e-mailadresse" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Du skal indtaste den samme e-mail hver gang." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +#, fuzzy +#| msgid "Registration is disabled." +msgid "MFA Registration is disabled." +msgstr "Registrering er deaktiveret." + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Den indtastede email adresse er ikke gyldig." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Det angivne e-mail domæne er ikke godkendt." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Registrering er deaktiveret." @@ -417,7 +424,7 @@ msgstr "Ugyldigt valg" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +437,7 @@ msgstr "Ugyldigt valg" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Navn" @@ -446,7 +453,7 @@ msgstr "Navn" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +473,17 @@ msgstr "Navn" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Beskrivelse" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Beskrivelse (valgfri)" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Sti" @@ -573,10 +580,10 @@ msgstr "" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -730,7 +737,7 @@ msgstr "Produktion skal anulleres, før den kan slettes" #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "Forbrugsvare" @@ -739,19 +746,19 @@ msgstr "Forbrugsvare" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "Valgfri" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "Sporet" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "Allokeret" @@ -765,7 +772,7 @@ msgstr "Allokeret" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "Tilgængelig" @@ -774,7 +781,7 @@ msgstr "Tilgængelig" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Produktionsordre" @@ -854,7 +861,7 @@ msgstr "Produktionsordre som er tildelt denne produktion" #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +873,7 @@ msgstr "Produktionsordre som er tildelt denne produktion" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +898,10 @@ msgstr "Produktionsordre som er tildelt denne produktion" #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Del" @@ -953,9 +960,9 @@ msgid "Build status code" msgstr "Produktions statuskode" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Batch Kode" @@ -1006,7 +1013,7 @@ msgstr "Bruger som udstedte denne byggeordre" #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "Ansvarlig" @@ -1020,14 +1027,14 @@ msgstr "Bruger eller gruppe ansvarlig for denne byggeordre" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Ekstern link" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Link til ekstern URL" @@ -1082,8 +1089,8 @@ msgstr "" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" @@ -1146,9 +1153,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" @@ -1182,8 +1189,8 @@ msgid "Selected stock item does not match BOM line" msgstr "" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1201,8 @@ msgstr "" #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" @@ -1260,7 +1267,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" @@ -1271,8 +1278,8 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1289,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" @@ -1335,15 +1342,15 @@ msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" @@ -1443,7 +1450,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "" @@ -1537,7 +1544,7 @@ msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1554,7 @@ msgstr "" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" @@ -1576,7 +1583,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" @@ -1601,7 +1608,7 @@ msgid "Allocated Stock" msgstr "" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1616,13 @@ msgstr "" msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1646,7 @@ msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "Afventende" @@ -1685,7 +1692,7 @@ msgstr "" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1812,9 +1819,9 @@ msgstr "" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" @@ -1835,7 +1842,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" @@ -1893,8 +1900,8 @@ msgstr "" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1921,7 @@ msgstr "" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +1994,13 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +#, fuzzy +#| msgid "Build status code" +msgid "Build test statistics" +msgstr "Produktions statuskode" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2010,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,6 +2050,11 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + #: common/api.py:692 msgid "Is Link" msgstr "" @@ -2470,7 +2488,7 @@ msgstr "" #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" @@ -2479,9 +2497,9 @@ msgid "Parts are templates by default" msgstr "" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" @@ -2490,7 +2508,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" @@ -2507,7 +2525,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" @@ -2522,7 +2540,7 @@ msgstr "" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" @@ -3615,7 +3633,7 @@ msgstr "" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Bruger" @@ -3812,7 +3830,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4261,7 @@ msgstr "" msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4279,7 @@ msgstr "" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" @@ -4297,9 +4315,9 @@ msgid "Parameter name" msgstr "" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" @@ -4321,12 +4339,12 @@ msgstr "" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" @@ -4354,7 +4372,7 @@ msgstr "" #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" @@ -4404,13 +4422,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "" @@ -4536,15 +4554,15 @@ msgstr "" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4594,7 +4612,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4607,7 +4625,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4621,7 +4639,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4662,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4734,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4751,12 +4769,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4817,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4852,7 +4870,7 @@ msgstr "" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4890,13 +4908,13 @@ msgstr "" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5224,7 +5242,7 @@ msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5257,7 +5275,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" @@ -5266,7 +5284,7 @@ msgstr "" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5459,7 +5477,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" @@ -5467,9 +5485,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" @@ -5757,7 +5775,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6069,7 +6087,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6250,7 +6268,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6283,7 +6301,7 @@ msgstr "" #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" @@ -6531,8 +6549,8 @@ msgstr "" msgid "Default location for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6568,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" @@ -6732,7 +6750,7 @@ msgid "Is this part active?" msgstr "" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6952,7 @@ msgstr "" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" @@ -7036,7 +7054,7 @@ msgstr "" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" @@ -7045,7 +7063,7 @@ msgid "Is this test enabled?" msgstr "" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" @@ -7106,7 +7124,7 @@ msgid "Parameter description" msgstr "" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" @@ -7254,7 +7272,7 @@ msgstr "" msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -7352,7 +7370,7 @@ msgstr "" msgid "Copy image from original part" msgstr "" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" @@ -7554,80 +7572,106 @@ msgstr "" msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +#, fuzzy +#| msgid "Select part to build" +msgid "Select the parent assembly" +msgstr "Vælg dele til produktion" + +#: part/serializers.py:1583 +#, fuzzy +#| msgid "Complete" +msgid "Component Name" +msgstr "Fuldført" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +#, fuzzy +#| msgid "Description" +msgid "Component Description" +msgstr "Beskrivelse" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" @@ -7785,7 +7829,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7797,101 +7841,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8134,8 +8182,8 @@ msgstr "" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8181,7 +8229,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8815,7 +8863,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -9228,6 +9276,8 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9244,11 +9294,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9274,8 +9324,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" @@ -9332,7 +9382,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9357,9 +9407,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9375,7 +9425,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9425,316 +9475,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9844,7 +9894,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "" @@ -9868,8 +9918,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "" @@ -9893,106 +9943,112 @@ msgstr "" msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:900 +#, fuzzy +#| msgid "Unsupported file type" +msgid "Unsupported statistic type: " +msgstr "Filtype ikke understøttet" + +#: stock/serializers.py:914 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:927 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "" @@ -10024,7 +10080,7 @@ msgstr "I karantæne" msgid "Legacy stock tracking entry" msgstr "Forældet lager sporings post" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Lager-element oprettet" @@ -10080,7 +10136,7 @@ msgstr "Opdel fra overordnet element" msgid "Split child item" msgstr "Opdel underordnet element" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Flettede lagervarer" @@ -10100,7 +10156,7 @@ msgstr "Byggeorder output fuldført" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Brugt efter byggeordre" @@ -10161,7 +10217,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10169,7 +10225,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10183,7 +10239,7 @@ msgstr "" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10192,17 +10248,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10211,12 +10267,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10342,7 +10398,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10451,7 +10507,7 @@ msgid "New Location" msgstr "" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" @@ -10839,7 +10895,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10849,7 +10905,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10954,7 +11010,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -11811,7 +11867,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12124,13 +12180,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12391,7 +12447,7 @@ msgstr "" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" @@ -12399,7 +12455,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" @@ -12468,7 +12524,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" @@ -12722,45 +12778,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -13000,8 +13056,8 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" @@ -13126,7 +13182,7 @@ msgid "Copy Bill of Materials" msgstr "" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" @@ -13256,7 +13312,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" @@ -13268,7 +13324,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" @@ -13550,7 +13606,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13943,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13945,513 +14001,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14486,12 +14550,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14533,7 +14597,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14634,56 +14698,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14956,6 +15028,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" @@ -15059,4 +15139,3 @@ msgstr "" #: users/models.py:408 msgid "Permission to delete items" msgstr "" - diff --git a/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po index 94671c645a..0188ea555b 100644 --- a/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: German\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "Datum eingeben" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "Datum eingeben" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "Datum eingeben" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Notizen" @@ -91,47 +92,53 @@ msgstr "Wert '{name}' hält das Musterformat nicht ein" msgid "Provided value does not match required pattern: " msgstr "Angegebener Wert entspricht nicht dem benötigten Muster: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Passwort eingeben" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Neues Passwort eingeben" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Passwort wiederholen" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Neues Passwort bestätigen" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Altes Passwort" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "E-Mail (nochmal)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Bestätigung der E-Mail Adresse" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "E-Mail Adressen müssen übereinstimmen." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +#, fuzzy +#| msgid "Registration is disabled." +msgid "MFA Registration is disabled." +msgstr "Registrierung ist deaktiviert." + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Die angegebene primäre E-Mail-Adresse ist ungültig." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Die angegebene E-Mail-Domain ist nicht freigegeben." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Registrierung ist deaktiviert." @@ -417,7 +424,7 @@ msgstr "Ungültige Auswahl" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +437,7 @@ msgstr "Ungültige Auswahl" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Name" @@ -446,7 +453,7 @@ msgstr "Name" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +473,17 @@ msgstr "Name" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Beschreibung" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Beschreibung (optional)" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Pfad" @@ -573,10 +580,10 @@ msgstr "Ist dieser Benutzer ein Adminstrator" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "Aktiv" @@ -730,7 +737,7 @@ msgstr "Bauauftrag muss abgebrochen werden, bevor er gelöscht werden kann" #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "Verbrauchsmaterial" @@ -739,19 +746,19 @@ msgstr "Verbrauchsmaterial" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "Optional" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "Nachverfolgt" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "Zugeordnet" @@ -765,7 +772,7 @@ msgstr "Zugeordnet" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "Verfügbar" @@ -774,7 +781,7 @@ msgstr "Verfügbar" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Bauauftrag" @@ -854,7 +861,7 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist" #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +873,7 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +898,10 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist" #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Teil" @@ -953,9 +960,9 @@ msgid "Build status code" msgstr "Bau-Statuscode" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Losnummer" @@ -1006,7 +1013,7 @@ msgstr "Nutzer der diesen Bauauftrag erstellt hat" #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "Verantwortlicher Benutzer" @@ -1020,14 +1027,14 @@ msgstr "Benutzer oder Gruppe verantwortlich für diesen Bauauftrag" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Externer Link" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Link zu einer externen URL" @@ -1082,8 +1089,8 @@ msgstr "Endprodukt stimmt nicht mit dem Bauauftrag überein" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "Anzahl muss größer Null sein" @@ -1146,9 +1153,9 @@ msgstr "Objekt bauen" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "Anzahl" @@ -1182,8 +1189,8 @@ msgid "Selected stock item does not match BOM line" msgstr "Ausgewählter Lagerbestand stimmt nicht mit BOM-Linie überein" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1201,8 @@ msgstr "Ausgewählter Lagerbestand stimmt nicht mit BOM-Linie überein" #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "Lagerartikel" @@ -1260,7 +1267,7 @@ msgstr "Ganzzahl erforderlich da die Stückliste nachverfolgbare Teile enthält" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Seriennummer" @@ -1271,8 +1278,8 @@ msgstr "Seriennummer für dieses Endprodukt eingeben" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1289,9 @@ msgstr "Seriennummer für dieses Endprodukt eingeben" #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "Lagerort" @@ -1335,15 +1342,15 @@ msgstr "Lagerort für fertige Endprodukte" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "Status" @@ -1443,7 +1450,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:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "Teil muss auf Lager sein" @@ -1537,7 +1544,7 @@ msgstr "Teil IPN" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1554,7 @@ msgstr "Teil IPN" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "Seriennummer" @@ -1576,7 +1583,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "Nachverfolgbar" @@ -1601,7 +1608,7 @@ msgid "Allocated Stock" msgstr "Zugewiesener Bestand" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1616,13 @@ msgstr "Zugewiesener Bestand" msgid "On Order" msgstr "Bestellt" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "In Produktion" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1646,7 @@ msgstr "Externes Lager" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "Ausstehend" @@ -1685,7 +1692,7 @@ msgstr "Miniaturansicht" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Barcode Aktionen" @@ -1812,9 +1819,9 @@ msgstr "Bauauftrag war fällig am %(target)s" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "Überfällig" @@ -1835,7 +1842,7 @@ msgstr "Fertiggestellte Endprodukte" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "Auftrag" @@ -1893,8 +1900,8 @@ msgstr "Zugewiesene Teile" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1921,7 @@ msgstr "Kein Ziel-Datum gesetzt" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "Fertig" @@ -1987,7 +1994,13 @@ msgstr "Verbrauchte Bestände" msgid "Completed Build Outputs" msgstr "Fertiggestellte Endprodukte" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +#, fuzzy +#| msgid "Build status" +msgid "Build test statistics" +msgstr "Bauauftrags Status" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2010,25 @@ msgstr "Fertiggestellte Endprodukte" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Anhänge" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "Bauauftrags-Notizen" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "Zuordnung abgeschlossen" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "Alle Zeilen wurden vollständig zugewiesen" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "Neuer Bauauftrag" @@ -2037,6 +2050,13 @@ msgstr "Positionen" msgid "Incomplete Outputs" msgstr "Unfertige Endprodukte" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +#, fuzzy +#| msgid "Test station" +msgid "Test Statistics" +msgstr "Teststation" + #: common/api.py:692 msgid "Is Link" msgstr "Link" @@ -2470,7 +2490,7 @@ msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird" #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "Vorlage" @@ -2479,9 +2499,9 @@ msgid "Parts are templates by default" msgstr "Teile sind standardmäßig Vorlagen" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "Baugruppe" @@ -2490,7 +2510,7 @@ msgid "Parts can be assembled from other components by default" msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "Komponente" @@ -2507,7 +2527,7 @@ msgid "Parts are purchaseable by default" msgstr "Artikel sind grundsätzlich kaufbar" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "Verkäuflich" @@ -2522,7 +2542,7 @@ msgstr "Artikel sind grundsätzlich verfolgbar" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "Virtuell" @@ -3615,7 +3635,7 @@ msgstr "Die zuletzt benutzten Druckmaschinen für einen Benutzer speichern" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Benutzer" @@ -3812,7 +3832,7 @@ msgstr "Definition" msgid "Unit definition" msgstr "Einheitsdefinition" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4263,7 @@ msgstr "Link zu Adressinformationen (extern)" msgid "Manufacturer Part" msgstr "Herstellerteil" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4281,7 @@ msgstr "Teil auswählen" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "Hersteller" @@ -4297,9 +4317,9 @@ msgid "Parameter name" msgstr "Parametername" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Wert" @@ -4321,12 +4341,12 @@ msgstr "Parametereinheit" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "Zuliefererteil" @@ -4354,7 +4374,7 @@ msgstr "Verlinktes Herstellerteil muss dasselbe Basisteil referenzieren" #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "Zulieferer" @@ -4404,13 +4424,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "Mindestpreis" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "Verpackungen" @@ -4536,15 +4556,15 @@ msgstr "Bild löschen" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "Kunde" @@ -4594,7 +4614,7 @@ msgstr "Neues Zuliefererteil anlegen" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "Neues Zuliefererteil" @@ -4607,7 +4627,7 @@ msgstr "Herstellerteile" msgid "Create new manufacturer part" msgstr "Neues Herstellerteil anlegen" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "Neues Herstellerteil" @@ -4621,7 +4641,7 @@ msgstr "Zulieferer-Bestand" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4664,7 @@ msgstr "Neue Bestellung" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4736,7 @@ msgstr "Hersteller" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "Teil bestellen" @@ -4751,12 +4771,12 @@ msgstr "Zulieferer" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Parameter" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4819,7 @@ msgstr "Zulieferer-Teil Aktionen" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "Teil bestellen" @@ -4852,7 +4872,7 @@ msgstr "Neuen Lagerartikel hinzufügen" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "Neuer Lagerartikel" @@ -4890,13 +4910,13 @@ msgstr "Verfügbarkeit der Teile aktualisieren" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "Lagerartikel" @@ -5224,7 +5244,7 @@ msgid "Order Status" msgstr "Bestellstatus" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "Hat Preise" @@ -5257,7 +5277,7 @@ msgstr "Bestellung ausstehend" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "Bestellung" @@ -5266,7 +5286,7 @@ msgstr "Bestellung" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "Rücksendeauftrag" @@ -5459,7 +5479,7 @@ msgstr "Zuliefererteil" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "Empfangen" @@ -5467,9 +5487,9 @@ msgstr "Empfangen" msgid "Number of items received" msgstr "Empfangene Objekt-Anzahl" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "Preis" @@ -5757,7 +5777,7 @@ msgid "Select destination location for received items" msgstr "Zielort für empfangene Teile auswählen" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "Losnummer für eingehende Lagerartikel" @@ -6069,7 +6089,7 @@ msgstr "Auswahl duplizieren" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Zeile entfernen" @@ -6250,7 +6270,7 @@ msgstr "Ausstehende Sendungen" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "Aktionen" @@ -6283,7 +6303,7 @@ msgstr "{part} Stückpreis auf {price} und Menge auf {qty} aktualisiert" #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "IPN (Interne Produktnummer)" @@ -6531,8 +6551,8 @@ msgstr "Teil-Kategorien" msgid "Default location for parts in this category" msgstr "Standard-Lagerort für Teile dieser Kategorie" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6570,13 @@ msgstr "Standard Stichwörter" msgid "Default keywords for parts in this category" msgstr "Standard-Stichworte für Teile dieser Kategorie" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Symbol" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "Symbol (optional)" @@ -6732,7 +6752,7 @@ msgid "Is this part active?" msgstr "Ist dieses Teil aktiv?" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6954,7 @@ msgstr "Insgesamt verfügbarer Lagerbestand zum Zeitpunkt der Inventur" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "Datum" @@ -7036,7 +7056,7 @@ msgstr "Beschreibung für diesen Test eingeben" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "Aktiviert" @@ -7045,7 +7065,7 @@ msgid "Is this test enabled?" msgstr "Ist dieser Test aktiviert?" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "Benötigt" @@ -7106,7 +7126,7 @@ msgid "Parameter description" msgstr "Parameter-Beschreibung" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "Checkbox" @@ -7254,7 +7274,7 @@ msgstr "Diese Stücklisten-Position wird in die Stücklisten von Teil-Varianten msgid "Stock items for variant parts can be used for this BOM item" msgstr "Bestand von Varianten kann für diese Stücklisten-Position verwendet werden" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "Menge muss eine Ganzzahl sein" @@ -7352,7 +7372,7 @@ msgstr "Bild kopieren" msgid "Copy image from original part" msgstr "Bild vom Originalteil kopieren" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "Stückliste kopieren" @@ -7554,80 +7574,110 @@ msgstr "Mindestpreis darf nicht größer als der Maximalpreis sein" msgid "Maximum price must not be less than minimum price" msgstr "Der Maximalpreis darf nicht kleiner als der Mindestpreis sein" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +#, fuzzy +#| msgid "Select parent part" +msgid "Select the parent assembly" +msgstr "Ausgangsteil auswählen" + +#: part/serializers.py:1583 +#, fuzzy +#| msgid "Component" +msgid "Component Name" +msgstr "Komponente" + +#: part/serializers.py:1586 +#, fuzzy +#| msgid "Component" +msgid "Component IPN" +msgstr "Komponente" + +#: part/serializers.py:1589 +#, fuzzy +#| msgid "Company description" +msgid "Component Description" +msgstr "Firmenbeschreibung" + +#: part/serializers.py:1595 +#, fuzzy +#| msgid "Select parent part" +msgid "Select the component part" +msgstr "Ausgangsteil auswählen" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "Herstellbar" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "Teil auswählen, von dem Stückliste kopiert wird" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "Bestehende Daten entfernen" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "Bestehende Stücklisten-Positionen vor dem Kopieren entfernen" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "Vererbtes einschließen" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "Stücklisten-Positionen einbeziehen, die von Vorlage-Teilen geerbt werden" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "Ungültige Zeilen überspringen" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "Aktiviere diese Option, um ungültige Zeilen zu überspringen" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "Ersatzteile kopieren" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "Ersatzteile beim Duplizieren von Stücklisten-Positionen kopieren" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "Bestehende Stückliste löschen" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "Bestehende Stücklisten-Positionen vor dem Importieren entfernen" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "Keine Teilspalte angegeben" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "Mehrere übereinstimmende Teile gefunden" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "Keine passenden Teile gefunden" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "Teil ist nicht als Komponente angelegt" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "Menge nicht angegeben" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "Ungültige Menge" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "Mindestens eine Stückliste-Position ist erforderlich" @@ -7785,7 +7835,7 @@ msgstr "Inventurinformationen hinzufügen" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "Inventur" @@ -7797,101 +7847,107 @@ msgstr "Teil Test-Vorlagen" msgid "Add Test Template" msgstr "Test Vorlage hinzufügen" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +#, fuzzy +#| msgid "Part Test Templates" +msgid "Part Test Statistics" +msgstr "Teil Test-Vorlagen" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "Verkaufsauftragszuweisungen" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "Teile-Notizen" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "Teil Varianten" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "Neue Variante anlegen" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "neue Variante anlegen" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "Parameter hinzufügen" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "Verknüpfte Teile" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "Verknüpftes Teil hinzufügen" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "Stückliste" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "Export-Aktionen" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "Stückliste exportieren" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "Stücklisten-Bericht drucken" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "Stücklisten-Aktionen" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "Stückliste hochladen" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "Stückliste überprüfen" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "Stücklisten-Position hinzufügen" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "Baugruppen" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "Gefertigte Teile" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "Bauauftragszuweisungen" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "Zulieferer" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "Teil-Hersteller" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "Verknüpftes Teil" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "Verknüpftes Teil hinzufügen" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "Testergebnis-Vorlage hinzufügen" @@ -8134,8 +8190,8 @@ msgstr "Varianten" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "Bestand" @@ -8181,7 +8237,7 @@ msgstr "Bearbeiten" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "Zuletzt aktualisiert" @@ -8815,7 +8871,7 @@ msgid "Is the plugin active" msgstr "Ist das Plugin aktiv" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "Installiert" @@ -9228,6 +9284,8 @@ msgstr "Zusätzliche Positionen" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "Summe" @@ -9244,11 +9302,11 @@ msgid "Test Results" msgstr "Testergebnisse" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "Test" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "Ergebnis" @@ -9274,8 +9332,8 @@ msgid "Installed Items" msgstr "Verbaute Objekte" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "Seriennummer" @@ -9332,7 +9390,7 @@ msgstr "Lieferant" msgid "Customer ID" msgstr "Kunden ID" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "verbaut in" @@ -9357,9 +9415,9 @@ msgstr "Überprüfung erforderlich" msgid "Delete on Deplete" msgstr "Löschen wenn leer" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "Ablaufdatum" @@ -9375,7 +9433,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "Unterorte in gefilterte Ergebnisse einbeziehen" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "Übergeordneter Ort" @@ -9425,316 +9483,316 @@ msgstr "Das Zulieferteil hat eine Packungsgröße definiert, aber das Kennzeiche msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Seriennummern können für nicht verfolgbare Teile nicht angegeben werden" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "Lagerstandort Typ" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "Lagerstandorte Typen" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "Standardsymbol für alle Orte, die kein Icon gesetzt haben (optional)" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Bestand-Lagerort" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Bestand-Lagerorte" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Besitzer" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "Besitzer auswählen" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Lagerartikel können nicht direkt an einen strukturellen Lagerort verlegt werden, können aber an einen untergeordneten Lagerort verlegt werden." -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "Extern" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "Dies ist ein externer Lagerort" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "Standorttyp" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "Standortart dieses Standortes" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "Sie können diesen Lagerort nicht als strukturell markieren, da sich bereits Lagerartikel darin befinden!" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "Lagerartikel können nicht in strukturelle Lagerorte abgelegt werden!" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "Für virtuelle Teile können keine Lagerartikel erstellt werden" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "Artikeltyp ('{self.supplier_part.part}') muss {self.part} sein" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "Anzahl muss für Objekte mit Seriennummer 1 sein" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Seriennummer kann nicht gesetzt werden wenn die Anzahl größer als 1 ist" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "Teil kann nicht zu sich selbst gehören" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "Teil muss eine Referenz haben wenn is_building wahr ist" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "Referenz verweist nicht auf das gleiche Teil" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "Eltern-Lagerartikel" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "Basis-Teil" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "Passendes Zuliefererteil für diesen Lagerartikel auswählen" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "Wo wird dieses Teil normalerweise gelagert?" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "Verpackung, in der dieser Lagerartikel gelagert ist" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "Ist dieses Teil in einem anderen verbaut?" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "Seriennummer für dieses Teil" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "Losnummer für diesen Lagerartikel" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "Bestand" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "Quellbau" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "Bauauftrag für diesen Lagerartikel" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "Verbraucht von" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "Bauauftrag der diesen Lagerartikel verbrauchte" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "Quelle Bestellung" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "Bestellung für diesen Lagerartikel" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "Ziel-Auftrag" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Ablaufdatum für Lagerartikel. Bestand wird danach als abgelaufen gekennzeichnet" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "Löschen wenn leer" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "Diesen Lagerartikel löschen wenn der Bestand aufgebraucht ist" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "Preis für eine Einheit bei Einkauf" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "In Teil umgewandelt" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "Teil ist nicht verfolgbar" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "Anzahl muss eine Ganzzahl sein" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "Menge darf die verfügbare Lagermenge ({self.quantity}) nicht überschreiten" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "Seriennummern muss eine Liste von Ganzzahlen sein" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "Anzahl stimmt nicht mit den Seriennummern überein" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "Seriennummern existieren bereits" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "Testvorlage existiert nicht" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "Artikel wurde einem Kundenauftrag zugewiesen" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "Lagerartikel ist in anderem Element verbaut" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "Lagerartikel enthält andere Artikel" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "Artikel wurde einem Kunden zugewiesen" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "Lagerartikel wird aktuell produziert" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "Nachverfolgbare Lagerartikel können nicht zusammengeführt werden" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "Artikel duplizeren" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "Lagerartikel müssen auf dasselbe Teil verweisen" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "Lagerartikel müssen auf dasselbe Lieferantenteil verweisen" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "Status-Codes müssen zusammenpassen" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "Lagerartikel kann nicht bewegt werden, da kein Bestand vorhanden ist" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "Eintrags-Notizen" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "Wert muss für diesen Test angegeben werden" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "Anhang muss für diesen Test hochgeladen werden" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "Testergebnis" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "Test Ausgabe Wert" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "Test Ergebnis Anhang" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "Test Notizen" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "Teststation" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "Der Bezeichner der Teststation, in der der Test durchgeführt wurde" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "Gestartet" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "Der Zeitstempel des Teststarts" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "Fertiggestellt" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "Der Zeitstempel der Test-Beendigung" @@ -9844,7 +9902,7 @@ msgstr "Anzahl darf nicht die verfügbare Menge überschreiten ({q})" msgid "Enter serial numbers for new items" msgstr "Seriennummern für neue Teile eingeben" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "Ziel-Bestand" @@ -9868,8 +9926,8 @@ msgstr "Zu installierende Menge" msgid "Enter the quantity of items to install" msgstr "Anzahl der zu verwendenden Artikel eingeben" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr " Transaktionsnotizen hinzufügen (optional)" @@ -9893,106 +9951,112 @@ msgstr "Die zu verwendende Menge darf die verfügbare Menge nicht überschreiten msgid "Destination location for uninstalled item" msgstr "Ziel Lagerort für unverbautes Objekt" -#: stock/serializers.py:884 +#: stock/serializers.py:900 +#, fuzzy +#| msgid "Unsupported file type" +msgid "Unsupported statistic type: " +msgstr "Nicht unterstütztes Dateiformat" + +#: stock/serializers.py:914 msgid "Select part to convert stock item into" msgstr "Wählen Sie einen Teil aus, zu dem dieser Lagerartikel geändert werden soll" -#: stock/serializers.py:897 +#: stock/serializers.py:927 msgid "Selected part is not a valid option for conversion" msgstr "Das ausgewählte Teil ist keine gültige Option für die Umwandlung" -#: stock/serializers.py:914 +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "Lagerartikel konnte nicht mit Zulieferteil zugewiesen werden" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "Ziel Lagerort für zurückgegebene Artikel" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "Lagerartikel auswählen, um den Status zu ändern" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "Keine Lagerartikel ausgewählt" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Unter-Lagerorte" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "Übergeordneter Lagerort" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "Teil muss verkaufbar sein" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "Artikel ist einem Kundenauftrag zugeordnet" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "Artikel ist einem Fertigungsauftrag zugeordnet" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "Kunde zum Zuweisen von Lagerartikel" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "Ausgewählte Firma ist kein Kunde" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "Notizen zur Lagerzuordnung" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "Eine Liste der Lagerbestände muss angegeben werden" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "Notizen zur Lagerartikelzusammenführung" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "Unterschiedliche Lieferanten erlauben" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "Zusammenführen von Lagerartikeln mit unterschiedlichen Lieferanten erlauben" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "Unterschiedliche Status erlauben" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "Zusammenführen von Lagerartikeln mit unterschiedlichen Status-Codes erlauben" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "Mindestens zwei Lagerartikel müssen angegeben werden" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "Keine Änderung" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "Primärschlüssel Lagerelement" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "Lagerartikel Status-Code" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "Bestandsbewegungsnotizen" @@ -10024,7 +10088,7 @@ msgstr "In Quarantäne" msgid "Legacy stock tracking entry" msgstr "Alter Bestand-Verfolgungs-Eintrag" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Lagerartikel erstellt" @@ -10080,7 +10144,7 @@ msgstr "Vom übergeordneten Element geteilt" msgid "Split child item" msgstr "Unterobjekt geteilt" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Lagerartikel zusammengeführt" @@ -10100,7 +10164,7 @@ msgstr "Endprodukt fertiggestellt" msgid "Build order output rejected" msgstr "Endprodukt abgelehnt" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Durch Bauauftrag verbraucht" @@ -10161,7 +10225,7 @@ msgstr "Lagerartikel-Notizen" msgid "Installed Stock Items" msgstr "Installierte Lagerartikel" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "Lagerartikel installieren" @@ -10169,7 +10233,7 @@ msgstr "Lagerartikel installieren" msgid "Delete all test results for this stock item" msgstr "Alle Testergebnisse für diesen Lagerartikel löschen" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "Testergebnis hinzufügen" @@ -10183,7 +10247,7 @@ msgstr "zu Lagerort einscannen" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "Druck Aktionen" @@ -10192,17 +10256,17 @@ msgid "Stock adjustment actions" msgstr "Bestands-Anpassungs Aktionen" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "Bestand zählen" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "Bestand hinzufügen" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "Bestand entfernen" @@ -10211,12 +10275,12 @@ msgid "Serialize stock" msgstr "Bestand serialisieren" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "Bestand verschieben" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "Kunden zuweisen" @@ -10342,7 +10406,7 @@ msgid "No stocktake performed" msgstr "Keine Inventur ausgeführt" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "Lagerartikel" @@ -10451,7 +10515,7 @@ msgid "New Location" msgstr "Neuer Lagerort" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "Lagerort" @@ -10839,7 +10903,7 @@ msgstr "Installationspfad" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "Integriert" @@ -10849,7 +10913,7 @@ msgstr "Dies ist ein integriertes Plugin, das nicht deaktiviert werden kann" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "Beispiel" @@ -10954,7 +11018,7 @@ msgstr "Bewerten" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "Löschen" @@ -11811,7 +11875,7 @@ msgstr "Dadurch wird der Link zu dem zugehörigen Barcode entfernt" msgid "Unlink" msgstr "Verknüpfung aufheben" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "Lagerartikel entfernen" @@ -12124,13 +12188,13 @@ msgstr "Bauauftrag ist unvollständig" msgid "Complete Build Order" msgstr "Bauauftrag fertigstellen" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "Nächste verfügbare Seriennummer" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "Letzte Seriennummer" @@ -12391,7 +12455,7 @@ msgstr "Keine Bauaufträge zur Suchanfrage" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "Auswählen" @@ -12399,7 +12463,7 @@ msgstr "Auswählen" msgid "Build order is overdue" msgstr "Bauauftrag ist überfällig" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "Keine Benutzerinformation" @@ -12468,7 +12532,7 @@ msgstr "Zuweisung von nachverfolgbaren Artikeln zu einzelnen Bauprodukten" msgid "Build stock" msgstr "Bestand bauen" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "Bestand bestellen" @@ -12722,45 +12786,45 @@ msgstr "Staffelpreis bearbeiten" msgid "Delete price break" msgstr "Staffelpreis löschen" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "wahr" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "falsch" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "Filter auswählen" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "Etiketten drucken" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "Berichte drucken" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "Tabelle herunterladen" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "Tabelle neu laden" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "Neuen Filter hinzufügen" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "Alle Filter entfernen" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "Filter erstellen" @@ -13000,8 +13064,8 @@ msgstr "Duplizierungsoptionen für Teile" msgid "Add Part Category" msgstr "Teil-Kategorie hinzufügen" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "Icon (optional) - alle verfügbaren Icons einsehbar auf" @@ -13126,7 +13190,7 @@ msgid "Copy Bill of Materials" msgstr "Stückliste kopieren" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "Bestand niedrig" @@ -13256,7 +13320,7 @@ msgid "No category" msgstr "Keine Kategorien" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "Als Liste anzeigen" @@ -13268,7 +13332,7 @@ msgstr "Als Raster anzeigen" msgid "No subcategories found" msgstr "Keine Unterkategorien gefunden" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "Als Baum anzeigen" @@ -13550,7 +13614,7 @@ msgid "Quantity to receive" msgstr "Zu erhaltende Menge" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13951,7 @@ msgstr "Bestandszuordnung löschen" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "An den Kunden versandt" @@ -13945,513 +14009,521 @@ msgstr "Ergebnisse minimieren" msgid "Remove results" msgstr "Ergebnisse entfernen" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "Lagerartikel serialisieren" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "Lager-Serialisierung bestätigen" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "Lagerorttyp hinzufügen" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "Lagerort bearbeiten" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "Lagerort hinzufügen" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "Weiteren Lagerort nach diesem erstellen" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "Lagerort erstellt" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "Soll dieser Lagerort gelöscht werden?" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "Zum übergeordneten Lagerort verschieben" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "Lagerort löschen" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "Aktion für Lagerartikel in diesem Lagerort" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "Aktion für Unter-Lagerorte" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "Dieser Teil kann nicht serialisiert werden" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "Angegebene Menge als Packungen anstatt einzelner Artikel hinzufügen" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "Ausgangsmenge für diesen Lagerartikel eingeben" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Seriennummern für neue Lagerartikel eingeben (oder leer lassen)" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "Lagerartikel dupliziert" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "Lagerartikel duplizieren" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "Soll dieser Lagerartikel gelöscht werden?" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "Lagerartikel löschen" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "Lagerartikel bearbeiten" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "Weiteres Teil nach diesem erstellen" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "Neuen Lagerartikel erstellen" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "Mehrere Lagerartikel wurden erstellt" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "Seriennummer finden" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "Seriennummer eingeben" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "Eine Seriennummer eingeben" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "Keine passende Seriennummer" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "Mehr als ein übereinstimmendes Ergebnis gefunden" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "Bestand Zuweisung bestätigen" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "Lagerbestand einem Kunden zuweisen" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "Achtung: Das Zusammenführen kann nicht rückgängig gemacht werden" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "Einige Informationen gehen verloren, wenn Artikel zusammengeführt werden" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "Lagerartikelverlauf wird für zusammengeführte Lagerartikel gelöscht" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "Lieferantenteil-Informationen werden für zusammengeführte Artikel gelöscht" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "Bestandszusammenführung bestätigen" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "Lagerartikel zusammenführen" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "Bestand verschieben" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "Verschieben" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "Bestand zählen" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "Zählen" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "Bestand entfernen" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "Entnehmen" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "Bestand hinzufügen" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "Hinzufügen" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "Bestand löschen" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "Menge von serialisiertem Bestand kann nicht bearbeitet werden" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "Bestandsanzahl angeben" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "Lagerartikel auswählen" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "Wähle mindestens einen verfügbaren Lagerartikel aus" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "Bestandsanpassung bestätigen" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "ERFOLGREICH" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "FEHLGESCHLAGEN" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "KEIN ERGEBNIS" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "Test bestanden" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "Testergebnis hinzufügen" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "Testergebnis bearbeiten" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "Testergebnis löschen" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "Keine Testergebnisse gefunden" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "Testdatum" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "Test gestartet" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "Test beendet" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "Testergebnis bearbeiten" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "Testergebnis löschen" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "In Produktion" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "In Lagerartikel installiert" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "Auftrag zugewiesen" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "Kein Lagerort gesetzt" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "Bestandsstatus ändern" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "Bestand zusammenführen" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "Bestand löschen" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "Lagerartikel" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "Zu Lagerort einscannen" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "Lager-Aktionen" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "Installierte Artikel laden" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "Lagerartikel wird produziert" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "Lagerartikel wurde Auftrag zugewiesen" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "Lagerartikel wurde Kunden zugewiesen" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "Serialisierter Lagerartikel wurde zugewiesen" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "Lagerartikel wurde vollständig zugewiesen" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "Lagerartikel wurde teilweise zugewiesen" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "Lagerartikel in anderem Artikel verbaut" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "Lagerbestand wurde durch einen Bauauftrag verbraucht" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "Lagerartikel ist abgelaufen" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "Lagerartikel läuft demnächst ab" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "Lagerartikel wurde zurückgewiesen" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "Lagerartikel ist verloren" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "Lagerartikel ist zerstört" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "Aufgebraucht" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "Zuliefererteil nicht angegeben" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "Bestandswert" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "Keine zur Anfrage passenden Lagerartikel gefunden" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "Lagerorte" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "Untergeordnete Lagerorte laden" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "Details" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "Keine Änderungen" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "Teileinformationen nicht verfügbar" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "Lagerort existiert nicht mehr" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "Bauauftrag existiert nicht mehr" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "Bestellung existiert nicht mehr" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "Auftrag existiert nicht mehr" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "Rücksendebestellung existiert nicht mehr" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "Kunde existiert nicht mehr" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "Lagerartikel existiert nicht mehr" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "Hinzugefügt" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "Entfernt" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "Keine installierten Artikel" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "Lagerartikel deinstallieren" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "Zu deinstallierende Lagerartikel auswählen" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "Einen anderen Lagerartikel in dieses Teil installieren" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "Lagerartikel können nur installiert werden wenn folgende Kriterien erfüllt werden" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "Der Lagerartikel ist mit einem Teil verknüpft das in der Stückliste für diesen Lagerartikel ist" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "Dieser Lagerartikel ist aktuell vorhanden" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "Der Lagerbestand ist nicht bereits in einem anderen Bestand installiert" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "Der Lagerbestand wird entweder mit einem Batch-Code oder mit Seriennummer verfolgt" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "Teil zur Installation auswählen" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "Wählen Sie einen oder mehrere Bestandteile aus" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "Lagerartikel auswählen" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "Bestandsstatus ändern" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "Hat Projektcode" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "Bestellstatus" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "Ausstehend" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "Mir zugewiesen" @@ -14486,12 +14558,12 @@ msgstr "Hat Lagerorttyp" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "Unterkategorien einschließen" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "Abonniert" @@ -14533,7 +14605,7 @@ msgid "Batch code" msgstr "Losnummer" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "Aktive Teile" @@ -14634,56 +14706,68 @@ msgstr "Test bestanden" msgid "Include Installed Items" msgstr "Installierte Teile einschließen" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +#, fuzzy +#| msgid "Internal Part" +msgid "Interval start" +msgstr "Internes Teil" + +#: templates/js/translated/table_filters.js:475 +#, fuzzy +#| msgid "Internal Price" +msgid "Interval end" +msgstr "Interner Preis" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "Bauauftrags Status" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "Teile in Unterkategorien einschließen" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "Aktive Teile anzeigen" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "Verfügbarer Lagerbestand" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "Hat Einheiten" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "Teil hat definierte Einheiten" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "Hat IPN" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "Teil hat Interne Teilenummer" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "Auf Lager" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "Kaufbar" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "Hat Inventureinträge" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "Hat Auswahlen" @@ -14956,6 +15040,18 @@ msgstr "E-Mail-Einstellungen" msgid "Email settings not configured" msgstr "E-Mail-Einstellungen nicht konfiguriert" +#: templates/test_statistics_table.html:13 +#, fuzzy +#| msgid "Pass" +msgid "Passed" +msgstr "bestanden" + +#: templates/test_statistics_table.html:16 +#, fuzzy +#| msgid "Fail" +msgid "Failed" +msgstr "fehlgeschlagen" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "Ja" @@ -15059,4 +15155,3 @@ msgstr "Berechtigungen Einträge zu ändern" #: users/models.py:408 msgid "Permission to delete items" msgstr "Berechtigung Einträge zu löschen" - diff --git a/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po index 9e4ee1321c..8a574b67d7 100644 --- a/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Greek\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "Εισάγετε ημερομηνία" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "Εισάγετε ημερομηνία" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "Εισάγετε ημερομηνία" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Σημειώσεις" @@ -91,47 +92,53 @@ msgstr "Η τιμή '{name}' δεν εμφανίζεται σε μορφή μο msgid "Provided value does not match required pattern: " msgstr "Η παρεχόμενη τιμή δεν ταιριάζει με το απαιτούμενο απαραραίητη μοτίβο: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Εισάγετε κωδικό" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Εισάγετε νέο κωδικό πρόσβασης" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Επιβεβαιώστε τον κωδικό πρόσβασης" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Επιβεβαιώστε τον νέο κωδικό πρόσβασης" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Παλιός κωδικός πρόσβασης" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "E-mail (ξανά)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Επιβεβαίωση διεύθυνσης email" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Πρέπει να πληκτρολογήσετε το ίδιο email κάθε φορά." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +#, fuzzy +#| msgid "Registration is disabled." +msgid "MFA Registration is disabled." +msgstr "Η εγγραφή είναι απενεργοποιημένη." + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Η παρεχόμενη κύρια διεύθυνση ηλεκτρονικού ταχυδρομείου δεν είναι έγκυρη." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Ο παρεχόμενος τομέας ηλεκτρονικού ταχυδρομείου δεν έχει εγκριθεί." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Η εγγραφή είναι απενεργοποιημένη." @@ -417,7 +424,7 @@ msgstr "Μη έγκυρη επιλογή" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +437,7 @@ msgstr "Μη έγκυρη επιλογή" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Όνομα" @@ -446,7 +453,7 @@ msgstr "Όνομα" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +473,17 @@ msgstr "Όνομα" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Περιγραφή" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Περιγραφή (προαιρετική)" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Μονοπάτι" @@ -573,10 +580,10 @@ msgstr "" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -730,7 +737,7 @@ msgstr "Η έκδοση πρέπει να ακυρωθεί πριν διαγρα #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "Αναλώσιμο" @@ -739,19 +746,19 @@ msgstr "Αναλώσιμο" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "Προαιρετικό" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "Υπό παρακολούθηση" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "Κατανεμημένο" @@ -765,7 +772,7 @@ msgstr "Κατανεμημένο" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "Διαθέσιμο" @@ -774,7 +781,7 @@ msgstr "Διαθέσιμο" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Σειρά Κατασκευής" @@ -854,7 +861,7 @@ msgstr "BuildOrder στην οποία έχει δοθεί αυτή η κατα #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +873,7 @@ msgstr "BuildOrder στην οποία έχει δοθεί αυτή η κατα #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +898,10 @@ msgstr "BuildOrder στην οποία έχει δοθεί αυτή η κατα #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Εξάρτημα" @@ -953,9 +960,9 @@ msgid "Build status code" msgstr "Κωδικός κατάστασης κατασκευής" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Κωδικός Παρτίδας" @@ -1006,7 +1013,7 @@ msgstr "Χρήστης που εξέδωσε αυτήν την παραγγελ #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "Υπεύθυνος" @@ -1020,14 +1027,14 @@ msgstr "Χρήστης ή ομάδα υπεύθυνη για αυτή την ε #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Εξωτερικοί σύνδεσμοι" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Σύνδεσμος προς εξωτερική διεύθυνση URL" @@ -1082,8 +1089,8 @@ msgstr "Η έξοδος κατασκευής δεν ταιριάζει με τη #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "Η ποσότητα πρέπει να είναι μεγαλύτερη από 0" @@ -1146,9 +1153,9 @@ msgstr "Αντικείμενο κατασκευής" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "Ποσότητα" @@ -1182,8 +1189,8 @@ msgid "Selected stock item does not match BOM line" msgstr "Το επιλεγμένο στοιχείο αποθέματος δεν ταιριάζει με τη γραμμή ΤΥ" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1201,8 @@ msgstr "Το επιλεγμένο στοιχείο αποθέματος δεν #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "Στοιχείο Αποθέματος" @@ -1260,7 +1267,7 @@ msgstr "Ακέραιη ποσότητα που απαιτείται, καθώς #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Σειριακοί αριθμοί" @@ -1271,8 +1278,8 @@ msgstr "Εισάγετε ποσότητα για την έξοδο κατασκ #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1289,9 @@ msgstr "Εισάγετε ποσότητα για την έξοδο κατασκ #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "Τοποθεσία" @@ -1335,15 +1342,15 @@ msgstr "Τοποθεσία για ολοκληρωμένα προϊόντα κα #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "Κατάσταση" @@ -1443,7 +1450,7 @@ msgstr "Αντικείμενο Γραμμής Κατασκευής" msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part πρέπει να δείχνει στο ίδιο εξάρτημα με τη εντολή κατασκευής" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "" @@ -1537,7 +1544,7 @@ msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1554,7 @@ msgstr "" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" @@ -1576,7 +1583,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" @@ -1601,7 +1608,7 @@ msgid "Allocated Stock" msgstr "" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1616,13 @@ msgstr "" msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1646,7 @@ msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "Σε εκκρεμότητα" @@ -1685,7 +1692,7 @@ msgstr "" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1812,9 +1819,9 @@ msgstr "Αυτή η κατασκευή είχε προθεσμία %(target)s" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "Εκπρόθεσμη" @@ -1835,7 +1842,7 @@ msgstr "Ολοκληρωμένα Προϊόντα" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "Εντολές Πώλησης" @@ -1893,8 +1900,8 @@ msgstr "" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1921,7 @@ msgstr "" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +1994,13 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +#, fuzzy +#| msgid "Build Details" +msgid "Build test statistics" +msgstr "Λεπτομέρειες Κατασκευής" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2010,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,6 +2050,11 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + #: common/api.py:692 msgid "Is Link" msgstr "" @@ -2470,7 +2488,7 @@ msgstr "" #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" @@ -2479,9 +2497,9 @@ msgid "Parts are templates by default" msgstr "" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" @@ -2490,7 +2508,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" @@ -2507,7 +2525,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" @@ -2522,7 +2540,7 @@ msgstr "" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" @@ -3615,7 +3633,7 @@ msgstr "" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Χρήστης" @@ -3812,7 +3830,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4261,7 @@ msgstr "" msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4279,7 @@ msgstr "" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" @@ -4297,9 +4315,9 @@ msgid "Parameter name" msgstr "" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" @@ -4321,12 +4339,12 @@ msgstr "" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" @@ -4354,7 +4372,7 @@ msgstr "" #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" @@ -4404,13 +4422,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "" @@ -4536,15 +4554,15 @@ msgstr "" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4594,7 +4612,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4607,7 +4625,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4621,7 +4639,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4662,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4734,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4751,12 +4769,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4817,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4852,7 +4870,7 @@ msgstr "" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4890,13 +4908,13 @@ msgstr "" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5224,7 +5242,7 @@ msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5257,7 +5275,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" @@ -5266,7 +5284,7 @@ msgstr "" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5459,7 +5477,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" @@ -5467,9 +5485,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" @@ -5757,7 +5775,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6069,7 +6087,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6250,7 +6268,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6283,7 +6301,7 @@ msgstr "" #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" @@ -6531,8 +6549,8 @@ msgstr "" msgid "Default location for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6568,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" @@ -6732,7 +6750,7 @@ msgid "Is this part active?" msgstr "" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6952,7 @@ msgstr "" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" @@ -7036,7 +7054,7 @@ msgstr "" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" @@ -7045,7 +7063,7 @@ msgid "Is this test enabled?" msgstr "" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" @@ -7106,7 +7124,7 @@ msgid "Parameter description" msgstr "" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" @@ -7254,7 +7272,7 @@ msgstr "" msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -7352,7 +7370,7 @@ msgstr "" msgid "Copy image from original part" msgstr "" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" @@ -7554,80 +7572,106 @@ msgstr "" msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +#, fuzzy +#| msgid "Select part to build" +msgid "Select the parent assembly" +msgstr "Επιλέξτε τμήμα για κατασκευή" + +#: part/serializers.py:1583 +#, fuzzy +#| msgid "Complete" +msgid "Component Name" +msgstr "Ολοκληρώθηκε" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +#, fuzzy +#| msgid "Description" +msgid "Component Description" +msgstr "Περιγραφή" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" @@ -7785,7 +7829,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7797,101 +7841,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8134,8 +8182,8 @@ msgstr "" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8181,7 +8229,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8815,7 +8863,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -9228,6 +9276,8 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9244,11 +9294,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9274,8 +9324,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" @@ -9332,7 +9382,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9357,9 +9407,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9375,7 +9425,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9425,316 +9475,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9844,7 +9894,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "" @@ -9868,8 +9918,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "" @@ -9893,106 +9943,112 @@ msgstr "" msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:900 +#, fuzzy +#| msgid "Unsupported file type" +msgid "Unsupported statistic type: " +msgstr "Μη υποστηριζόμενος τύπος αρχείου" + +#: stock/serializers.py:914 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:927 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "" @@ -10024,7 +10080,7 @@ msgstr "Σε Καραντίνα" msgid "Legacy stock tracking entry" msgstr "Καταχώρηση παλαιού αποθέματος" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Το αντικείμενο αποθεμάτων δημιουργήθηκε" @@ -10080,7 +10136,7 @@ msgstr "Έγινε διαχωρισμός από το γονεϊκό αρχεί msgid "Split child item" msgstr "Διαχωρίστηκε θυγατρικό στοιχείο" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Έγινε συγχώνευση αποθεμάτων" @@ -10100,7 +10156,7 @@ msgstr "Η έξοδος της σειράς κατασκευής ολοκληρ msgid "Build order output rejected" msgstr "Η εντολή κατασκευής απορρίφθηκε" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Κατανάλωση με εντολή κατασκευής" @@ -10161,7 +10217,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10169,7 +10225,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10183,7 +10239,7 @@ msgstr "" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10192,17 +10248,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10211,12 +10267,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10342,7 +10398,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10451,7 +10507,7 @@ msgid "New Location" msgstr "" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" @@ -10839,7 +10895,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10849,7 +10905,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10954,7 +11010,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -11811,7 +11867,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12124,13 +12180,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12391,7 +12447,7 @@ msgstr "" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" @@ -12399,7 +12455,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" @@ -12468,7 +12524,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" @@ -12722,45 +12778,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -13000,8 +13056,8 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" @@ -13126,7 +13182,7 @@ msgid "Copy Bill of Materials" msgstr "" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" @@ -13256,7 +13312,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" @@ -13268,7 +13324,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" @@ -13550,7 +13606,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13943,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13945,513 +14001,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14486,12 +14550,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14533,7 +14597,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14634,56 +14698,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14956,6 +15028,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" @@ -15059,4 +15139,3 @@ msgstr "" #: users/models.py:408 msgid "Permission to delete items" msgstr "" - diff --git a/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po index 5dcf87e43c..ae31f37202 100644 --- a/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-22 10:29+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -57,8 +57,8 @@ msgstr "" msgid "Enter date" msgstr "" -#: InvenTree/fields.py:205 InvenTree/models.py:919 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -66,20 +66,21 @@ msgstr "" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3264 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2361 stock/models.py:2488 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "" @@ -92,47 +93,51 @@ msgstr "" msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "" -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "" @@ -407,118 +412,118 @@ msgstr "" msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:720 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:737 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:767 common/models.py:2692 common/models.py:3122 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:956 part/models.py:3731 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "" -#: InvenTree/models.py:773 build/models.py:249 +#: InvenTree/models.py:776 build/models.py:249 #: build/templates/build/detail.html:24 common/models.py:156 #: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1348 part/admin.py:305 part/admin.py:408 part/models.py:979 -#: part/models.py:3746 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "" -#: InvenTree/models.py:774 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:789 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" -#: InvenTree/models.py:919 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1025 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1068 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1069 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4354 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3082 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -568,16 +573,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2697 company/models.py:163 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 #: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1156 plugin/models.py:66 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -663,7 +668,7 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -727,32 +732,32 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4232 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4226 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" @@ -760,13 +765,13 @@ msgstr "" #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" @@ -775,7 +780,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" @@ -820,16 +825,16 @@ msgstr "" #: build/models.py:241 build/serializers.py:1233 order/models.py:468 #: order/models.py:945 order/models.py:1308 order/models.py:2070 -#: part/admin.py:411 part/models.py:4247 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" @@ -851,11 +856,11 @@ msgstr "" #: build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 #: order/models.py:1438 order/models.py:1593 order/models.py:1594 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3093 -#: part/models.py:3237 part/models.py:3385 part/models.py:3406 -#: part/models.py:3428 part/models.py:3564 part/models.py:3904 -#: part/models.py:4067 part/models.py:4198 part/models.py:4557 -#: part/serializers.py:1182 part/serializers.py:1812 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -867,35 +872,35 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "" @@ -912,7 +917,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "" #: build/models.py:288 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" @@ -954,9 +959,9 @@ msgid "Build status code" msgstr "" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:847 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" @@ -965,7 +970,7 @@ msgid "Batch code for this build output" msgstr "" #: build/models.py:338 order/models.py:316 order/serializers.py:127 -#: part/models.py:1196 part/templates/part/part_base.html:319 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" @@ -980,7 +985,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:346 order/models.py:526 order/models.py:2115 -#: templates/js/translated/build.js:2422 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" @@ -988,7 +993,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:360 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" @@ -1000,14 +1005,14 @@ msgstr "" #: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1213 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" @@ -1021,14 +1026,14 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:843 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:376 common/models.py:3263 part/models.py:1031 -#: stock/models.py:843 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:855 msgid "Link to external URL" msgstr "" @@ -1043,8 +1048,8 @@ msgstr "" #: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1083,8 +1088,8 @@ msgstr "" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:688 stock/models.py:1508 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" @@ -1108,10 +1113,10 @@ msgstr "" #: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2569 +#: build/templates/build/detail.html:34 common/models.py:2571 #: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3251 part/models.py:4220 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1128,28 +1133,28 @@ msgstr "" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" @@ -1183,20 +1188,20 @@ msgid "Selected stock item does not match BOM line" msgstr "" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:364 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" @@ -1217,7 +1222,7 @@ msgid "Destination stock item" msgstr "" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4069 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" @@ -1227,7 +1232,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" @@ -1261,7 +1266,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" @@ -1271,21 +1276,21 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" @@ -1336,15 +1341,15 @@ msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" @@ -1444,7 +1449,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "" @@ -1527,34 +1532,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4068 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4070 +#: part/models.py:4097 msgid "Part IPN" msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:833 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1575,9 +1580,9 @@ msgid "Part Category Name" msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 -#: part/models.py:1139 templates/js/translated/table_filters.js:147 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" @@ -1585,13 +1590,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4280 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4077 part/models.py:4549 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "" @@ -1601,22 +1606,22 @@ msgstr "" msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1634,13 +1639,13 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "" @@ -1685,8 +1690,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1697,7 +1702,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1708,7 +1713,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1721,7 +1726,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1792,11 +1797,11 @@ msgstr "" #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1813,9 +1818,9 @@ msgstr "" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" @@ -1836,7 +1841,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" @@ -1848,7 +1853,7 @@ msgid "Issued By" msgstr "" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" @@ -1877,7 +1882,7 @@ msgid "Stock can be taken from any available location." msgstr "" #: build/templates/build/detail.html:49 order/models.py:1467 -#: templates/js/translated/purchase_order.js:2260 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1891,11 +1896,11 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1905,7 +1910,7 @@ msgstr "" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -1915,7 +1920,7 @@ msgstr "" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1988,7 +1993,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1998,25 +2007,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2038,15 +2047,20 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2238,8 +2252,8 @@ msgstr "" #: common/models.py:1295 common/models.py:1351 common/models.py:1364 #: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1626 common/models.py:1648 common/models.py:1763 -#: common/models.py:2136 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" @@ -2467,11 +2481,11 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1483 part/admin.py:108 part/models.py:3912 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" @@ -2479,10 +2493,10 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:1489 part/admin.py:91 part/admin.py:425 part/models.py:1127 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" @@ -2490,8 +2504,8 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1495 part/admin.py:95 part/models.py:1133 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" @@ -2499,7 +2513,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1501 part/admin.py:100 part/models.py:1145 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "" @@ -2507,8 +2521,8 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1507 part/admin.py:104 part/models.py:1151 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" @@ -2520,10 +2534,10 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1519 part/admin.py:117 part/models.py:1167 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" @@ -2555,7 +2569,7 @@ msgstr "" msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1543 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" @@ -2579,1187 +2593,1187 @@ msgstr "" msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1563 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1565 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1571 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1573 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1584 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1586 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1597 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1599 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1605 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1607 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1613 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1615 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1621 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1623 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1630 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1631 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1636 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1638 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1644 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1646 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1653 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1654 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1659 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1661 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1667 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1668 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1673 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1675 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1681 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1682 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1687 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1688 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1693 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1694 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1699 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1700 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1705 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1706 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1711 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1713 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1719 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1720 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1725 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1726 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1731 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1733 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1739 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1741 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1746 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1747 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1752 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1753 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1758 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1760 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1767 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1768 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1773 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1774 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1779 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1780 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1784 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1785 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1790 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1792 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1798 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1800 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1806 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1808 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1814 common/models.py:1862 common/models.py:1884 -#: common/models.py:1920 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1815 common/models.py:1863 common/models.py:1885 -#: common/models.py:1921 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1820 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1821 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1826 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1827 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1832 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1834 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1840 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1842 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1848 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1849 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1854 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1856 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1868 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1870 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1876 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1878 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1890 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1891 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1896 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1898 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1904 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1906 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1912 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1914 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1926 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1928 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1934 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1936 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1943 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1944 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1949 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1950 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1955 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1956 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1961 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1963 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1969 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1971 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1977 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1979 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1985 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1987 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1993 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1995 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2001 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:2002 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:2007 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:2009 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:2015 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:2016 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2021 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2022 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2027 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2029 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2035 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2037 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2043 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2044 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2049 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2051 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2059 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2060 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2066 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2067 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2073 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2074 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2080 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2081 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2087 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2088 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2094 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2095 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2101 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2102 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2107 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2109 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2115 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2117 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2123 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2125 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2131 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2133 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2140 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2141 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2146 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2147 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2159 common/models.py:2539 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2202 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2210 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2211 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2216 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2217 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2222 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2223 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2228 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2229 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2234 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2235 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2240 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2241 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2246 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2247 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2252 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2253 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2258 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2259 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2264 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2265 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2270 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2271 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2276 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2277 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2282 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2283 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2288 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2289 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2294 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2295 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2300 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2301 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2306 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2307 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2312 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2313 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2318 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2320 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2326 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2328 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2334 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2336 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2342 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2343 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2348 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2349 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2354 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2355 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2360 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2361 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2366 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2367 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2372 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2373 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2378 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2380 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2386 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2387 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2392 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2393 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2398 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2399 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2404 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2405 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2410 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2412 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2418 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2419 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2424 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2426 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2432 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2433 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2438 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2440 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2446 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2448 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2454 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2455 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2460 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2461 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2466 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2467 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2472 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2473 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2478 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2479 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2484 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2485 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2498 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2499 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2504 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2506 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2512 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2514 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2520 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2521 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2526 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2527 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2547 common/models.py:2548 common/models.py:2705 -#: common/models.py:2706 common/models.py:2951 common/models.py:2952 -#: common/models.py:3278 common/models.py:3279 importer/models.py:88 -#: part/models.py:3274 part/models.py:3361 part/models.py:3435 -#: part/models.py:3463 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2570 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2577 company/serializers.py:508 order/admin.py:42 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 #: order/models.py:1365 order/models.py:2316 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2578 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2682 common/models.py:2867 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2683 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2693 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2697 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2713 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2714 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2722 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2723 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2831 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2832 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2840 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2841 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2849 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2850 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2857 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2858 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2868 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2873 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2874 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3000 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:3002 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3004 common/models.py:3262 company/models.py:149 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 #: company/models.py:446 company/models.py:512 company/models.py:818 #: order/models.py:303 order/models.py:1320 order/models.py:1752 -#: part/admin.py:55 part/models.py:1030 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:3006 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3008 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3010 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3013 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:3013 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3030 company/models.py:159 part/models.py:1040 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: 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 @@ -3769,94 +3783,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3030 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3042 common/models.py:3246 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3046 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3068 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3089 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3104 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3123 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3130 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3131 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3137 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3138 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3196 common/models.py:3253 stock/models.py:2483 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3208 +#: common/models.py:3210 msgid "Missing file" msgstr "" -#: common/models.py:3209 +#: common/models.py:3211 msgid "Missing external link" msgstr "" -#: common/models.py:3254 +#: common/models.py:3256 msgid "Select file to attach" msgstr "" -#: common/models.py:3269 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3270 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3286 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3287 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3291 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3291 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3329 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3966,27 +3980,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4244,7 +4258,7 @@ msgstr "" msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:775 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4256,13 +4270,13 @@ msgstr "" #: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" @@ -4272,12 +4286,12 @@ msgstr "" #: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" @@ -4298,9 +4312,9 @@ msgid "Parameter name" msgstr "" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2475 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" @@ -4309,10 +4323,10 @@ msgid "Parameter value" msgstr "" #: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1120 part/models.py:3738 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" @@ -4322,12 +4336,12 @@ msgstr "" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:786 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" @@ -4345,17 +4359,17 @@ msgstr "" #: company/models.py:789 company/templates/company/company_base.html:87 #: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" @@ -4363,7 +4377,7 @@ msgstr "" msgid "Select supplier" msgstr "" -#: company/models.py:796 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" @@ -4384,7 +4398,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4255 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4396,22 +4410,22 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:844 part/models.py:2084 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "" -#: company/models.py:845 part/models.py:2085 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:806 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "" @@ -4420,12 +4434,12 @@ msgid "Part packaging" msgstr "" #: company/models.py:858 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" @@ -4433,7 +4447,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:879 part/models.py:2091 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "" @@ -4465,7 +4479,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4476,8 +4490,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4537,15 +4551,15 @@ msgstr "" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:828 -#: stock/models.py:829 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4595,7 +4609,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4608,7 +4622,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4622,7 +4636,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4645,7 +4659,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4717,7 +4731,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4743,7 +4757,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4752,12 +4766,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4768,7 +4782,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4800,7 +4814,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4834,11 +4848,11 @@ msgid "No supplier information available" msgstr "" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4847,13 +4861,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4888,16 +4902,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1011 stock/serializers.py:1189 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5011,7 +5025,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3918 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "" @@ -5212,7 +5226,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" @@ -5225,7 +5239,7 @@ msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5254,11 +5268,11 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" @@ -5267,7 +5281,7 @@ msgstr "" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5332,7 +5346,7 @@ msgid "Company from which the items are being ordered" msgstr "" #: order/models.py:503 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" @@ -5455,12 +5469,12 @@ msgid "Supplier part" msgstr "" #: order/models.py:1446 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" @@ -5468,9 +5482,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1455 stock/models.py:947 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" @@ -5543,7 +5557,7 @@ msgid "User who checked this shipment" msgstr "" #: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" @@ -5620,7 +5634,7 @@ msgid "Sales order shipment reference" msgstr "" #: order/models.py:1967 order/models.py:2290 -#: templates/js/translated/return_order.js:721 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" @@ -5664,7 +5678,7 @@ msgstr "" msgid "The date this this return item was received" msgstr "" -#: order/models.py:2309 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" @@ -5721,7 +5735,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1006 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "" @@ -5758,7 +5772,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6065,12 +6079,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6184,8 +6198,8 @@ msgstr "" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6250,8 +6264,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6281,21 +6295,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1005 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1014 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:987 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6307,7 +6321,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6320,11 +6334,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:973 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1111 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6332,19 +6346,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3169 part/models.py:3183 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3176 part/models.py:3190 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6356,19 +6370,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6385,13 +6399,17 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6429,7 +6447,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6485,12 +6503,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:997 part/models.py:3456 part/models.py:4013 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" @@ -6498,13 +6516,13 @@ msgstr "" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1050 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6513,784 +6531,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4014 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:180 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:163 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:164 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:492 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:495 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:500 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:538 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:586 part/models.py:593 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:605 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:668 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:676 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:683 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:690 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:697 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:704 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:710 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:789 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:890 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:899 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:909 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:924 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:956 part/models.py:4069 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "" -#: part/models.py:961 +#: part/models.py:988 msgid "Is Template" msgstr "" -#: part/models.py:962 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "" -#: part/models.py:972 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:980 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "" -#: part/models.py:988 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:998 +#: part/models.py:1025 msgid "Part category" msgstr "" -#: part/models.py:1013 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "" -#: part/models.py:1023 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1024 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1048 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1094 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1095 +#: part/models.py:1122 msgid "Default supplier part" msgstr "" -#: part/models.py:1102 +#: part/models.py:1129 msgid "Default Expiry" msgstr "" -#: part/models.py:1103 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1112 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1121 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1128 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1134 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1140 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1146 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1152 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1156 +#: part/models.py:1183 msgid "Is this part active?" msgstr "" -#: part/models.py:1161 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1188 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1162 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1168 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1174 +#: part/models.py:1201 msgid "BOM checksum" msgstr "" -#: part/models.py:1175 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1183 +#: part/models.py:1210 msgid "BOM checked by" msgstr "" -#: part/models.py:1188 +#: part/models.py:1215 msgid "BOM checked date" msgstr "" -#: part/models.py:1204 +#: part/models.py:1231 msgid "Creation User" msgstr "" -#: part/models.py:1214 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1219 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2092 +#: part/models.py:2119 msgid "Sell multiple" msgstr "" -#: part/models.py:3083 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3099 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3100 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3106 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3107 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3113 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3114 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3120 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3121 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3127 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3128 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3134 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3135 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3141 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3142 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3148 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3149 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3155 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3156 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3162 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3163 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3170 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3177 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3184 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3191 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3197 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3198 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3204 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3205 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3211 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3212 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3218 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3219 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3238 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "" -#: part/models.py:3243 +#: part/models.py:3270 msgid "Item Count" msgstr "" -#: part/models.py:3244 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3252 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3256 part/models.py:3339 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" -#: part/models.py:3257 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3265 +#: part/models.py:3292 msgid "Additional notes" msgstr "" -#: part/models.py:3275 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3281 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3282 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3288 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3289 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3345 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3346 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3351 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3352 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3362 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3372 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3484 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3510 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3531 part/models.py:3700 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "" -#: part/models.py:3542 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3553 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3570 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3571 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3577 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3578 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3585 +#: part/models.py:3612 msgid "Test Description" msgstr "" -#: part/models.py:3586 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "" -#: part/models.py:3590 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" -#: part/models.py:3590 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3595 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3622 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" -#: part/models.py:3596 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3601 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3602 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3607 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3609 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3615 part/models.py:3759 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3616 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3648 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3675 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3680 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3717 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3732 +#: part/models.py:3759 msgid "Parameter Name" msgstr "" -#: part/models.py:3739 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3747 +#: part/models.py:3774 msgid "Parameter description" msgstr "" -#: part/models.py:3753 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3780 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3754 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3760 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3794 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3820 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3856 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3905 +#: part/models.py:3932 msgid "Parent Part" msgstr "" -#: part/models.py:3913 part/models.py:4021 part/models.py:4022 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3919 +#: part/models.py:3946 msgid "Parameter Value" msgstr "" -#: part/models.py:3969 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4028 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4029 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4067 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "" -#: part/models.py:4068 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "" -#: part/models.py:4070 +#: part/models.py:4097 msgid "Part IPN value" msgstr "" -#: part/models.py:4071 +#: part/models.py:4098 msgid "Level" msgstr "" -#: part/models.py:4071 +#: part/models.py:4098 msgid "BOM level" msgstr "" -#: part/models.py:4182 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4189 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4199 +#: part/models.py:4226 msgid "Select parent part" msgstr "" -#: part/models.py:4209 +#: part/models.py:4236 msgid "Sub part" msgstr "" -#: part/models.py:4210 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4221 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4227 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4233 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4240 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4241 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4248 +#: part/models.py:4275 msgid "BOM item reference" msgstr "" -#: part/models.py:4256 +#: part/models.py:4283 msgid "BOM item notes" msgstr "" -#: part/models.py:4262 +#: part/models.py:4289 msgid "Checksum" msgstr "" -#: part/models.py:4263 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "" -#: part/models.py:4268 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4269 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4274 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4275 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4281 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4366 stock/models.py:673 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4376 part/models.py:4378 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4516 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4537 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4550 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "" -#: part/models.py:4558 +#: part/models.py:4585 msgid "Substitute part" msgstr "" -#: part/models.py:4574 +#: part/models.py:4601 msgid "Part 1" msgstr "" -#: part/models.py:4582 +#: part/models.py:4609 msgid "Part 2" msgstr "" -#: part/models.py:4583 +#: part/models.py:4610 msgid "Select Related Part" msgstr "" -#: part/models.py:4602 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4607 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "" @@ -7298,338 +7317,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7675,65 +7714,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7781,7 +7820,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7793,101 +7832,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7946,7 +7989,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7956,7 +7999,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7968,7 +8011,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8036,7 +8079,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8125,13 +8168,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8167,7 +8210,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8177,7 +8220,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8249,9 +8292,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8359,7 +8402,7 @@ msgid "Model instance not found" msgstr "" #: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1469 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" @@ -8403,7 +8446,7 @@ msgstr "" msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" @@ -8811,7 +8854,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -8979,7 +9022,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9107,7 +9150,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9209,7 +9252,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9222,8 +9265,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9240,11 +9285,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2469 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9270,24 +9315,24 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:231 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:256 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:297 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9295,8 +9340,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9328,7 +9373,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:813 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9353,9 +9398,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:907 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9371,7 +9416,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9421,316 +9466,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:795 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:173 stock/models.py:956 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:174 stock/models.py:957 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:182 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:189 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:190 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:196 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:200 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:267 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:652 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:679 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:696 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:706 stock/models.py:719 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:709 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:731 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:736 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:749 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:765 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:777 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:787 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:799 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:807 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:818 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:837 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:851 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:856 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:866 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:869 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:876 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:879 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:892 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:898 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:909 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:927 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:928 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:948 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:979 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1499 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1505 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1513 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1519 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1524 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1532 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1629 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1651 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1654 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1660 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1670 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1674 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1682 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1687 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1948 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2329 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2362 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2402 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2440 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2469 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2476 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2484 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2488 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2496 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2497 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2503 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2504 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2510 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2511 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9840,7 +9885,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "" @@ -9864,8 +9909,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "" @@ -9889,106 +9934,110 @@ msgstr "" msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 -msgid "Select part to convert stock item into" -msgstr "" - -#: stock/serializers.py:897 -msgid "Selected part is not a valid option for conversion" +#: stock/serializers.py:900 +msgid "Unsupported statistic type: " msgstr "" #: stock/serializers.py:914 +msgid "Select part to convert stock item into" +msgstr "" + +#: stock/serializers.py:927 +msgid "Selected part is not a valid option for conversion" +msgstr "" + +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1114 stock/serializers.py:1191 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "" @@ -10020,7 +10069,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10076,7 +10125,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10096,7 +10145,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10157,7 +10206,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10165,7 +10214,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10178,8 +10227,8 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10188,17 +10237,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10207,12 +10256,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10253,7 +10302,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10266,7 +10315,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10311,7 +10360,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10338,7 +10387,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10370,7 +10419,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10382,84 +10431,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10835,7 +10884,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10845,7 +10894,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10948,9 +10997,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -10971,7 +11020,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10990,12 +11039,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -11003,40 +11052,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11373,7 +11422,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11628,7 +11677,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11642,7 +11691,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11807,7 +11856,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11997,7 +12046,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -12017,30 +12066,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12072,7 +12121,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12120,13 +12169,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12178,13 +12227,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12192,288 +12241,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12620,7 +12669,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12637,34 +12686,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12718,45 +12767,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12798,39 +12847,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12915,7 +12964,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12964,7 +13013,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12980,358 +13029,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13545,7 +13595,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13593,73 +13643,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13714,16 +13764,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13882,7 +13932,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13940,517 +13990,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14485,12 +14539,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14532,7 +14586,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14633,56 +14687,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14955,6 +15017,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" diff --git a/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po index 7b6bcdb787..78ec87d9a8 100644 --- a/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:37\n" "Last-Translator: \n" "Language-Team: Spanish, Mexico\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "Ingrese la fecha" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "Ingrese la fecha" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "Ingrese la fecha" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Notas" @@ -91,47 +92,53 @@ msgstr "" msgid "Provided value does not match required pattern: " msgstr "El valor proporcionado no coincide con el patrón requerido: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Ingresa tu contraseña" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Ingrese su nueva contraseña" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Confirma la contraseña" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Confirma la nueva contraseña" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Contraseña anterior" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "Email (de nuevo)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Confirmación de correo electrónico" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "El correo electrónico debe coincidir." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +#, fuzzy +#| msgid "Registration is disabled." +msgid "MFA Registration is disabled." +msgstr "El registro ha sido desactivado." + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "La dirección de correo electrónico principal proporcionada no es válida." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "El dominio de correo electrónico proporcionado no está aprobado." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "El registro ha sido desactivado." @@ -417,7 +424,7 @@ msgstr "Selección no válida" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +437,7 @@ msgstr "Selección no válida" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Nombre" @@ -446,7 +453,7 @@ msgstr "Nombre" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +473,17 @@ msgstr "Nombre" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Descripción" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Descripción (opcional)" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Ruta" @@ -573,10 +580,10 @@ msgstr "" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -730,7 +737,7 @@ msgstr "" #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" @@ -739,19 +746,19 @@ msgstr "" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" @@ -765,7 +772,7 @@ msgstr "" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" @@ -774,7 +781,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" @@ -854,7 +861,7 @@ msgstr "" #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +873,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +898,10 @@ msgstr "" #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "" @@ -953,9 +960,9 @@ msgid "Build status code" msgstr "" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" @@ -1006,7 +1013,7 @@ msgstr "" #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" @@ -1020,14 +1027,14 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "" @@ -1082,8 +1089,8 @@ msgstr "" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" @@ -1146,9 +1153,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" @@ -1182,8 +1189,8 @@ msgid "Selected stock item does not match BOM line" msgstr "" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1201,8 @@ msgstr "" #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" @@ -1260,7 +1267,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" @@ -1271,8 +1278,8 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1289,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" @@ -1335,15 +1342,15 @@ msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" @@ -1443,7 +1450,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "" @@ -1537,7 +1544,7 @@ msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1554,7 @@ msgstr "" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" @@ -1576,7 +1583,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" @@ -1601,7 +1608,7 @@ msgid "Allocated Stock" msgstr "" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1616,13 @@ msgstr "" msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1646,7 @@ msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "" @@ -1685,7 +1692,7 @@ msgstr "" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1812,9 +1819,9 @@ msgstr "" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" @@ -1835,7 +1842,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" @@ -1893,8 +1900,8 @@ msgstr "" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1921,7 @@ msgstr "" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +1994,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2008,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,6 +2048,11 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + #: common/api.py:692 msgid "Is Link" msgstr "" @@ -2470,7 +2486,7 @@ msgstr "" #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" @@ -2479,9 +2495,9 @@ msgid "Parts are templates by default" msgstr "" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" @@ -2490,7 +2506,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" @@ -2507,7 +2523,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" @@ -2522,7 +2538,7 @@ msgstr "" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" @@ -3615,7 +3631,7 @@ msgstr "" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "" @@ -3812,7 +3828,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4259,7 @@ msgstr "" msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4277,7 @@ msgstr "" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" @@ -4297,9 +4313,9 @@ msgid "Parameter name" msgstr "" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" @@ -4321,12 +4337,12 @@ msgstr "" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" @@ -4354,7 +4370,7 @@ msgstr "" #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" @@ -4404,13 +4420,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "" @@ -4536,15 +4552,15 @@ msgstr "" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4594,7 +4610,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4607,7 +4623,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4621,7 +4637,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4660,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4732,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4751,12 +4767,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4815,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4852,7 +4868,7 @@ msgstr "" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4890,13 +4906,13 @@ msgstr "" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5224,7 +5240,7 @@ msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5257,7 +5273,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" @@ -5266,7 +5282,7 @@ msgstr "" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5459,7 +5475,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" @@ -5467,9 +5483,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" @@ -5757,7 +5773,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6069,7 +6085,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6250,7 +6266,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6283,7 +6299,7 @@ msgstr "" #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" @@ -6531,8 +6547,8 @@ msgstr "" msgid "Default location for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6566,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" @@ -6732,7 +6748,7 @@ msgid "Is this part active?" msgstr "" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6950,7 @@ msgstr "" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" @@ -7036,7 +7052,7 @@ msgstr "" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" @@ -7045,7 +7061,7 @@ msgid "Is this test enabled?" msgstr "" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" @@ -7106,7 +7122,7 @@ msgid "Parameter description" msgstr "" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" @@ -7254,7 +7270,7 @@ msgstr "" msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -7352,7 +7368,7 @@ msgstr "" msgid "Copy image from original part" msgstr "" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" @@ -7554,80 +7570,102 @@ msgstr "" msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +#, fuzzy +#| msgid "Description" +msgid "Component Description" +msgstr "Descripción" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" @@ -7785,7 +7823,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7797,101 +7835,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8134,8 +8176,8 @@ msgstr "" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8181,7 +8223,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8815,7 +8857,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -9228,6 +9270,8 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9244,11 +9288,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9274,8 +9318,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" @@ -9332,7 +9376,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9357,9 +9401,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9375,7 +9419,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9425,316 +9469,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9844,7 +9888,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "" @@ -9868,8 +9912,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "" @@ -9893,106 +9937,110 @@ msgstr "" msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 -msgid "Select part to convert stock item into" -msgstr "" - -#: stock/serializers.py:897 -msgid "Selected part is not a valid option for conversion" +#: stock/serializers.py:900 +msgid "Unsupported statistic type: " msgstr "" #: stock/serializers.py:914 +msgid "Select part to convert stock item into" +msgstr "" + +#: stock/serializers.py:927 +msgid "Selected part is not a valid option for conversion" +msgstr "" + +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "" @@ -10024,7 +10072,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10080,7 +10128,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10100,7 +10148,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10161,7 +10209,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10169,7 +10217,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10183,7 +10231,7 @@ msgstr "" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10192,17 +10240,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10211,12 +10259,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10342,7 +10390,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10451,7 +10499,7 @@ msgid "New Location" msgstr "" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" @@ -10839,7 +10887,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10849,7 +10897,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10954,7 +11002,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -11811,7 +11859,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12124,13 +12172,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12391,7 +12439,7 @@ msgstr "" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" @@ -12399,7 +12447,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" @@ -12468,7 +12516,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" @@ -12722,45 +12770,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -13000,8 +13048,8 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" @@ -13126,7 +13174,7 @@ msgid "Copy Bill of Materials" msgstr "" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" @@ -13256,7 +13304,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" @@ -13268,7 +13316,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" @@ -13550,7 +13598,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13935,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13945,513 +13993,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14486,12 +14542,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14533,7 +14589,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14634,56 +14690,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14956,6 +15020,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" @@ -15059,4 +15131,3 @@ msgstr "" #: users/models.py:408 msgid "Permission to delete items" 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 5dcf87e43c..ae31f37202 100644 --- a/src/backend/InvenTree/locale/es_MX/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/es_MX/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-22 10:29+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -57,8 +57,8 @@ msgstr "" msgid "Enter date" msgstr "" -#: InvenTree/fields.py:205 InvenTree/models.py:919 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -66,20 +66,21 @@ msgstr "" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3264 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2361 stock/models.py:2488 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "" @@ -92,47 +93,51 @@ msgstr "" msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "" -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "" @@ -407,118 +412,118 @@ msgstr "" msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:720 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:737 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:767 common/models.py:2692 common/models.py:3122 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:956 part/models.py:3731 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "" -#: InvenTree/models.py:773 build/models.py:249 +#: InvenTree/models.py:776 build/models.py:249 #: build/templates/build/detail.html:24 common/models.py:156 #: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1348 part/admin.py:305 part/admin.py:408 part/models.py:979 -#: part/models.py:3746 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "" -#: InvenTree/models.py:774 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:789 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" -#: InvenTree/models.py:919 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1025 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1068 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1069 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4354 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3082 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -568,16 +573,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2697 company/models.py:163 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 #: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1156 plugin/models.py:66 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -663,7 +668,7 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -727,32 +732,32 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4232 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4226 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" @@ -760,13 +765,13 @@ msgstr "" #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" @@ -775,7 +780,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" @@ -820,16 +825,16 @@ msgstr "" #: build/models.py:241 build/serializers.py:1233 order/models.py:468 #: order/models.py:945 order/models.py:1308 order/models.py:2070 -#: part/admin.py:411 part/models.py:4247 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" @@ -851,11 +856,11 @@ msgstr "" #: build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 #: order/models.py:1438 order/models.py:1593 order/models.py:1594 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3093 -#: part/models.py:3237 part/models.py:3385 part/models.py:3406 -#: part/models.py:3428 part/models.py:3564 part/models.py:3904 -#: part/models.py:4067 part/models.py:4198 part/models.py:4557 -#: part/serializers.py:1182 part/serializers.py:1812 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -867,35 +872,35 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "" @@ -912,7 +917,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "" #: build/models.py:288 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" @@ -954,9 +959,9 @@ msgid "Build status code" msgstr "" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:847 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" @@ -965,7 +970,7 @@ msgid "Batch code for this build output" msgstr "" #: build/models.py:338 order/models.py:316 order/serializers.py:127 -#: part/models.py:1196 part/templates/part/part_base.html:319 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" @@ -980,7 +985,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "" #: build/models.py:346 order/models.py:526 order/models.py:2115 -#: templates/js/translated/build.js:2422 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" @@ -988,7 +993,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:360 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" @@ -1000,14 +1005,14 @@ msgstr "" #: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1213 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" @@ -1021,14 +1026,14 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:843 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:376 common/models.py:3263 part/models.py:1031 -#: stock/models.py:843 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:855 msgid "Link to external URL" msgstr "" @@ -1043,8 +1048,8 @@ msgstr "" #: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1083,8 +1088,8 @@ msgstr "" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:688 stock/models.py:1508 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" @@ -1108,10 +1113,10 @@ msgstr "" #: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2569 +#: build/templates/build/detail.html:34 common/models.py:2571 #: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3251 part/models.py:4220 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1128,28 +1133,28 @@ msgstr "" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" @@ -1183,20 +1188,20 @@ msgid "Selected stock item does not match BOM line" msgstr "" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:364 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" @@ -1217,7 +1222,7 @@ msgid "Destination stock item" msgstr "" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4069 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" @@ -1227,7 +1232,7 @@ msgid "Project Code Label" msgstr "" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" @@ -1261,7 +1266,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" @@ -1271,21 +1276,21 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" @@ -1336,15 +1341,15 @@ msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" @@ -1444,7 +1449,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "" @@ -1527,34 +1532,34 @@ msgid "BOM Reference" msgstr "" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4068 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4070 +#: part/models.py:4097 msgid "Part IPN" msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:833 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 msgid "Allocated Quantity" msgstr "" @@ -1575,9 +1580,9 @@ msgid "Part Category Name" msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 -#: part/models.py:1139 templates/js/translated/table_filters.js:147 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" @@ -1585,13 +1590,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4280 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4077 part/models.py:4549 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "" @@ -1601,22 +1606,22 @@ msgstr "" msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1634,13 +1639,13 @@ msgstr "" msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "" @@ -1685,8 +1690,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1697,7 +1702,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1708,7 +1713,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1721,7 +1726,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1792,11 +1797,11 @@ msgstr "" #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1813,9 +1818,9 @@ msgstr "" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" @@ -1836,7 +1841,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" @@ -1848,7 +1853,7 @@ msgid "Issued By" msgstr "" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" @@ -1877,7 +1882,7 @@ msgid "Stock can be taken from any available location." msgstr "" #: build/templates/build/detail.html:49 order/models.py:1467 -#: templates/js/translated/purchase_order.js:2260 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1891,11 +1896,11 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1905,7 +1910,7 @@ msgstr "" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -1915,7 +1920,7 @@ msgstr "" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1988,7 +1993,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1998,25 +2007,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2038,15 +2047,20 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2238,8 +2252,8 @@ msgstr "" #: common/models.py:1295 common/models.py:1351 common/models.py:1364 #: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1626 common/models.py:1648 common/models.py:1763 -#: common/models.py:2136 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" @@ -2467,11 +2481,11 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1483 part/admin.py:108 part/models.py:3912 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" @@ -2479,10 +2493,10 @@ msgstr "" msgid "Parts are templates by default" msgstr "" -#: common/models.py:1489 part/admin.py:91 part/admin.py:425 part/models.py:1127 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" @@ -2490,8 +2504,8 @@ msgstr "" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1495 part/admin.py:95 part/models.py:1133 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" @@ -2499,7 +2513,7 @@ msgstr "" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1501 part/admin.py:100 part/models.py:1145 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "" @@ -2507,8 +2521,8 @@ msgstr "" msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1507 part/admin.py:104 part/models.py:1151 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" @@ -2520,10 +2534,10 @@ msgstr "" msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1519 part/admin.py:117 part/models.py:1167 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" @@ -2555,7 +2569,7 @@ msgstr "" msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1543 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" @@ -2579,1187 +2593,1187 @@ msgstr "" msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1563 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1565 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1571 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1573 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1584 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1586 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1597 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1599 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1605 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1607 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1613 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1615 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1621 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1623 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1630 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1631 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1636 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1638 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1644 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1646 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1653 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1654 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1659 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1661 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1667 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1668 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1673 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1675 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1681 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1682 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1687 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1688 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1693 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1694 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1699 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1700 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1705 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1706 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1711 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1713 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1719 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1720 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1725 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1726 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1731 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1733 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1739 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1741 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1746 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1747 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1752 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1753 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1758 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1760 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1767 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1768 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1773 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1774 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1779 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1780 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1784 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1785 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1790 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1792 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1798 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1800 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1806 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1808 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1814 common/models.py:1862 common/models.py:1884 -#: common/models.py:1920 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1815 common/models.py:1863 common/models.py:1885 -#: common/models.py:1921 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1820 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1821 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1826 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1827 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1832 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1834 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1840 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1842 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1848 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1849 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1854 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1856 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1868 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1870 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1876 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1878 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1890 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1891 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1896 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1898 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1904 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1906 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1912 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1914 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1926 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1928 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1934 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1936 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1943 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1944 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1949 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1950 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1955 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1956 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1961 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1963 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1969 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1971 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1977 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1979 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1985 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1987 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1993 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1995 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2001 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:2002 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:2007 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:2009 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:2015 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:2016 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2021 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2022 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2027 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2029 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2035 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2037 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2043 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2044 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2049 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2051 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2059 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2060 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2066 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2067 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2073 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2074 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2080 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2081 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2087 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2088 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2094 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2095 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2101 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2102 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2107 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2109 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2115 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2117 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2123 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2125 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2131 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2133 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2140 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2141 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2146 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2147 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2159 common/models.py:2539 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2202 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2210 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2211 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2216 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2217 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2222 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2223 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2228 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2229 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2234 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2235 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2240 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2241 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2246 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2247 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2252 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2253 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2258 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2259 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2264 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2265 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2270 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2271 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2276 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2277 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2282 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2283 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2288 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2289 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2294 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2295 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2300 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2301 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2306 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2307 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2312 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2313 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2318 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2320 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2326 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2328 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2334 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2336 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2342 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2343 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2348 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2349 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2354 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2355 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2360 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2361 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2366 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2367 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2372 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2373 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2378 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2380 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2386 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2387 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2392 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2393 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2398 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2399 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2404 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2405 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2410 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2412 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2418 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2419 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2424 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2426 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2432 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2433 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2438 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2440 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2446 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2448 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2454 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2455 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2460 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2461 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2466 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2467 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2472 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2473 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2478 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2479 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2484 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2485 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2498 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2499 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2504 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2506 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2512 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2514 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2520 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2521 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2526 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2527 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2547 common/models.py:2548 common/models.py:2705 -#: common/models.py:2706 common/models.py:2951 common/models.py:2952 -#: common/models.py:3278 common/models.py:3279 importer/models.py:88 -#: part/models.py:3274 part/models.py:3361 part/models.py:3435 -#: part/models.py:3463 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2570 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2577 company/serializers.py:508 order/admin.py:42 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 #: order/models.py:1365 order/models.py:2316 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2578 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2682 common/models.py:2867 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2683 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2693 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2697 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2713 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2714 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2722 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2723 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2831 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2832 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2840 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2841 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2849 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2850 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2857 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2858 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2868 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2873 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2874 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3000 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:3002 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3004 common/models.py:3262 company/models.py:149 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 #: company/models.py:446 company/models.py:512 company/models.py:818 #: order/models.py:303 order/models.py:1320 order/models.py:1752 -#: part/admin.py:55 part/models.py:1030 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:3006 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3008 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3010 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3013 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:3013 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3030 company/models.py:159 part/models.py:1040 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: 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 @@ -3769,94 +3783,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3030 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3042 common/models.py:3246 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3046 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3068 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3089 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3104 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3123 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3130 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3131 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3137 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3138 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3196 common/models.py:3253 stock/models.py:2483 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3208 +#: common/models.py:3210 msgid "Missing file" msgstr "" -#: common/models.py:3209 +#: common/models.py:3211 msgid "Missing external link" msgstr "" -#: common/models.py:3254 +#: common/models.py:3256 msgid "Select file to attach" msgstr "" -#: common/models.py:3269 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3270 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3286 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3287 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3291 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3291 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3329 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3966,27 +3980,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4244,7 +4258,7 @@ msgstr "" msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:775 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4256,13 +4270,13 @@ msgstr "" #: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" @@ -4272,12 +4286,12 @@ msgstr "" #: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" @@ -4298,9 +4312,9 @@ msgid "Parameter name" msgstr "" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2475 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" @@ -4309,10 +4323,10 @@ msgid "Parameter value" msgstr "" #: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1120 part/models.py:3738 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" @@ -4322,12 +4336,12 @@ msgstr "" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:786 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" @@ -4345,17 +4359,17 @@ msgstr "" #: company/models.py:789 company/templates/company/company_base.html:87 #: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" @@ -4363,7 +4377,7 @@ msgstr "" msgid "Select supplier" msgstr "" -#: company/models.py:796 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" @@ -4384,7 +4398,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4255 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4396,22 +4410,22 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:844 part/models.py:2084 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "" -#: company/models.py:845 part/models.py:2085 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:806 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "" @@ -4420,12 +4434,12 @@ msgid "Part packaging" msgstr "" #: company/models.py:858 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" @@ -4433,7 +4447,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:879 part/models.py:2091 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "" @@ -4465,7 +4479,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4476,8 +4490,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4537,15 +4551,15 @@ msgstr "" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:828 -#: stock/models.py:829 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4595,7 +4609,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4608,7 +4622,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4622,7 +4636,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4645,7 +4659,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4717,7 +4731,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4743,7 +4757,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4752,12 +4766,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4768,7 +4782,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4800,7 +4814,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4834,11 +4848,11 @@ msgid "No supplier information available" msgstr "" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4847,13 +4861,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4888,16 +4902,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1011 stock/serializers.py:1189 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5011,7 +5025,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3918 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "" @@ -5212,7 +5226,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" @@ -5225,7 +5239,7 @@ msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5254,11 +5268,11 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" @@ -5267,7 +5281,7 @@ msgstr "" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5332,7 +5346,7 @@ msgid "Company from which the items are being ordered" msgstr "" #: order/models.py:503 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" @@ -5455,12 +5469,12 @@ msgid "Supplier part" msgstr "" #: order/models.py:1446 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" @@ -5468,9 +5482,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1455 stock/models.py:947 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" @@ -5543,7 +5557,7 @@ msgid "User who checked this shipment" msgstr "" #: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" @@ -5620,7 +5634,7 @@ msgid "Sales order shipment reference" msgstr "" #: order/models.py:1967 order/models.py:2290 -#: templates/js/translated/return_order.js:721 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" @@ -5664,7 +5678,7 @@ msgstr "" msgid "The date this this return item was received" msgstr "" -#: order/models.py:2309 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" @@ -5721,7 +5735,7 @@ msgstr "" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1006 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "" @@ -5758,7 +5772,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6065,12 +6079,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6184,8 +6198,8 @@ msgstr "" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6250,8 +6264,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6281,21 +6295,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1005 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1014 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:987 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6307,7 +6321,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6320,11 +6334,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:973 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1111 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6332,19 +6346,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3169 part/models.py:3183 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3176 part/models.py:3190 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6356,19 +6370,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6385,13 +6399,17 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6429,7 +6447,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 msgid "Parent" msgstr "" @@ -6485,12 +6503,12 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:997 part/models.py:3456 part/models.py:4013 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" @@ -6498,13 +6516,13 @@ msgstr "" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1050 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6513,784 +6531,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4014 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:180 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:163 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:164 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:492 +#: part/models.py:519 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:495 +#: part/models.py:522 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:500 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:538 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:586 part/models.py:593 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:605 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:668 +#: part/models.py:695 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:676 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:683 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:690 +#: part/models.py:717 msgid "Revision code must be specified" msgstr "" -#: part/models.py:697 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:704 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:710 +#: part/models.py:737 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:789 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:890 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:899 +#: part/models.py:926 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:909 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:924 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:956 part/models.py:4069 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "" -#: part/models.py:961 +#: part/models.py:988 msgid "Is Template" msgstr "" -#: part/models.py:962 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "" -#: part/models.py:972 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:980 +#: part/models.py:1007 msgid "Part description (optional)" msgstr "" -#: part/models.py:988 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:998 +#: part/models.py:1025 msgid "Part category" msgstr "" -#: part/models.py:1013 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "" -#: part/models.py:1023 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1024 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1048 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1094 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1095 +#: part/models.py:1122 msgid "Default supplier part" msgstr "" -#: part/models.py:1102 +#: part/models.py:1129 msgid "Default Expiry" msgstr "" -#: part/models.py:1103 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1112 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1121 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1128 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1134 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1140 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1146 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1152 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1156 +#: part/models.py:1183 msgid "Is this part active?" msgstr "" -#: part/models.py:1161 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1188 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1162 +#: part/models.py:1189 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1168 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1174 +#: part/models.py:1201 msgid "BOM checksum" msgstr "" -#: part/models.py:1175 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1183 +#: part/models.py:1210 msgid "BOM checked by" msgstr "" -#: part/models.py:1188 +#: part/models.py:1215 msgid "BOM checked date" msgstr "" -#: part/models.py:1204 +#: part/models.py:1231 msgid "Creation User" msgstr "" -#: part/models.py:1214 +#: part/models.py:1241 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1219 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2092 +#: part/models.py:2119 msgid "Sell multiple" msgstr "" -#: part/models.py:3083 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3099 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3100 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3106 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3107 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3113 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3114 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3120 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3121 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3127 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3128 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3134 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3135 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3141 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3142 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3148 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3149 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3155 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3156 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3162 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3163 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3170 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3177 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3184 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3191 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3197 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3198 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3204 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3205 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3211 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3212 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3218 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3219 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3238 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "" -#: part/models.py:3243 +#: part/models.py:3270 msgid "Item Count" msgstr "" -#: part/models.py:3244 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3252 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3256 part/models.py:3339 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" -#: part/models.py:3257 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3265 +#: part/models.py:3292 msgid "Additional notes" msgstr "" -#: part/models.py:3275 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3281 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3282 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3288 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3289 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3345 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3346 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3351 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3352 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3362 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3372 +#: part/models.py:3399 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3484 +#: part/models.py:3511 msgid "Part Test Template" msgstr "" -#: part/models.py:3510 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3531 part/models.py:3700 +#: part/models.py:3558 part/models.py:3727 msgid "Choices must be unique" msgstr "" -#: part/models.py:3542 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3553 +#: part/models.py:3580 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3570 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3571 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3577 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3578 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3585 +#: part/models.py:3612 msgid "Test Description" msgstr "" -#: part/models.py:3586 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "" -#: part/models.py:3590 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" -#: part/models.py:3590 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3595 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3622 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" -#: part/models.py:3596 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3601 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3602 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3607 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3609 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3615 part/models.py:3759 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3616 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3648 +#: part/models.py:3675 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3675 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3680 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3717 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3732 +#: part/models.py:3759 msgid "Parameter Name" msgstr "" -#: part/models.py:3739 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3747 +#: part/models.py:3774 msgid "Parameter description" msgstr "" -#: part/models.py:3753 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3780 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3754 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3760 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3794 +#: part/models.py:3821 msgid "Part Parameter" msgstr "" -#: part/models.py:3820 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3856 +#: part/models.py:3883 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3905 +#: part/models.py:3932 msgid "Parent Part" msgstr "" -#: part/models.py:3913 part/models.py:4021 part/models.py:4022 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3919 +#: part/models.py:3946 msgid "Parameter Value" msgstr "" -#: part/models.py:3969 +#: part/models.py:3996 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4028 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4029 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4067 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "" -#: part/models.py:4068 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "" -#: part/models.py:4070 +#: part/models.py:4097 msgid "Part IPN value" msgstr "" -#: part/models.py:4071 +#: part/models.py:4098 msgid "Level" msgstr "" -#: part/models.py:4071 +#: part/models.py:4098 msgid "BOM level" msgstr "" -#: part/models.py:4182 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4189 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4199 +#: part/models.py:4226 msgid "Select parent part" msgstr "" -#: part/models.py:4209 +#: part/models.py:4236 msgid "Sub part" msgstr "" -#: part/models.py:4210 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4221 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4227 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4233 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4240 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4241 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4248 +#: part/models.py:4275 msgid "BOM item reference" msgstr "" -#: part/models.py:4256 +#: part/models.py:4283 msgid "BOM item notes" msgstr "" -#: part/models.py:4262 +#: part/models.py:4289 msgid "Checksum" msgstr "" -#: part/models.py:4263 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "" -#: part/models.py:4268 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4269 +#: part/models.py:4296 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4274 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4275 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4281 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4366 stock/models.py:673 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4376 part/models.py:4378 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4516 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4537 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4550 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "" -#: part/models.py:4558 +#: part/models.py:4585 msgid "Substitute part" msgstr "" -#: part/models.py:4574 +#: part/models.py:4601 msgid "Part 1" msgstr "" -#: part/models.py:4582 +#: part/models.py:4609 msgid "Part 2" msgstr "" -#: part/models.py:4583 +#: part/models.py:4610 msgid "Select Related Part" msgstr "" -#: part/models.py:4602 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4607 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "" @@ -7298,338 +7317,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7675,65 +7714,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7781,7 +7820,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7793,101 +7832,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7946,7 +7989,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7956,7 +7999,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7968,7 +8011,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8036,7 +8079,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8125,13 +8168,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8167,7 +8210,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8177,7 +8220,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8249,9 +8292,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8359,7 +8402,7 @@ msgid "Model instance not found" msgstr "" #: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1469 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" @@ -8403,7 +8446,7 @@ msgstr "" msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" @@ -8811,7 +8854,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -8979,7 +9022,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9107,7 +9150,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9209,7 +9252,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9222,8 +9265,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9240,11 +9285,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2469 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9270,24 +9315,24 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:231 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:256 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:297 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9295,8 +9340,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9328,7 +9373,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:813 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9353,9 +9398,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:907 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9371,7 +9416,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9421,316 +9466,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:795 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:173 stock/models.py:956 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:174 stock/models.py:957 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:182 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:189 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:190 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:196 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:200 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:267 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:652 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:679 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:696 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:706 stock/models.py:719 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:709 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:731 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:736 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:749 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:765 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:777 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:787 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:799 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:807 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:818 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:837 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:851 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:856 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:866 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:869 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:876 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:879 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:892 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:898 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:909 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:927 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:928 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:948 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:979 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1499 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1505 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1513 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1519 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1524 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1532 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1629 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1651 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1654 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1660 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1670 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1674 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1682 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1687 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1948 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2329 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2362 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2402 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2440 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2469 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2476 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2484 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2488 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2496 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2497 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2503 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2504 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2510 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2511 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9840,7 +9885,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "" @@ -9864,8 +9909,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "" @@ -9889,106 +9934,110 @@ msgstr "" msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 -msgid "Select part to convert stock item into" -msgstr "" - -#: stock/serializers.py:897 -msgid "Selected part is not a valid option for conversion" +#: stock/serializers.py:900 +msgid "Unsupported statistic type: " msgstr "" #: stock/serializers.py:914 +msgid "Select part to convert stock item into" +msgstr "" + +#: stock/serializers.py:927 +msgid "Selected part is not a valid option for conversion" +msgstr "" + +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1114 stock/serializers.py:1191 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "" @@ -10020,7 +10069,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10076,7 +10125,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10096,7 +10145,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10157,7 +10206,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10165,7 +10214,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10178,8 +10227,8 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10188,17 +10237,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10207,12 +10256,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10253,7 +10302,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10266,7 +10315,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10311,7 +10360,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10338,7 +10387,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10370,7 +10419,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10382,84 +10431,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10835,7 +10884,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10845,7 +10894,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10948,9 +10997,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -10971,7 +11020,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10990,12 +11039,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -11003,40 +11052,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11373,7 +11422,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11628,7 +11677,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11642,7 +11691,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11807,7 +11856,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11997,7 +12046,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -12017,30 +12066,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12072,7 +12121,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12120,13 +12169,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12178,13 +12227,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12192,288 +12241,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12620,7 +12669,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12637,34 +12686,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12718,45 +12767,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12798,39 +12847,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12915,7 +12964,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12964,7 +13013,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -12980,358 +13029,359 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13545,7 +13595,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13593,73 +13643,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13714,16 +13764,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13882,7 +13932,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13940,517 +13990,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14485,12 +14539,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14532,7 +14586,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14633,56 +14687,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14955,6 +15017,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" diff --git a/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po index 2195dc7356..eefc94c815 100644 --- a/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:37\n" "Last-Translator: \n" "Language-Team: Estonian\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Märkmed" @@ -91,47 +92,53 @@ msgstr "" msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Salasõna" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Sisesta uus parool" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Kinnitage parool" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Kinnita uut parooli" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Vana parool" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "Meili (uuesti)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "E-posti aadressi kinnitus" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "" -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +#, fuzzy +#| msgid "Registration is disabled." +msgid "MFA Registration is disabled." +msgstr "Registreerimine on ajutiselt väljalülitatud." + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Registreerimine on ajutiselt väljalülitatud." @@ -417,7 +424,7 @@ msgstr "" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +437,7 @@ msgstr "" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "" @@ -446,7 +453,7 @@ msgstr "" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +473,17 @@ msgstr "" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" @@ -573,10 +580,10 @@ msgstr "" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -730,7 +737,7 @@ msgstr "" #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" @@ -739,19 +746,19 @@ msgstr "" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" @@ -765,7 +772,7 @@ msgstr "" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" @@ -774,7 +781,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" @@ -854,7 +861,7 @@ msgstr "" #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +873,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +898,10 @@ msgstr "" #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "" @@ -953,9 +960,9 @@ msgid "Build status code" msgstr "" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" @@ -1006,7 +1013,7 @@ msgstr "" #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" @@ -1020,14 +1027,14 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "" @@ -1082,8 +1089,8 @@ msgstr "" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" @@ -1146,9 +1153,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" @@ -1182,8 +1189,8 @@ msgid "Selected stock item does not match BOM line" msgstr "" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1201,8 @@ msgstr "" #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" @@ -1260,7 +1267,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" @@ -1271,8 +1278,8 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1289,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" @@ -1335,15 +1342,15 @@ msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" @@ -1443,7 +1450,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "" @@ -1537,7 +1544,7 @@ msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1554,7 @@ msgstr "" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "Seerianumber" @@ -1576,7 +1583,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" @@ -1601,7 +1608,7 @@ msgid "Allocated Stock" msgstr "" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1616,13 @@ msgstr "" msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1646,7 @@ msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "Ootel" @@ -1685,7 +1692,7 @@ msgstr "" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1812,9 +1819,9 @@ msgstr "" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" @@ -1835,7 +1842,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" @@ -1893,8 +1900,8 @@ msgstr "" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1921,7 @@ msgstr "" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +1994,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2008,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,6 +2048,11 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + #: common/api.py:692 msgid "Is Link" msgstr "" @@ -2470,7 +2486,7 @@ msgstr "" #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" @@ -2479,9 +2495,9 @@ msgid "Parts are templates by default" msgstr "" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" @@ -2490,7 +2506,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" @@ -2507,7 +2523,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" @@ -2522,7 +2538,7 @@ msgstr "" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" @@ -3615,7 +3631,7 @@ msgstr "" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "" @@ -3812,7 +3828,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4259,7 @@ msgstr "" msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4277,7 @@ msgstr "" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" @@ -4297,9 +4313,9 @@ msgid "Parameter name" msgstr "" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" @@ -4321,12 +4337,12 @@ msgstr "" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" @@ -4354,7 +4370,7 @@ msgstr "" #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" @@ -4404,13 +4420,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "" @@ -4536,15 +4552,15 @@ msgstr "" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4594,7 +4610,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4607,7 +4623,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4621,7 +4637,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4660,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4732,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4751,12 +4767,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4815,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4852,7 +4868,7 @@ msgstr "" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4890,13 +4906,13 @@ msgstr "" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5224,7 +5240,7 @@ msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5257,7 +5273,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" @@ -5266,7 +5282,7 @@ msgstr "" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5459,7 +5475,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" @@ -5467,9 +5483,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" @@ -5757,7 +5773,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6069,7 +6085,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6250,7 +6266,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6283,7 +6299,7 @@ msgstr "" #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" @@ -6531,8 +6547,8 @@ msgstr "" msgid "Default location for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6566,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" @@ -6732,7 +6748,7 @@ msgid "Is this part active?" msgstr "" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6950,7 @@ msgstr "" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" @@ -7036,7 +7052,7 @@ msgstr "" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" @@ -7045,7 +7061,7 @@ msgid "Is this test enabled?" msgstr "" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" @@ -7106,7 +7122,7 @@ msgid "Parameter description" msgstr "" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" @@ -7254,7 +7270,7 @@ msgstr "" msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -7352,7 +7368,7 @@ msgstr "" msgid "Copy image from original part" msgstr "" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" @@ -7554,80 +7570,102 @@ msgstr "" msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +#, fuzzy +#| msgid "Complete" +msgid "Component Name" +msgstr "Valmis" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" @@ -7785,7 +7823,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7797,101 +7835,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8134,8 +8176,8 @@ msgstr "" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8181,7 +8223,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8815,7 +8857,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -9228,6 +9270,8 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9244,11 +9288,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9274,8 +9318,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" @@ -9332,7 +9376,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9357,9 +9401,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9375,7 +9419,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9425,316 +9469,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9844,7 +9888,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "" @@ -9868,8 +9912,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "" @@ -9893,106 +9937,110 @@ msgstr "" msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 -msgid "Select part to convert stock item into" -msgstr "" - -#: stock/serializers.py:897 -msgid "Selected part is not a valid option for conversion" +#: stock/serializers.py:900 +msgid "Unsupported statistic type: " msgstr "" #: stock/serializers.py:914 +msgid "Select part to convert stock item into" +msgstr "" + +#: stock/serializers.py:927 +msgid "Selected part is not a valid option for conversion" +msgstr "" + +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "" @@ -10024,7 +10072,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10080,7 +10128,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10100,7 +10148,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10161,7 +10209,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10169,7 +10217,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10183,7 +10231,7 @@ msgstr "" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10192,17 +10240,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10211,12 +10259,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10342,7 +10390,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10451,7 +10499,7 @@ msgid "New Location" msgstr "" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" @@ -10839,7 +10887,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10849,7 +10897,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10954,7 +11002,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -11811,7 +11859,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12124,13 +12172,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12391,7 +12439,7 @@ msgstr "" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" @@ -12399,7 +12447,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" @@ -12468,7 +12516,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" @@ -12722,45 +12770,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -13000,8 +13048,8 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" @@ -13126,7 +13174,7 @@ msgid "Copy Bill of Materials" msgstr "" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" @@ -13256,7 +13304,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" @@ -13268,7 +13316,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" @@ -13550,7 +13598,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13935,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13945,513 +13993,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14486,12 +14542,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14533,7 +14589,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14634,56 +14690,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14956,6 +15020,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" @@ -15059,4 +15131,3 @@ msgstr "" #: users/models.py:408 msgid "Permission to delete items" msgstr "" - diff --git a/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po index 59bf543b75..1605adafb9 100644 --- a/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Persian\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "تاریخ را وارد کنید" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "تاریخ را وارد کنید" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "تاریخ را وارد کنید" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "یادداشت" @@ -91,47 +92,51 @@ msgstr "مقدار '{name}' در قالب الگو ظاهر قرار نمی گی msgid "Provided value does not match required pattern: " msgstr "مقدار ارائه شده با الگوی مورد نیاز مطابقت ندارد: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "رمز عبور را وارد کنید" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "گذرواژه جدید را وارد کنید" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "تأیید کلمه‌ی عبور" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "گذرواژه جدید را تایید کنید" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "رمز عبور قدیمی" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "ایمیل (دوباره وارد کنید)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "تایید آدرس ایمیل" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "هر بار باید همان ایمیل را تایپ کنید." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "آدرس ایمیل اصلی ارائه شده معتبر نیست." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "دامنه ایمیل ارائه شده تایید نشده است." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "" @@ -417,7 +422,7 @@ msgstr "" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +435,7 @@ msgstr "" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "" @@ -446,7 +451,7 @@ msgstr "" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +471,17 @@ msgstr "" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" @@ -573,10 +578,10 @@ msgstr "" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -730,7 +735,7 @@ msgstr "" #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" @@ -739,19 +744,19 @@ msgstr "" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" @@ -765,7 +770,7 @@ msgstr "" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" @@ -774,7 +779,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" @@ -854,7 +859,7 @@ msgstr "" #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +871,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +896,10 @@ msgstr "" #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "" @@ -953,9 +958,9 @@ msgid "Build status code" msgstr "" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" @@ -1006,7 +1011,7 @@ msgstr "" #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" @@ -1020,14 +1025,14 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "" @@ -1082,8 +1087,8 @@ msgstr "" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" @@ -1146,9 +1151,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" @@ -1182,8 +1187,8 @@ msgid "Selected stock item does not match BOM line" msgstr "" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1199,8 @@ msgstr "" #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" @@ -1260,7 +1265,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" @@ -1271,8 +1276,8 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1287,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" @@ -1335,15 +1340,15 @@ msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" @@ -1443,7 +1448,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "" @@ -1537,7 +1542,7 @@ msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1552,7 @@ msgstr "" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" @@ -1576,7 +1581,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" @@ -1601,7 +1606,7 @@ msgid "Allocated Stock" msgstr "" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1614,13 @@ msgstr "" msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1644,7 @@ msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "" @@ -1685,7 +1690,7 @@ msgstr "" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1812,9 +1817,9 @@ msgstr "" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" @@ -1835,7 +1840,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" @@ -1893,8 +1898,8 @@ msgstr "" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1919,7 @@ msgstr "" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +1992,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2006,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,6 +2046,11 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + #: common/api.py:692 msgid "Is Link" msgstr "" @@ -2470,7 +2484,7 @@ msgstr "" #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" @@ -2479,9 +2493,9 @@ msgid "Parts are templates by default" msgstr "" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" @@ -2490,7 +2504,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" @@ -2507,7 +2521,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" @@ -2522,7 +2536,7 @@ msgstr "" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" @@ -3615,7 +3629,7 @@ msgstr "" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "" @@ -3812,7 +3826,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4257,7 @@ msgstr "" msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4275,7 @@ msgstr "" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" @@ -4297,9 +4311,9 @@ msgid "Parameter name" msgstr "" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" @@ -4321,12 +4335,12 @@ msgstr "" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" @@ -4354,7 +4368,7 @@ msgstr "" #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" @@ -4404,13 +4418,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "" @@ -4536,15 +4550,15 @@ msgstr "" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4594,7 +4608,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4607,7 +4621,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4621,7 +4635,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4658,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4730,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4751,12 +4765,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4813,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4852,7 +4866,7 @@ msgstr "" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4890,13 +4904,13 @@ msgstr "" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5224,7 +5238,7 @@ msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5257,7 +5271,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" @@ -5266,7 +5280,7 @@ msgstr "" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5459,7 +5473,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" @@ -5467,9 +5481,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" @@ -5757,7 +5771,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6069,7 +6083,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6250,7 +6264,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6283,7 +6297,7 @@ msgstr "" #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" @@ -6531,8 +6545,8 @@ msgstr "" msgid "Default location for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6564,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" @@ -6732,7 +6746,7 @@ msgid "Is this part active?" msgstr "" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6948,7 @@ msgstr "" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" @@ -7036,7 +7050,7 @@ msgstr "" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" @@ -7045,7 +7059,7 @@ msgid "Is this test enabled?" msgstr "" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" @@ -7106,7 +7120,7 @@ msgid "Parameter description" msgstr "" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" @@ -7254,7 +7268,7 @@ msgstr "" msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -7352,7 +7366,7 @@ msgstr "" msgid "Copy image from original part" msgstr "" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" @@ -7554,80 +7568,100 @@ msgstr "" msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" @@ -7785,7 +7819,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7797,101 +7831,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8134,8 +8172,8 @@ msgstr "" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8181,7 +8219,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8815,7 +8853,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -9228,6 +9266,8 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9244,11 +9284,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9274,8 +9314,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" @@ -9332,7 +9372,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9357,9 +9397,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9375,7 +9415,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9425,316 +9465,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9844,7 +9884,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "" @@ -9868,8 +9908,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "" @@ -9893,106 +9933,112 @@ msgstr "" msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:900 +#, fuzzy +#| msgid "Unsupported file type" +msgid "Unsupported statistic type: " +msgstr "این نوع فایل پشتیبانی نمی‌شود" + +#: stock/serializers.py:914 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:927 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "" @@ -10024,7 +10070,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10080,7 +10126,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10100,7 +10146,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10161,7 +10207,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10169,7 +10215,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10183,7 +10229,7 @@ msgstr "" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10192,17 +10238,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10211,12 +10257,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10342,7 +10388,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10451,7 +10497,7 @@ msgid "New Location" msgstr "" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" @@ -10839,7 +10885,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10849,7 +10895,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10954,7 +11000,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -11811,7 +11857,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12124,13 +12170,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12391,7 +12437,7 @@ msgstr "" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" @@ -12399,7 +12445,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" @@ -12468,7 +12514,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" @@ -12722,45 +12768,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -13000,8 +13046,8 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" @@ -13126,7 +13172,7 @@ msgid "Copy Bill of Materials" msgstr "" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" @@ -13256,7 +13302,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" @@ -13268,7 +13314,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" @@ -13550,7 +13596,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13933,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13945,513 +13991,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14486,12 +14540,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14533,7 +14587,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14634,56 +14688,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14956,6 +15018,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" @@ -15059,4 +15129,3 @@ msgstr "" #: users/models.py:408 msgid "Permission to delete items" msgstr "" - diff --git a/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po index 86aaa38386..2bab845579 100644 --- a/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Finnish\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "Anna päivämäärä" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "Anna päivämäärä" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "Anna päivämäärä" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Merkinnät" @@ -91,47 +92,51 @@ msgstr "" msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Anna salasana" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Anna uusi salasana" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Vahvista salasana" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Vahvista uusi salasana" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Vanha salasana" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "Sähköposti (uudelleen)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Sähköpostiosoitteen vahvistus" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Sinun täytyy kirjoittaa sama sähköposti joka kerta." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Annettu ensisijainen sähköpostiosoite ei kelpaa." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Annetun sähköpostiosoitteen verkkotunnusta ei hyväksytä." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "" @@ -417,7 +422,7 @@ msgstr "Virheellinen valinta" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +435,7 @@ msgstr "Virheellinen valinta" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Nimi" @@ -446,7 +451,7 @@ msgstr "Nimi" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +471,17 @@ msgstr "Nimi" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Kuvaus" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Kuvaus (valinnainen)" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Polku" @@ -573,10 +578,10 @@ msgstr "" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "Aktiivinen" @@ -730,7 +735,7 @@ msgstr "" #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" @@ -739,19 +744,19 @@ msgstr "" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" @@ -765,7 +770,7 @@ msgstr "" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "Saatavilla" @@ -774,7 +779,7 @@ msgstr "Saatavilla" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" @@ -854,7 +859,7 @@ msgstr "" #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +871,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +896,10 @@ msgstr "" #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Osa" @@ -953,9 +958,9 @@ msgid "Build status code" msgstr "" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" @@ -1006,7 +1011,7 @@ msgstr "" #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" @@ -1020,14 +1025,14 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Ulkoinen linkki" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Linkki ulkoiseen URLiin" @@ -1082,8 +1087,8 @@ msgstr "" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" @@ -1146,9 +1151,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "Määrä" @@ -1182,8 +1187,8 @@ msgid "Selected stock item does not match BOM line" msgstr "" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1199,8 @@ msgstr "" #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "Varastotuote" @@ -1260,7 +1265,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Sarjanumerot" @@ -1271,8 +1276,8 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1287,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "Sijainti" @@ -1335,15 +1340,15 @@ msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "Tila" @@ -1443,7 +1448,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "" @@ -1537,7 +1542,7 @@ msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1552,7 @@ msgstr "" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "Sarjanumero" @@ -1576,7 +1581,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "Seurattavissa" @@ -1601,7 +1606,7 @@ msgid "Allocated Stock" msgstr "" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1614,13 @@ msgstr "" msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1644,7 @@ msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "Odottaa" @@ -1685,7 +1690,7 @@ msgstr "" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1812,9 +1817,9 @@ msgstr "" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "Myöhässä" @@ -1835,7 +1840,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" @@ -1893,8 +1898,8 @@ msgstr "" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1919,7 @@ msgstr "" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "Valmis" @@ -1987,7 +1992,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2006,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Liitteet" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,6 +2046,11 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + #: common/api.py:692 msgid "Is Link" msgstr "" @@ -2470,7 +2484,7 @@ msgstr "" #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" @@ -2479,9 +2493,9 @@ msgid "Parts are templates by default" msgstr "" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" @@ -2490,7 +2504,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "Komponentti" @@ -2507,7 +2521,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" @@ -2522,7 +2536,7 @@ msgstr "" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" @@ -3615,7 +3629,7 @@ msgstr "" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Käyttäjä" @@ -3812,7 +3826,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4257,7 @@ msgstr "" msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4275,7 @@ msgstr "" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "Valmistaja" @@ -4297,9 +4311,9 @@ msgid "Parameter name" msgstr "" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Arvo" @@ -4321,12 +4335,12 @@ msgstr "" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" @@ -4354,7 +4368,7 @@ msgstr "" #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "Toimittaja" @@ -4404,13 +4418,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "" @@ -4536,15 +4550,15 @@ msgstr "" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "Asiakas" @@ -4594,7 +4608,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4607,7 +4621,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4621,7 +4635,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4658,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4730,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4751,12 +4765,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4813,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4852,7 +4866,7 @@ msgstr "" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4890,13 +4904,13 @@ msgstr "" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5224,7 +5238,7 @@ msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5257,7 +5271,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" @@ -5266,7 +5280,7 @@ msgstr "" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5459,7 +5473,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "Vastaanotettu" @@ -5467,9 +5481,9 @@ msgstr "Vastaanotettu" msgid "Number of items received" msgstr "" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" @@ -5757,7 +5771,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6069,7 +6083,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Poista rivi" @@ -6250,7 +6264,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "Toiminnot" @@ -6283,7 +6297,7 @@ msgstr "" #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" @@ -6531,8 +6545,8 @@ msgstr "" msgid "Default location for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6564,13 @@ msgstr "Oletus avainsanat" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Kuvake" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "Kuvake (valinnainen)" @@ -6732,7 +6746,7 @@ msgid "Is this part active?" msgstr "" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6948,7 @@ msgstr "" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "Päivämäärä" @@ -7036,7 +7050,7 @@ msgstr "" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "Käytössä" @@ -7045,7 +7059,7 @@ msgid "Is this test enabled?" msgstr "" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" @@ -7106,7 +7120,7 @@ msgid "Parameter description" msgstr "" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" @@ -7254,7 +7268,7 @@ msgstr "" msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -7352,7 +7366,7 @@ msgstr "" msgid "Copy image from original part" msgstr "" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" @@ -7554,80 +7568,108 @@ msgstr "" msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +#, fuzzy +#| msgid "Component" +msgid "Component Name" +msgstr "Komponentti" + +#: part/serializers.py:1586 +#, fuzzy +#| msgid "Component" +msgid "Component IPN" +msgstr "Komponentti" + +#: part/serializers.py:1589 +#, fuzzy +#| msgid "Company description" +msgid "Component Description" +msgstr "Yrityksen kuvaus" + +#: part/serializers.py:1595 +#, fuzzy +#| msgid "Select theme" +msgid "Select the component part" +msgstr "Valitse teema" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" @@ -7785,7 +7827,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7797,101 +7839,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8134,8 +8180,8 @@ msgstr "" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8181,7 +8227,7 @@ msgstr "Muokkaa" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8815,7 +8861,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -9228,6 +9274,8 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9244,11 +9292,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9274,8 +9322,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "Sarjanumero" @@ -9332,7 +9380,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9357,9 +9405,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9375,7 +9423,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9425,316 +9473,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9844,7 +9892,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "" @@ -9868,8 +9916,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "" @@ -9893,106 +9941,112 @@ msgstr "" msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:900 +#, fuzzy +#| msgid "Unsupported file type" +msgid "Unsupported statistic type: " +msgstr "Tiedostotyyppiä ei tueta" + +#: stock/serializers.py:914 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:927 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "" @@ -10024,7 +10078,7 @@ msgstr "Asetettu karanteeniin" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Varastotuote luotu" @@ -10080,7 +10134,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10100,7 +10154,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10161,7 +10215,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10169,7 +10223,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10183,7 +10237,7 @@ msgstr "" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10192,17 +10246,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10211,12 +10265,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10342,7 +10396,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10451,7 +10505,7 @@ msgid "New Location" msgstr "Uusi sijainti" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" @@ -10839,7 +10893,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10849,7 +10903,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10954,7 +11008,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "Poista" @@ -11811,7 +11865,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12124,13 +12178,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12391,7 +12445,7 @@ msgstr "" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" @@ -12399,7 +12453,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" @@ -12468,7 +12522,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" @@ -12722,45 +12776,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -13000,8 +13054,8 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" @@ -13126,7 +13180,7 @@ msgid "Copy Bill of Materials" msgstr "" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" @@ -13256,7 +13310,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" @@ -13268,7 +13322,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" @@ -13550,7 +13604,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13941,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13945,513 +13999,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14486,12 +14548,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14533,7 +14595,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14634,56 +14696,68 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +#, fuzzy +#| msgid "Internal Prices" +msgid "Interval start" +msgstr "Sisäiset hinnat" + +#: templates/js/translated/table_filters.js:475 +#, fuzzy +#| msgid "Internal Prices" +msgid "Interval end" +msgstr "Sisäiset hinnat" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14956,6 +15030,14 @@ msgstr "Sähköpostiasetukset" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "Kyllä" @@ -15059,4 +15141,3 @@ msgstr "Oikeus muokata kohteita" #: users/models.py:408 msgid "Permission to delete items" msgstr "Oikeus poistaa kohteita" - diff --git a/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po index 2a2841a850..1491fe3823 100644 --- a/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: French\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "Entrer la date" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "Entrer la date" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "Entrer la date" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Notes" @@ -91,47 +92,53 @@ msgstr "La valeur '{name}' n'apparaît pas dans le format du modèle" msgid "Provided value does not match required pattern: " msgstr "La valeur fournie ne correspond pas au modèle requis : " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Entrer le mot de passe" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Entrer le nouveau mot de passe" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Confirmez le mot de passe" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Confirmer le nouveau mot de passe" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Ancien mot de passe" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "Email (encore)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Confirmation de l'adresse email" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Vous devez taper le même e-mail à chaque fois." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +#, fuzzy +#| msgid "Registration is disabled." +msgid "MFA Registration is disabled." +msgstr "L'enregistrement est désactivé." + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "L'adresse e-mail principale fournie n'est pas valide." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Le domaine e-mail fourni n'est pas approuvé." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "L'enregistrement est désactivé." @@ -417,7 +424,7 @@ msgstr "Choix invalide" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +437,7 @@ msgstr "Choix invalide" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Nom" @@ -446,7 +453,7 @@ msgstr "Nom" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +473,17 @@ msgstr "Nom" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Description" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Description (facultative)" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Chemin d'accès" @@ -573,10 +580,10 @@ msgstr "Cet utilisateur est-il un super-utilisateur" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "Actif" @@ -730,7 +737,7 @@ msgstr "La construction doit être annulée avant de pouvoir être supprimée" #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "Consommable" @@ -739,19 +746,19 @@ msgstr "Consommable" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "Facultatif" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "Suivi" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "Allouée" @@ -765,7 +772,7 @@ msgstr "Allouée" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "Disponible" @@ -774,7 +781,7 @@ msgstr "Disponible" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Ordre de Fabrication" @@ -854,7 +861,7 @@ msgstr "BuildOrder associé a cette fabrication" #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +873,7 @@ msgstr "BuildOrder associé a cette fabrication" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +898,10 @@ msgstr "BuildOrder associé a cette fabrication" #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Pièce" @@ -953,9 +960,9 @@ msgid "Build status code" msgstr "Code de statut de construction" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Code de lot" @@ -1006,7 +1013,7 @@ msgstr "Utilisateur ayant émis cette commande de construction" #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "Responsable" @@ -1020,14 +1027,14 @@ msgstr "Utilisateur ou groupe responsable de cet ordre de construction" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Lien Externe" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Lien vers une url externe" @@ -1082,8 +1089,8 @@ msgstr "L'ordre de production de correspond pas à l'ordre de commande" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "La quantité doit être supérieure à zéro" @@ -1146,9 +1153,9 @@ msgstr "Création de l'objet" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "Quantité" @@ -1182,8 +1189,8 @@ msgid "Selected stock item does not match BOM line" msgstr "L'article de stock sélectionné ne correspond pas à la ligne BOM" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1201,8 @@ msgstr "L'article de stock sélectionné ne correspond pas à la ligne BOM" #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "Article en stock" @@ -1260,7 +1267,7 @@ msgstr "Quantité entière requise, car la facture de matériaux contient des pi #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Numéros de série" @@ -1271,8 +1278,8 @@ msgstr "Entrer les numéros de séries pour la fabrication" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1289,9 @@ msgstr "Entrer les numéros de séries pour la fabrication" #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "Emplacement" @@ -1335,15 +1342,15 @@ msgstr "Emplacement des ordres de production achevés" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "État" @@ -1443,7 +1450,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:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "L'article doit être en stock" @@ -1537,7 +1544,7 @@ msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1554,7 @@ msgstr "" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "Numéro de série" @@ -1576,7 +1583,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "Traçable" @@ -1601,7 +1608,7 @@ msgid "Allocated Stock" msgstr "Stock alloué" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1616,13 @@ msgstr "Stock alloué" msgid "On Order" msgstr "En Commande" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "En Production" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1646,7 @@ msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "En attente" @@ -1685,7 +1692,7 @@ msgstr "Image miniature de l'article" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Actions de code-barres" @@ -1812,9 +1819,9 @@ msgstr "Cette construction était due le %(target)s" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "En retard" @@ -1835,7 +1842,7 @@ msgstr "Sorties de Construction terminées" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "Commandes" @@ -1893,8 +1900,8 @@ msgstr "Pièces allouées" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1921,7 @@ msgstr "Pas de date cible définie" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "Terminé" @@ -1987,7 +1994,13 @@ msgstr "Stock Consommé" msgid "Completed Build Outputs" msgstr "Sorties de Construction terminées" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +#, fuzzy +#| msgid "Build Details" +msgid "Build test statistics" +msgstr "Détails de la construction" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2010,25 @@ msgstr "Sorties de Construction terminées" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Pieces jointes" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "Notes de construction" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "Allocation terminée" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "Toutes les lignes ont été entièrement attribuées" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "Nouvel ordre de construction" @@ -2037,6 +2050,11 @@ msgstr "" msgid "Incomplete Outputs" msgstr "Sorties incomplètes" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + #: common/api.py:692 msgid "Is Link" msgstr "" @@ -2470,7 +2488,7 @@ msgstr "Copier les templates de paramètres de la catégorie lors de la créatio #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "Modèle" @@ -2479,9 +2497,9 @@ msgid "Parts are templates by default" msgstr "Les pièces sont des templates par défaut" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "Assemblage" @@ -2490,7 +2508,7 @@ msgid "Parts can be assembled from other components by default" msgstr "Les pièces peuvent être assemblées à partir d'autres composants par défaut" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "Composant" @@ -2507,7 +2525,7 @@ msgid "Parts are purchaseable by default" msgstr "Les pièces sont achetables par défaut" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "Vendable" @@ -2522,7 +2540,7 @@ msgstr "Les pièces sont traçables par défaut" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "Virtuelle" @@ -3615,7 +3633,7 @@ msgstr "" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Utilisateur" @@ -3812,7 +3830,7 @@ msgstr "Définition" msgid "Unit definition" msgstr "Définition de l'unité" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4261,7 @@ msgstr "Lien vers les informations de l'adresse (externe)" msgid "Manufacturer Part" msgstr "Pièces du fabricant" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4279,7 @@ msgstr "" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "Fabricant" @@ -4297,9 +4315,9 @@ msgid "Parameter name" msgstr "Nom du paramètre" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Valeur" @@ -4321,12 +4339,12 @@ msgstr "Unités du paramètre" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "Pièce fournisseur" @@ -4354,7 +4372,7 @@ msgstr "La pièce du fabricant liée doit faire référence à la même pièce d #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "Fournisseur" @@ -4404,13 +4422,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "Frais minimums (par exemple frais de stock)" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "Conditionnement" @@ -4536,15 +4554,15 @@ msgstr "Supprimer image" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "Client" @@ -4594,7 +4612,7 @@ msgstr "Créer une nouvelle pièce fournisseur" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "Nouvelle pièce fournisseur" @@ -4607,7 +4625,7 @@ msgstr "Pièces du fabricant" msgid "Create new manufacturer part" msgstr "Créer une nouvelle pièce de fabricant" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "Nouvelle pièce de fabricant" @@ -4621,7 +4639,7 @@ msgstr "Stock fournisseur" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4662,7 @@ msgstr "Nouvelle commande achat" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4734,7 @@ msgstr "Fabricants" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "Article de la commande" @@ -4751,12 +4769,12 @@ msgstr "Fournisseurs" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Paramètres" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4817,7 @@ msgstr "Actions de la pièce du fournisseur" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "Commander un composant" @@ -4852,7 +4870,7 @@ msgstr "Créer un nouvel article de stock" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "Nouvel article de stock" @@ -4890,13 +4908,13 @@ msgstr "" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "Éléments en stock" @@ -5224,7 +5242,7 @@ msgid "Order Status" msgstr "Statut de la commande" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "Possède un Tarif" @@ -5257,7 +5275,7 @@ msgstr "Commande En Attente" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "Commande d’achat" @@ -5266,7 +5284,7 @@ msgstr "Commande d’achat" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "Retour de commande" @@ -5459,7 +5477,7 @@ msgstr "Pièce fournisseur" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "Reçu" @@ -5467,9 +5485,9 @@ msgstr "Reçu" msgid "Number of items received" msgstr "Nombre d'éléments reçus" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "Prix d'achat" @@ -5757,7 +5775,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6069,7 +6087,7 @@ msgstr "Dupliquer la sélection" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Supprimer la ligne" @@ -6250,7 +6268,7 @@ msgstr "Expéditions en attente" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "Actions" @@ -6283,7 +6301,7 @@ msgstr "" #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" @@ -6531,8 +6549,8 @@ msgstr "Catégories de composants" msgid "Default location for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6568,13 @@ msgstr "Mots-clés par défaut" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" @@ -6732,7 +6750,7 @@ msgid "Is this part active?" msgstr "Est-ce que cette pièce est active ?" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6952,7 @@ msgstr "" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" @@ -7036,7 +7054,7 @@ msgstr "" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "Activé" @@ -7045,7 +7063,7 @@ msgid "Is this test enabled?" msgstr "" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "Requis" @@ -7106,7 +7124,7 @@ msgid "Parameter description" msgstr "" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" @@ -7254,7 +7272,7 @@ msgstr "" msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -7352,7 +7370,7 @@ msgstr "Copier l'image" msgid "Copy image from original part" msgstr "" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" @@ -7554,80 +7572,110 @@ msgstr "" msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +#, fuzzy +#| msgid "Select part to build" +msgid "Select the parent assembly" +msgstr "Sélectionnez la pièce à construire" + +#: part/serializers.py:1583 +#, fuzzy +#| msgid "Component" +msgid "Component Name" +msgstr "Composant" + +#: part/serializers.py:1586 +#, fuzzy +#| msgid "Component" +msgid "Component IPN" +msgstr "Composant" + +#: part/serializers.py:1589 +#, fuzzy +#| msgid "Company description" +msgid "Component Description" +msgstr "Description de la société" + +#: part/serializers.py:1595 +#, fuzzy +#| msgid "Select theme" +msgid "Select the component part" +msgstr "Sélectionner un thème" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" @@ -7785,7 +7833,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "Prise d'inventaire" @@ -7797,101 +7845,107 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +#, fuzzy +#| msgid "Copy Part Test Data" +msgid "Part Test Statistics" +msgstr "Copier les données de test de la pièce" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "Fabricants de composants" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8134,8 +8188,8 @@ msgstr "" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8181,7 +8235,7 @@ msgstr "Modifier" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8815,7 +8869,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -9228,6 +9282,8 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9244,11 +9300,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "Résultat" @@ -9274,8 +9330,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "Numéro de série" @@ -9332,7 +9388,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9357,9 +9413,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9375,7 +9431,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9425,316 +9481,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Propriétaire" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "Sélectionner un propriétaire" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "La quantité doit être de 1 pour un article avec un numéro de série" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Le numéro de série ne peut pas être défini si la quantité est supérieure à 1" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "Numéro de série pour cet article" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "Les numéros de série doivent être une liste de nombres entiers" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "La quantité ne correspond pas au nombre de numéros de série" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "Les numéros de série existent déjà" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9844,7 +9900,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "Entrez les numéros de série pour les nouveaux articles" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "" @@ -9868,8 +9924,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "" @@ -9893,106 +9949,112 @@ msgstr "" msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:900 +#, fuzzy +#| msgid "Unsupported file type" +msgid "Unsupported statistic type: " +msgstr "Format de fichier non supporté" + +#: stock/serializers.py:914 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:927 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "" @@ -10024,7 +10086,7 @@ msgstr "En quarantaine" msgid "Legacy stock tracking entry" msgstr "Ancienne entrée de suivi de stock" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Article en stock créé" @@ -10080,7 +10142,7 @@ msgstr "Séparer de l'élément parent" msgid "Split child item" msgstr "Fractionner l'élément enfant" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Articles de stock fusionnés" @@ -10100,7 +10162,7 @@ msgstr "Sortie de l'ordre de construction terminée" msgid "Build order output rejected" msgstr "La sortie de l'ordre de construction a été refusée" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Consommé par ordre de construction" @@ -10161,7 +10223,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10169,7 +10231,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10183,7 +10245,7 @@ msgstr "" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10192,17 +10254,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10211,12 +10273,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10342,7 +10404,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10451,7 +10513,7 @@ msgid "New Location" msgstr "" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" @@ -10839,7 +10901,7 @@ msgstr "Chemin d'installation" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10849,7 +10911,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10954,7 +11016,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "Supprimer" @@ -11811,7 +11873,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12124,13 +12186,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "Dernier numéro de série" @@ -12391,7 +12453,7 @@ msgstr "" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" @@ -12399,7 +12461,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" @@ -12468,7 +12530,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" @@ -12722,45 +12784,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -13000,8 +13062,8 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" @@ -13126,7 +13188,7 @@ msgid "Copy Bill of Materials" msgstr "" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" @@ -13256,7 +13318,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" @@ -13268,7 +13330,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" @@ -13550,7 +13612,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13949,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13945,513 +14007,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "Ajouter" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14486,12 +14556,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14533,7 +14603,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14634,56 +14704,68 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +#, fuzzy +#| msgid "Internal Part" +msgid "Interval start" +msgstr "Pièces Internes" + +#: templates/js/translated/table_filters.js:475 +#, fuzzy +#| msgid "Internal Prices" +msgid "Interval end" +msgstr "Prix internes" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14956,6 +15038,16 @@ msgstr "Paramètres de Messagerie" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +#, fuzzy +#| msgid "Failed Tasks" +msgid "Failed" +msgstr "Tâches échouées" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "Oui" @@ -15059,4 +15151,3 @@ msgstr "Droit de modifier des élément" #: users/models.py:408 msgid "Permission to delete items" msgstr "Droit de supprimer des éléments" - diff --git a/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po index 8bfa465863..84e6f9f5cf 100644 --- a/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Hebrew\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "הזן תאריך סיום" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "הזן תאריך סיום" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "הזן תאריך סיום" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "" @@ -91,47 +92,51 @@ msgstr "" msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "הכנס סיסמה" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "הכנס סיסמה חדשה" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "אישור סיסמה" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "אשר סיסמה חדשה" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "אימייל (שנית)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "אישור כתובת אימייל" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "חובה לרשום את אותו אימייל בכל פעם." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "" @@ -417,7 +422,7 @@ msgstr "בחירה שגויה" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +435,7 @@ msgstr "בחירה שגויה" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "שם" @@ -446,7 +451,7 @@ msgstr "שם" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +471,17 @@ msgstr "שם" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "תיאור" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "תיאור (לא חובה)" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" @@ -573,10 +578,10 @@ msgstr "" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -730,7 +735,7 @@ msgstr "" #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" @@ -739,19 +744,19 @@ msgstr "" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" @@ -765,7 +770,7 @@ msgstr "" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" @@ -774,7 +779,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" @@ -854,7 +859,7 @@ msgstr "" #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +871,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +896,10 @@ msgstr "" #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "רכיב" @@ -953,9 +958,9 @@ msgid "Build status code" msgstr "" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" @@ -1006,7 +1011,7 @@ msgstr "" #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" @@ -1020,14 +1025,14 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "קישור חיצוני" @@ -1082,8 +1087,8 @@ msgstr "" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" @@ -1146,9 +1151,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "כמות" @@ -1182,8 +1187,8 @@ msgid "Selected stock item does not match BOM line" msgstr "" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1199,8 @@ msgstr "" #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" @@ -1260,7 +1265,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "מספרים סידוריים" @@ -1271,8 +1276,8 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1287,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" @@ -1335,15 +1340,15 @@ msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" @@ -1443,7 +1448,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "" @@ -1537,7 +1542,7 @@ msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1552,7 @@ msgstr "" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" @@ -1576,7 +1581,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" @@ -1601,7 +1606,7 @@ msgid "Allocated Stock" msgstr "" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1614,13 @@ msgstr "" msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1644,7 @@ msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "בהמתנה" @@ -1685,7 +1690,7 @@ msgstr "" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1812,9 +1817,9 @@ msgstr "" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" @@ -1835,7 +1840,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" @@ -1893,8 +1898,8 @@ msgstr "" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1919,7 @@ msgstr "" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +1992,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2006,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,6 +2046,11 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + #: common/api.py:692 msgid "Is Link" msgstr "" @@ -2470,7 +2484,7 @@ msgstr "" #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" @@ -2479,9 +2493,9 @@ msgid "Parts are templates by default" msgstr "" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" @@ -2490,7 +2504,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" @@ -2507,7 +2521,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" @@ -2522,7 +2536,7 @@ msgstr "" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" @@ -3615,7 +3629,7 @@ msgstr "" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "משתמש" @@ -3812,7 +3826,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4257,7 @@ msgstr "" msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4275,7 @@ msgstr "" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" @@ -4297,9 +4311,9 @@ msgid "Parameter name" msgstr "" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" @@ -4321,12 +4335,12 @@ msgstr "" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" @@ -4354,7 +4368,7 @@ msgstr "" #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" @@ -4404,13 +4418,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "" @@ -4536,15 +4550,15 @@ msgstr "" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4594,7 +4608,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4607,7 +4621,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4621,7 +4635,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4658,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4730,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4751,12 +4765,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4813,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4852,7 +4866,7 @@ msgstr "" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4890,13 +4904,13 @@ msgstr "" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5224,7 +5238,7 @@ msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5257,7 +5271,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" @@ -5266,7 +5280,7 @@ msgstr "" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5459,7 +5473,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" @@ -5467,9 +5481,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" @@ -5757,7 +5771,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6069,7 +6083,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6250,7 +6264,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6283,7 +6297,7 @@ msgstr "" #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" @@ -6531,8 +6545,8 @@ msgstr "" msgid "Default location for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6564,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" @@ -6732,7 +6746,7 @@ msgid "Is this part active?" msgstr "" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6948,7 @@ msgstr "" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" @@ -7036,7 +7050,7 @@ msgstr "" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" @@ -7045,7 +7059,7 @@ msgid "Is this test enabled?" msgstr "" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" @@ -7106,7 +7120,7 @@ msgid "Parameter description" msgstr "" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" @@ -7254,7 +7268,7 @@ msgstr "" msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -7352,7 +7366,7 @@ msgstr "" msgid "Copy image from original part" msgstr "" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" @@ -7554,80 +7568,106 @@ msgstr "" msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +#, fuzzy +#| msgid "Select part to build" +msgid "Select the parent assembly" +msgstr "בחר רכיב לבנייה" + +#: part/serializers.py:1583 +#, fuzzy +#| msgid "Complete" +msgid "Component Name" +msgstr "הושלם" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +#, fuzzy +#| msgid "Description" +msgid "Component Description" +msgstr "תיאור" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" @@ -7785,7 +7825,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7797,101 +7837,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8134,8 +8178,8 @@ msgstr "" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8181,7 +8225,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8815,7 +8859,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -9228,6 +9272,8 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9244,11 +9290,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9274,8 +9320,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" @@ -9332,7 +9378,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9357,9 +9403,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9375,7 +9421,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9425,316 +9471,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9844,7 +9890,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "" @@ -9868,8 +9914,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "" @@ -9893,106 +9939,110 @@ msgstr "" msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 -msgid "Select part to convert stock item into" -msgstr "" - -#: stock/serializers.py:897 -msgid "Selected part is not a valid option for conversion" +#: stock/serializers.py:900 +msgid "Unsupported statistic type: " msgstr "" #: stock/serializers.py:914 +msgid "Select part to convert stock item into" +msgstr "" + +#: stock/serializers.py:927 +msgid "Selected part is not a valid option for conversion" +msgstr "" + +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "" @@ -10024,7 +10074,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10080,7 +10130,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10100,7 +10150,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10161,7 +10211,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10169,7 +10219,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10183,7 +10233,7 @@ msgstr "" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10192,17 +10242,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10211,12 +10261,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10342,7 +10392,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10451,7 +10501,7 @@ msgid "New Location" msgstr "" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" @@ -10839,7 +10889,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10849,7 +10899,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10954,7 +11004,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -11811,7 +11861,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12124,13 +12174,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12391,7 +12441,7 @@ msgstr "" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" @@ -12399,7 +12449,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" @@ -12468,7 +12518,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" @@ -12722,45 +12772,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -13000,8 +13050,8 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" @@ -13126,7 +13176,7 @@ msgid "Copy Bill of Materials" msgstr "" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" @@ -13256,7 +13306,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" @@ -13268,7 +13318,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" @@ -13550,7 +13600,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13937,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13945,513 +13995,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14486,12 +14544,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14533,7 +14591,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14634,56 +14692,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14956,6 +15022,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" @@ -15059,4 +15133,3 @@ msgstr "" #: users/models.py:408 msgid "Permission to delete items" msgstr "" - diff --git a/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po index 52ff287657..6a23e80dbd 100644 --- a/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:37\n" "Last-Translator: \n" "Language-Team: Hindi\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "तारीख दर्ज करें" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "तारीख दर्ज करें" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "तारीख दर्ज करें" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "" @@ -91,47 +92,51 @@ msgstr "" msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "पास वर्ड दर्ज करें" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "नया पासवर्ड दर्ज करें" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "पासवर्ड की पुष्टि करें" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "नए पासवर्ड की पुष्टि करें" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "पुराना पासवर्ड" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "" -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "" @@ -417,7 +422,7 @@ msgstr "" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +435,7 @@ msgstr "" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "" @@ -446,7 +451,7 @@ msgstr "" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +471,17 @@ msgstr "" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" @@ -573,10 +578,10 @@ msgstr "" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -730,7 +735,7 @@ msgstr "" #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" @@ -739,19 +744,19 @@ msgstr "" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" @@ -765,7 +770,7 @@ msgstr "" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" @@ -774,7 +779,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" @@ -854,7 +859,7 @@ msgstr "" #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +871,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +896,10 @@ msgstr "" #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "" @@ -953,9 +958,9 @@ msgid "Build status code" msgstr "" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" @@ -1006,7 +1011,7 @@ msgstr "" #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" @@ -1020,14 +1025,14 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "" @@ -1082,8 +1087,8 @@ msgstr "" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" @@ -1146,9 +1151,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" @@ -1182,8 +1187,8 @@ msgid "Selected stock item does not match BOM line" msgstr "" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1199,8 @@ msgstr "" #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" @@ -1260,7 +1265,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" @@ -1271,8 +1276,8 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1287,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" @@ -1335,15 +1340,15 @@ msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" @@ -1443,7 +1448,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "" @@ -1537,7 +1542,7 @@ msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1552,7 @@ msgstr "" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" @@ -1576,7 +1581,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" @@ -1601,7 +1606,7 @@ msgid "Allocated Stock" msgstr "" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1614,13 @@ msgstr "" msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1644,7 @@ msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "" @@ -1685,7 +1690,7 @@ msgstr "" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1812,9 +1817,9 @@ msgstr "" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" @@ -1835,7 +1840,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" @@ -1893,8 +1898,8 @@ msgstr "" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1919,7 @@ msgstr "" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +1992,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2006,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,6 +2046,11 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + #: common/api.py:692 msgid "Is Link" msgstr "" @@ -2470,7 +2484,7 @@ msgstr "" #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" @@ -2479,9 +2493,9 @@ msgid "Parts are templates by default" msgstr "" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" @@ -2490,7 +2504,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" @@ -2507,7 +2521,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" @@ -2522,7 +2536,7 @@ msgstr "" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" @@ -3615,7 +3629,7 @@ msgstr "" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "" @@ -3812,7 +3826,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4257,7 @@ msgstr "" msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4275,7 @@ msgstr "" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" @@ -4297,9 +4311,9 @@ msgid "Parameter name" msgstr "" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" @@ -4321,12 +4335,12 @@ msgstr "" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" @@ -4354,7 +4368,7 @@ msgstr "" #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" @@ -4404,13 +4418,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "" @@ -4536,15 +4550,15 @@ msgstr "" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4594,7 +4608,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4607,7 +4621,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4621,7 +4635,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4658,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4730,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4751,12 +4765,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4813,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4852,7 +4866,7 @@ msgstr "" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4890,13 +4904,13 @@ msgstr "" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5224,7 +5238,7 @@ msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5257,7 +5271,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" @@ -5266,7 +5280,7 @@ msgstr "" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5459,7 +5473,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" @@ -5467,9 +5481,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" @@ -5757,7 +5771,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6069,7 +6083,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6250,7 +6264,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6283,7 +6297,7 @@ msgstr "" #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" @@ -6531,8 +6545,8 @@ msgstr "" msgid "Default location for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6564,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" @@ -6732,7 +6746,7 @@ msgid "Is this part active?" msgstr "" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6948,7 @@ msgstr "" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" @@ -7036,7 +7050,7 @@ msgstr "" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" @@ -7045,7 +7059,7 @@ msgid "Is this test enabled?" msgstr "" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" @@ -7106,7 +7120,7 @@ msgid "Parameter description" msgstr "" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" @@ -7254,7 +7268,7 @@ msgstr "" msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -7352,7 +7366,7 @@ msgstr "" msgid "Copy image from original part" msgstr "" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" @@ -7554,80 +7568,100 @@ msgstr "" msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" @@ -7785,7 +7819,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7797,101 +7831,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8134,8 +8172,8 @@ msgstr "" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8181,7 +8219,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8815,7 +8853,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -9228,6 +9266,8 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9244,11 +9284,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9274,8 +9314,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" @@ -9332,7 +9372,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9357,9 +9397,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9375,7 +9415,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9425,316 +9465,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9844,7 +9884,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "" @@ -9868,8 +9908,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "" @@ -9893,106 +9933,110 @@ msgstr "" msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 -msgid "Select part to convert stock item into" -msgstr "" - -#: stock/serializers.py:897 -msgid "Selected part is not a valid option for conversion" +#: stock/serializers.py:900 +msgid "Unsupported statistic type: " msgstr "" #: stock/serializers.py:914 +msgid "Select part to convert stock item into" +msgstr "" + +#: stock/serializers.py:927 +msgid "Selected part is not a valid option for conversion" +msgstr "" + +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "" @@ -10024,7 +10068,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10080,7 +10124,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10100,7 +10144,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10161,7 +10205,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10169,7 +10213,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10183,7 +10227,7 @@ msgstr "" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10192,17 +10236,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10211,12 +10255,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10342,7 +10386,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10451,7 +10495,7 @@ msgid "New Location" msgstr "" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" @@ -10839,7 +10883,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10849,7 +10893,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10954,7 +10998,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -11811,7 +11855,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12124,13 +12168,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12391,7 +12435,7 @@ msgstr "" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" @@ -12399,7 +12443,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" @@ -12468,7 +12512,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" @@ -12722,45 +12766,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -13000,8 +13044,8 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" @@ -13126,7 +13170,7 @@ msgid "Copy Bill of Materials" msgstr "" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" @@ -13256,7 +13300,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" @@ -13268,7 +13312,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" @@ -13550,7 +13594,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13931,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13945,513 +13989,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14486,12 +14538,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14533,7 +14585,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14634,56 +14686,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14956,6 +15016,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" @@ -15059,4 +15127,3 @@ msgstr "" #: users/models.py:408 msgid "Permission to delete items" msgstr "" - diff --git a/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po index 1a1717aa2d..4493772481 100644 --- a/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Hungarian\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "Dátum megadása" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "Dátum megadása" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "Dátum megadása" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Megjegyzések" @@ -91,47 +92,53 @@ msgstr "A(z) '{name}' érték nem a szükséges minta szerinti" msgid "Provided value does not match required pattern: " msgstr "A megadott érték nem felel meg a szükséges mintának: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Jelszó megadása" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Új jelszó megadása" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Jelszó megerősítése" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Új jelszó megerősítése" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Régi jelszó" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "Email (újra)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Email cím megerősítés" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Mindig ugyanazt az email címet kell beírni." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +#, fuzzy +#| msgid "Registration is disabled." +msgid "MFA Registration is disabled." +msgstr "Regisztráció le van tiltva." + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "A megadott elsődleges email cím nem valós." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "A megadott email domain nincs jóváhagyva." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Regisztráció le van tiltva." @@ -417,7 +424,7 @@ msgstr "Érvénytelen választás" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +437,7 @@ msgstr "Érvénytelen választás" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Név" @@ -446,7 +453,7 @@ msgstr "Név" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +473,17 @@ msgstr "Név" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Leírás" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Leírás (opcionális)" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Elérési út" @@ -573,10 +580,10 @@ msgstr "" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "Aktív" @@ -730,7 +737,7 @@ msgstr "A gyártást be kell fejezni a törlés előtt" #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "Fogyóeszköz" @@ -739,19 +746,19 @@ msgstr "Fogyóeszköz" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "Opcionális" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "Követett" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "Lefoglalva" @@ -765,7 +772,7 @@ msgstr "Lefoglalva" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "Elérhető" @@ -774,7 +781,7 @@ msgstr "Elérhető" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Gyártási utasítás" @@ -854,7 +861,7 @@ msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve" #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +873,7 @@ msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +898,10 @@ msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve" #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Alkatrész" @@ -953,9 +960,9 @@ msgid "Build status code" msgstr "Gyártás státusz kód" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Batch kód" @@ -1006,7 +1013,7 @@ msgstr "Felhasználó aki ezt a gyártási utasítást kiállította" #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "Felelős" @@ -1020,14 +1027,14 @@ msgstr "Felhasználó vagy csoport aki felelős ezért a gyártásért" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Külső link" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Link külső URL-re" @@ -1082,8 +1089,8 @@ msgstr "Gyártási kimenet nem egyezik a gyártási utasítással" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "Mennyiségnek nullánál többnek kell lennie" @@ -1146,9 +1153,9 @@ msgstr "Gyártás objektum" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "Mennyiség" @@ -1182,8 +1189,8 @@ msgid "Selected stock item does not match BOM line" msgstr "A készlet tétel nem egyezik az alkatrészjegyzékkel" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1201,8 @@ msgstr "A készlet tétel nem egyezik az alkatrészjegyzékkel" #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "Készlet tétel" @@ -1260,7 +1267,7 @@ msgstr "Egész számú mennyiség szükséges, mivel az alkatrészjegyzék egyed #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Sorozatszámok" @@ -1271,8 +1278,8 @@ msgstr "Add meg a sorozatszámokat a gyártás kimenetéhez" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1289,9 @@ msgstr "Add meg a sorozatszámokat a gyártás kimenetéhez" #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "Hely" @@ -1335,15 +1342,15 @@ msgstr "A kész gyártási kimenetek helye" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "Állapot" @@ -1353,7 +1360,8 @@ msgstr "Hiányos foglalás elfogadása" #: build/serializers.py:536 msgid "Complete outputs if stock has not been fully allocated" -msgstr "Kimenetek befejezése akkor is ha a készlet nem\n" +msgstr "" +"Kimenetek befejezése akkor is ha a készlet nem\n" "lett teljesen lefoglalva" #: build/serializers.py:621 @@ -1444,7 +1452,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:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "A tételnek kell legyen készlete" @@ -1538,7 +1546,7 @@ msgstr "Alkatrész IPN" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1548,7 +1556,7 @@ msgstr "Alkatrész IPN" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "Sorozatszám" @@ -1577,7 +1585,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "Követésre kötelezett" @@ -1602,7 +1610,7 @@ msgid "Allocated Stock" msgstr "Lefoglalt készlet" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1610,13 +1618,13 @@ msgstr "Lefoglalt készlet" msgid "On Order" msgstr "Rendelve" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "Gyártásban" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1640,7 +1648,7 @@ msgstr "Külső raktárkészlet" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "Függőben" @@ -1686,7 +1694,7 @@ msgstr "Alkatrész bélyegkép" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Vonalkód műveletek" @@ -1813,9 +1821,9 @@ msgstr "Ez a gyártás %(target)s-n volt esedékes" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "Késésben" @@ -1836,7 +1844,7 @@ msgstr "Befejezett kimenetek" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "Vevői rendelés" @@ -1894,8 +1902,8 @@ msgstr "Lefoglalt alkatrészek" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1915,7 +1923,7 @@ msgstr "Nincs céldátum beállítva" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "Kész" @@ -1988,7 +1996,13 @@ msgstr "Felhasznált készlet" msgid "Completed Build Outputs" msgstr "Befejezett gyártási kimenetek" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +#, fuzzy +#| msgid "Build status" +msgid "Build test statistics" +msgstr "Gyártási állapot" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1998,25 +2012,25 @@ msgstr "Befejezett gyártási kimenetek" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Mellékletek" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "Gyártási megjegyzések" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "Lefoglalás kész" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "Minden sor rendben lefoglalva" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "Új gyártási utasítás" @@ -2038,6 +2052,13 @@ msgstr "Sortételek" msgid "Incomplete Outputs" msgstr "Befejezetlen kimenetek" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +#, fuzzy +#| msgid "Test station" +msgid "Test Statistics" +msgstr "Teszt állomás" + #: common/api.py:692 msgid "Is Link" msgstr "" @@ -2471,7 +2492,7 @@ msgstr "Kategória paraméter sablonok másolása alkatrész létrehozásakor" #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "Sablon" @@ -2480,9 +2501,9 @@ msgid "Parts are templates by default" msgstr "Alkatrészek alapból sablon alkatrészek legyenek" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "Gyártmány" @@ -2491,7 +2512,7 @@ msgid "Parts can be assembled from other components by default" msgstr "Alkatrészeket alapból lehessen gyártani másik alkatrészekből" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "Összetevő" @@ -2508,7 +2529,7 @@ msgid "Parts are purchaseable by default" msgstr "Alkatrészek alapból beszerezhetők legyenek" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "Értékesíthető" @@ -2523,7 +2544,7 @@ msgstr "Alkatrészek alapból követésre kötelezettek legyenek" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "Virtuális" @@ -3616,7 +3637,7 @@ msgstr "Az utoljára használt nyomtató tárolása a felhasználóhoz" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Felhasználó" @@ -3813,7 +3834,7 @@ msgstr "Definíció" msgid "Unit definition" msgstr "Mértékegység definíció" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4244,7 +4265,7 @@ msgstr "Link a címinformációkhoz (külső)" msgid "Manufacturer Part" msgstr "Gyártói alkatrész" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4262,7 +4283,7 @@ msgstr "Válassz alkatrészt" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "Gyártó" @@ -4298,9 +4319,9 @@ msgid "Parameter name" msgstr "Paraméter neve" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Érték" @@ -4322,12 +4343,12 @@ msgstr "Paraméter mértékegység" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "Beszállítói alkatrész" @@ -4355,7 +4376,7 @@ msgstr "Kapcsolódó gyártói alkatrésznek ugyanarra a kiindulási alkatrészr #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "Beszállító" @@ -4405,13 +4426,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimális díj (pl. tárolási díj)" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "Csomagolás" @@ -4537,15 +4558,15 @@ msgstr "Kép törlése" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "Vevő" @@ -4595,7 +4616,7 @@ msgstr "Új beszállítói alkatrész létrehozása" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "Új beszállítói alkatrész" @@ -4608,7 +4629,7 @@ msgstr "Gyártói alkatrészek" msgid "Create new manufacturer part" msgstr "Új gyártói alkatrész létrehozása" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "Új gyártói alkatrész" @@ -4622,7 +4643,7 @@ msgstr "Beszállítói készlet" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4645,7 +4666,7 @@ msgstr "Új beszerzési rendelés" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4717,7 +4738,7 @@ msgstr "Gyártók" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "Alkatrész rendelés" @@ -4752,12 +4773,12 @@ msgstr "Beszállítók" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Paraméterek" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4800,7 +4821,7 @@ msgstr "Beszállítói alkatrész műveletek" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "Alkatrész rendelése" @@ -4853,7 +4874,7 @@ msgstr "Új készlet tétel létrehozása" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "Új készlet tétel" @@ -4891,13 +4912,13 @@ msgstr "Alkatrész elérhetőség frissítése" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "Készlet tételek" @@ -5225,7 +5246,7 @@ msgid "Order Status" msgstr "Rendelés állapota" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "Van árazás" @@ -5258,7 +5279,7 @@ msgstr "A rendelés függőben" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "Beszerzési rendelés" @@ -5267,7 +5288,7 @@ msgstr "Beszerzési rendelés" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "Visszavétel" @@ -5460,7 +5481,7 @@ msgstr "Beszállítói alkatrész" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "Beérkezett" @@ -5468,9 +5489,9 @@ msgstr "Beérkezett" msgid "Number of items received" msgstr "Érkezett tételek száma" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "Beszerzési ár" @@ -5758,7 +5779,7 @@ msgid "Select destination location for received items" msgstr "Válassz cél helyet a beérkezett tételeknek" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "Írd be a batch kódját a beérkezett tételeknek" @@ -6070,7 +6091,7 @@ msgstr "Kijelöltek másolása" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Sor törlése" @@ -6251,7 +6272,7 @@ msgstr "Függő szállítmányok" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "Műveletek" @@ -6284,7 +6305,7 @@ msgstr "A {part} alkatrész módosított egységára {price} mennyisége pedig { #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "IPN (Belső Cikkszám)" @@ -6532,8 +6553,8 @@ msgstr "Alkatrész kategóriák" msgid "Default location for parts in this category" msgstr "Ebben a kategóriában lévő alkatrészek helye alapban" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6551,13 +6572,13 @@ msgstr "Alapértelmezett kulcsszavak" msgid "Default keywords for parts in this category" msgstr "Ebben a kategóriában évő alkatrészek kulcsszavai alapban" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Ikon" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "Ikon (opcionális)" @@ -6733,7 +6754,7 @@ msgid "Is this part active?" msgstr "Aktív-e ez az alkatrész?" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6935,7 +6956,7 @@ msgstr "Teljes készlet a leltárkor" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "Dátum" @@ -7037,7 +7058,7 @@ msgstr "Adj hozzá egy leírást ehhez a teszthez" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "Engedélyezve" @@ -7046,7 +7067,7 @@ msgid "Is this test enabled?" msgstr "Teszt engedélyezve?" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "Kötelező" @@ -7107,7 +7128,7 @@ msgid "Parameter description" msgstr "Paraméter leírása" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "Jelölőnégyzet" @@ -7255,7 +7276,7 @@ msgstr "Ezt az alkatrészjegyzék tételt az alkatrész változatok alkatrészje msgid "Stock items for variant parts can be used for this BOM item" msgstr "Alkatrészváltozatok készlet tételei használhatók ehhez az alkatrészjegyzék tételhez" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "A mennyiség egész szám kell legyen a követésre kötelezett alkatrészek esetén" @@ -7353,7 +7374,7 @@ msgstr "Kép másolása" msgid "Copy image from original part" msgstr "Kép másolása az eredeti alkatrészről" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "Alkatrészjegyzék másolása" @@ -7555,80 +7576,110 @@ msgstr "A Minimum ár nem lehet nagyobb mint a Maximum ár" msgid "Maximum price must not be less than minimum price" msgstr "A Maximum ár nem lehet kisebb mint a Minimum ár" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +#, fuzzy +#| msgid "Select parent part" +msgid "Select the parent assembly" +msgstr "Szülő alkatrész kiválasztása" + +#: part/serializers.py:1583 +#, fuzzy +#| msgid "Component" +msgid "Component Name" +msgstr "Összetevő" + +#: part/serializers.py:1586 +#, fuzzy +#| msgid "Component" +msgid "Component IPN" +msgstr "Összetevő" + +#: part/serializers.py:1589 +#, fuzzy +#| msgid "Company description" +msgid "Component Description" +msgstr "Cég leírása" + +#: part/serializers.py:1595 +#, fuzzy +#| msgid "Select parent part" +msgid "Select the component part" +msgstr "Szülő alkatrész kiválasztása" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "Gyártható" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "Válassz alkatrészt ahonnan az alkatrészjegyzéket másoljuk" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "Létező adat törlése" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "Meglévő alkatrészjegyzék tételek törlése a másolás előtt" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "Örököltekkel együtt" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "Sablon alkatrészektől örökölt alkatrészjegyzék tételek használata" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "Hibás sorok kihagyása" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "Engedély a hibás sorok kihagyására" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "Helyettesítő alkatrészek másolása" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "Helyettesítő alkatrészek másolása az alkatrészjegyzék tételek másolásakor" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "Meglévő alkatrészjegyzék törlése" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "Meglévő alkatrészjegyzék tételek törlése a feltöltés előtt" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "Nincs megadva alkatrész oszlop" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "Több egyező alkatrész is található" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "Nincs egyező alkatrész" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "Az alkatrész nem lett összetevőként jelölve" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "Mennyiség nincs megadva" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "Érvénytelen mennyiség" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "Legalább egy alkatrészjegyzék tétel szükséges" @@ -7786,7 +7837,7 @@ msgstr "Leltár információ hozzáadása" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "Leltár" @@ -7798,101 +7849,107 @@ msgstr "Alkatrész teszt sablonok" msgid "Add Test Template" msgstr "Teszt sablon hozzáadása" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +#, fuzzy +#| msgid "Part Test Templates" +msgid "Part Test Statistics" +msgstr "Alkatrész teszt sablonok" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "Vevői rendeléshez foglalások" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "Alkatrész megjegyzések" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "Alkatrész változatok" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "Új változat létrehozása" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "Új változat" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "Paraméter hozzáadása" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "Kapcsolódó alkatrészek" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "Kapcsolódó hozzáadása" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "Alkatrészjegyzék" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "Exportálási műveletek" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "Alkatrészjegyzék exportálása" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "Alkatrészjegyzék riport nyomtatása" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "Alkatrészjegyzék műveletek" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "Alkatrészjegyzék feltöltése" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "Alkatrészjegyzék jóváhagyása" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "Alkatrészjegyzék tétel hozzáadása" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "Gyártmányok" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "Alkatrész gyártások" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "Gyártáshoz foglalások" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "Alkatrész beszállítók" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "Alkatrész gyártók" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "Kapcsolódó alkatrész" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "Kapcsolódó alkatrész hozzáadása" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "Teszt eredmény sablon hozzáadása" @@ -8135,8 +8192,8 @@ msgstr "Változatok" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "Készlet" @@ -8182,7 +8239,7 @@ msgstr "Szerkesztés" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "Utoljára módosítva" @@ -8816,7 +8873,7 @@ msgid "Is the plugin active" msgstr "Aktív-e a plugin" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "Beépítve" @@ -9229,6 +9286,8 @@ msgstr "Egyéb tételek" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "Összesen" @@ -9245,11 +9304,11 @@ msgid "Test Results" msgstr "Teszt eredmények" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "Teszt" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "Eredmény" @@ -9275,8 +9334,8 @@ msgid "Installed Items" msgstr "Beépített tételek" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "Sorozatszám" @@ -9333,7 +9392,7 @@ msgstr "Beszállító neve" msgid "Customer ID" msgstr "Vevő ID" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "Beépítve ebbe" @@ -9358,9 +9417,9 @@ msgstr "Felülvizsgálat szükséges" msgid "Delete on Deplete" msgstr "Törlés ha kimerül" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "Lejárati dátum" @@ -9376,7 +9435,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "Szűrt eredmények tartalmazzák az alhelyeket" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "Szülő hely" @@ -9426,316 +9485,316 @@ msgstr "A beszállítói alkatrészhez van megadva csomagolási mennyiség, de a msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Sorozatszámot nem lehet megadni nem követésre kötelezett alkatrész esetén" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "Készlethely típus" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "Készlethely típusok" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "Alapértelmezett ikon azokhoz a helyekhez, melyeknek nincs ikonja beállítva (válaszható)" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Készlet hely" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Készlethelyek" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Tulajdonos" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "Tulajdonos kiválasztása" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "A szerkezeti raktári helyekre nem lehet direktben raktározni, csak az al-helyekre." -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "Külső" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "Ez egy külső készlethely" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "Helyszín típusa" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "Tárolóhely típus" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "Nem lehet ezt a raktári helyet szerkezetivé tenni, mert már vannak itt tételek!" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "A szerkezeti raktári helyre nem lehet készletet felvenni!" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "Virtuális alkatrészből nem lehet készletet létrehozni" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "A beszállítói alkatrész típusa ('{self.supplier_part.part}') mindenképpen {self.part} kellene, hogy legyen" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "Mennyiség 1 kell legyen a sorozatszámmal rendelkező tételnél" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Nem lehet sorozatszámot megadni ha a mennyiség több mint egy" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "A tétel nem tartozhat saját magához" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "A tételnek kell legyen gyártási azonosítója ha az is_bulding igaz" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "Gyártási azonosító nem ugyanarra az alkatrész objektumra mutat" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "Szülő készlet tétel" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "Kiindulási alkatrész" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "Válassz egy egyező beszállítói alkatrészt ehhez a készlet tételhez" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "Hol található ez az alkatrész?" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "A csomagolása ennek a készlet tételnek itt van tárolva" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "Ez a tétel be van építve egy másik tételbe?" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "Sorozatszám ehhez a tételhez" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "Batch kód ehhez a készlet tételhez" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "Készlet mennyiség" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "Forrás gyártás" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "Gyártás ehhez a készlet tételhez" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "Felhasználva ebben" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "Felhasználva ebben a gyártásban" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "Forrás beszerzési rendelés" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "Beszerzés ehhez a készlet tételhez" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "Cél vevői rendelés" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Készlet tétel lejárati dátuma. A készlet lejártnak tekinthető ezután a dátum után" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "Törlés ha kimerül" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "Készlet tétel törlése ha kimerül" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "Egy egység beszerzési ára a beszerzés időpontjában" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "Alkatrésszé alakítva" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "Az alkatrész nem követésre kötelezett" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "Mennyiség egész szám kell legyen" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "A mennyiség nem haladhatja meg az elérhető készletet ({self.quantity})" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "A sorozatszám egész számok listája kell legyen" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "A mennyiség nem egyezik a megadott sorozatszámok számával" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "A sorozatszámok már léteznek" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "Ez a Teszt sablon nem létezik" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "Készlet tétel hozzárendelve egy vevői rendeléshez" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "Készlet tétel beépül egy másikba" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "A készlet tétel más tételeket tartalmaz" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "Készlet tétel hozzárendelve egy vevőhöz" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "Készlet tétel gyártás alatt" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "Követésre kötelezett készlet nem vonható össze" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "Duplikált készlet tételek vannak" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "A készlet tétel ugyanarra az alkatrészre kell vonatkozzon" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "A készlet tétel ugyanarra a beszállítói alkatrészre kell vonatkozzon" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "Készlet tételek állapotainak egyeznie kell" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "Készlet tétel nem mozgatható mivel nincs készleten" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "Bejegyzés megjegyzései" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "Ehhez a teszthez meg kell adni értéket" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "Ehhez a teszthez fel kell tölteni mellékletet" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "Teszt eredménye" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "Teszt kimeneti értéke" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "Teszt eredmény melléklet" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "Tesztek megjegyzései" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "Teszt állomás" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "A tesztet elvégző tesztállomás azonosítója" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "Elkezdődött" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "A teszt indításának időpontja" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "Befejezve" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "A teszt befejezésének időpontja" @@ -9845,7 +9904,7 @@ msgstr "A mennyiség nem lépheti túl a rendelkezésre álló készletet ({q})" msgid "Enter serial numbers for new items" msgstr "Írd be a sorozatszámokat az új tételekhez" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "Cél készlet hely" @@ -9869,8 +9928,8 @@ msgstr "Beépítendő mennyiség" msgid "Enter the quantity of items to install" msgstr "Adja meg a beépítendő mennyiséget" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "Tranzakció megjegyzés hozzáadása (opcionális)" @@ -9894,106 +9953,112 @@ msgstr "A beépítendő mennyiség nem haladhatja meg az elérhető mennyiséget msgid "Destination location for uninstalled item" msgstr "Cél hely a kiszedett tételeknek" -#: stock/serializers.py:884 +#: stock/serializers.py:900 +#, fuzzy +#| msgid "Unsupported file type" +msgid "Unsupported statistic type: " +msgstr "Nem támogatott fájltípus" + +#: stock/serializers.py:914 msgid "Select part to convert stock item into" msgstr "Válassz alkatrészt amire konvertáljuk a készletet" -#: stock/serializers.py:897 +#: stock/serializers.py:927 msgid "Selected part is not a valid option for conversion" msgstr "A kiválasztott alkatrész nem megfelelő a konverzióhoz" -#: stock/serializers.py:914 +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "Készlet tétel hozzárendelt beszállítói alkatrésszel nem konvertálható" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "Cél hely a visszatérő tételeknek" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "Válaszd ki a státuszváltásra szánt készlet tételeket" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "Nincs készlet tétel kiválasztva" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Alhelyek" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "Felsőbb szintű készlet hely" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "Az alkatrésznek értékesíthetőnek kell lennie" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "A tétel egy vevő rendeléshez foglalt" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "A tétel egy gyártási utasításhoz foglalt" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "Vevő akihez rendeljük a készlet tételeket" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "A kiválasztott cég nem egy vevő" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "Készlet hozzárendelés megjegyzései" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "A készlet tételek listáját meg kell adni" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "Készlet összevonás megjegyzései" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "Nem egyező beszállítók megengedése" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "Különböző beszállítói alkatrészekből származó készletek összevonásának engedélyezése" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "Nem egyező állapotok megjelenítése" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "Különböző állapotú készletek összevonásának engedélyezése" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "Legalább két készlet tételt meg kell adni" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "Nincs változás" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "Készlet tétel elsődleges kulcs értéke" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "Készlet tétel státusz kódja" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "Készlet tranzakció megjegyzései" @@ -10025,7 +10090,7 @@ msgstr "Karanténban" msgid "Legacy stock tracking entry" msgstr "Örökölt készlet követési bejegyzés" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Készlet tétel létrehozva" @@ -10081,7 +10146,7 @@ msgstr "Szülő tételből szétválasztva" msgid "Split child item" msgstr "Szétválasztott gyermek tétel" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Összevont készlet tétel" @@ -10101,7 +10166,7 @@ msgstr "Gyártási utasítás kimenete kész" msgid "Build order output rejected" msgstr "Gyártási utasítás kimenete elutasítva" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Gyártásra felhasználva" @@ -10162,7 +10227,7 @@ msgstr "Készlet tétel megjegyzések" msgid "Installed Stock Items" msgstr "Beépített készlet tételek" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "Készlet tétel beépítése" @@ -10170,7 +10235,7 @@ msgstr "Készlet tétel beépítése" msgid "Delete all test results for this stock item" msgstr "Készlet tétel összes teszt eredményének törlése" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "Teszt eredmény hozzáadása" @@ -10184,7 +10249,7 @@ msgstr "Áthelyezés kódolvasással" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "Nyomtatási műveletek" @@ -10193,17 +10258,17 @@ msgid "Stock adjustment actions" msgstr "Készlet módosítási műveletek" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "Leltározás" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "Készlet növelése" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "Készlet csökkentése" @@ -10212,12 +10277,12 @@ msgid "Serialize stock" msgstr "Sorozatszámok előállítása" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "Készlet áthelyezése" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "Vevőhöz rendelése" @@ -10343,7 +10408,7 @@ msgid "No stocktake performed" msgstr "Még nem volt leltározva" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "készlet tétel" @@ -10452,7 +10517,7 @@ msgid "New Location" msgstr "Új hely" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "készlet hely" @@ -10840,7 +10905,7 @@ msgstr "Telepítési útvonal" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "Beépített" @@ -10850,7 +10915,7 @@ msgstr "Ez egy beépített plugin amit nem lehet letiltani" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "Minta" @@ -10955,7 +11020,7 @@ msgstr "Árfolyam" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "Törlés" @@ -11812,7 +11877,7 @@ msgstr "Ez törli a vonalkód hozzárendelést" msgid "Unlink" msgstr "Leválasztás" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "Készlet tétel törlése" @@ -12125,13 +12190,13 @@ msgstr "Gyártási utasítás befejezetlen" msgid "Complete Build Order" msgstr "Gyártási utasítás befejezése" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "Következő szabad sorozatszám" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "Legutolsó sorozatszám" @@ -12392,7 +12457,7 @@ msgstr "Nincs a lekérdezéssel egyező gyártási utasítás" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "Kiválaszt" @@ -12400,7 +12465,7 @@ msgstr "Kiválaszt" msgid "Build order is overdue" msgstr "Gyártás késésben van" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "Nincs felhasználói információ" @@ -12469,7 +12534,7 @@ msgstr "Egyedileg nyilvántartott tételek lefoglalása egyedi gyártási kimene msgid "Build stock" msgstr "Gyártási készlet" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "Készlet rendelés" @@ -12723,45 +12788,45 @@ msgstr "Ársáv szerkesztése" msgid "Delete price break" msgstr "Ársáv törlése" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "igaz" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "hamis" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "Szűrő kiválasztása" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "Címkék nyomtatása" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "Riportok nyomtatása" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "Táblázat letöltése" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "Táblázat frissítése" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "Új szűrő hozzáadása" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "Összes szűrő törlése" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "Szűrő létrehozása" @@ -13001,8 +13066,8 @@ msgstr "Alkatrész másolási opciók" msgid "Add Part Category" msgstr "Alkatrész kategória hozzáadása" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "Ikon (opcionális) - Az összes ikon felfedezése itt" @@ -13127,7 +13192,7 @@ msgid "Copy Bill of Materials" msgstr "Alkatrészjegyzék másolása" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "Alacsony készlet" @@ -13257,7 +13322,7 @@ msgid "No category" msgstr "Nincs kategória" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "Megjelenítés listaként" @@ -13269,7 +13334,7 @@ msgstr "Megjelenítés rácsnézetként" msgid "No subcategories found" msgstr "Nem találhatóak alkategóriák" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "Megjelenítés fában" @@ -13551,7 +13616,7 @@ msgid "Quantity to receive" msgstr "Érkező mennyiség" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13888,7 +13953,7 @@ msgstr "Készlet foglalások törlése" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "Vevőnek kiszállítva" @@ -13946,513 +14011,521 @@ msgstr "Eredmények összezárása" msgid "Remove results" msgstr "Eredmények eltávolítása" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "Készlet tétel sorszámozása" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "Készlet sorozatszámozás megerősítése" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "Készlethely típus hozzáadása" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "Készlet hely szerkesztése" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "Új készlet hely" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "Új készlethely létrehozása ez után" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "Készlet hely létrehozva" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "Biztosan törölni szeretnéd ezt a készlet helyet?" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "Szülő készlet helyre mozgatás" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "Készlethely törlése" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "Műveletek az ezen a helyen lévő tételekhez" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "Műveletek az al-helyekhez" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "Ezt az alkatrészt nem lehet sorozatszámozni" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "Mennyiség hozzáadása csomagolási egységenként egyedi tételek helyett" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "Add meg a kezdeti mennyiséget ehhez a készlet tételhez" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Add meg az új készlet tételhez tartozó sorozatszámokat (vagy hagyd üresen)" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "Készlet tétel lemásolva" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "Készlet tétel másolása" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "Biztosan törölni szeretnéd ezt a készlet tételt?" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "Készlet tétel törlése" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "Készlet tétel szerkesztése" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "Új tétel létrehozása ez után" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "Készlet tétel létrehozva" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "Több készlet tétel létre lett hozva" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "Sorozatszám keresése" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "Sorozatszám megadása" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "Adj meg egy sorozatszámot" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "Nincs egyező sorozatszám" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "Több egyező eredmény is van" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "Készlet hozzárendelés jóváhagyása" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "Készlet vevőhöz rendelése" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "Figyelem: az összevonási művelet nem vonható vissza" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "Némi információ elveszik a készlet összevonás során" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "A készlettörténet törölve lesz az összevont tételeknél" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "A beszállítói alkatrész információk törlődnek az összevont tételeknél" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "Készlet összevonás megerősítése" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "Készlet tételek összevonása" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "Készlet áthelyezése" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "Áthelyezés" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "Leltározás" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "Leltár" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "Készlet csökkentése" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "Kivesz" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "Készlet növelése" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "Hozzáad" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "Készlet törlése" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "Egyedi követésre kötelezett tételeknél a menyiség nem módosítható" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "Készlet mennyiség megadása" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "Készlet tételek kiválasztása" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "Válassz legalább egy rendelkezésre álló készlet tételt" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "Készlet módosítás jóváhagyása" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "SIKER" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "SIKERTELEN" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "NINCS EREDMÉNY" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "Teszt sikeres" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "Teszt eredmény hozzáadása" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "Teszt eredmény szerkesztése" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "Teszt eredmény törlése" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "Nincs teszt eredmény" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "Teszt dátuma" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "Teszt elkezdődött" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "Teszt befejezve" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "Teszt eredmény szerkesztése" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "Teszt eredmény törlése" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "Gyártásban" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "Beépítve készlet tételbe" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "Vevő rendeléshez hozzárendelve" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "Nincs hely megadva" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "Készlet állapot módosítása" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "Készlet összevonása" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "Készlet törlése" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "készlet tételek" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "Beolvasás helyre" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "Készlet műveletek" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "Beépített tételek betöltése" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "Készlet tétel gyártás alatt" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "Készlet tétel hozzárendelve egy vevői rendeléshez" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "Készlet tétel hozzárendelve egy vevőhöz" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "Egyedi követésre kötelezett készlet tétel lefoglalva" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "Készlet tétel teljes egészében lefoglalva" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "Készlet tétel részben lefoglalva" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "Készlet tétel beépítve egy másikba" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "Készlet tétel fel lett használva egy gyártásban" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "Készlet tétel lejárt" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "Készlet tétel hamarosan lejár" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "Készlet tétel elutasítva" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "Készlet tétel elveszett" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "Készlet tétel megsemmisült" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "Kimerült" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "Beszállítói alkatrész nincs megadva" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "Készletérték" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "Nincs a lekérdezésnek megfelelő készlet tétel" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "készlethelyek" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "Alhelyek betöltése" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "Részletek" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "Nincs változás" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "Alkatrész információ nem áll rendelkezésre" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "A hely már nem létezik" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "A gyártási utasítás már nem létezik" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "Beszerzési megrendelés már nem létezik" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "Vevői megrendelés már nem létezik" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "Visszavétel már nem létezik" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "Vevő már nem létezik" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "A készlet tétel már nem létezik" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "Hozzáadva" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "Eltávolítva" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "Nincsenek beépített tételek" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "Készlet tétel kiszedése" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "Válaszd ki a kiszedni való készlet tételt" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "Másik tétel beépítése ebbe a készlet tételbe" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "Készlet tételek csak akkor építhetők be ha teljesítik a következő kritériumokat" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "A készlet tétel egy olyan alkatrészre mutat ami alkatrészjegyzéke ennek a készlet tételnek" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "A készlet tétel jelenleg elérhető készleten" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "A készlet tétel még nem épült be egy másik tételbe" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "A készlet tétel követett vagy sorozatszámmal vagy batch kóddal" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "Válaszd ki a beépítendő alkatrészt" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "Válassz ki egy vagy több készlet tételt" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "Kiválasztott készlet tételek" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "Készlet állapot módosítása" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "Van projektszáma" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "Rendelés állapota" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "Kintlévő" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "Hozzám rendelt" @@ -14487,12 +14560,12 @@ msgstr "Van készlethely típusa" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "Alkategóriákkal együtt" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "Értesítés beállítva" @@ -14534,7 +14607,7 @@ msgid "Batch code" msgstr "Batch kód" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "Aktív alkatrész" @@ -14635,56 +14708,68 @@ msgstr "Teszten megfelelt" msgid "Include Installed Items" msgstr "Beépített tételekkel együtt" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +#, fuzzy +#| msgid "Internal Part" +msgid "Interval start" +msgstr "Belső alkatrész" + +#: templates/js/translated/table_filters.js:475 +#, fuzzy +#| msgid "Internal Price" +msgid "Interval end" +msgstr "Belső ár" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "Gyártási állapot" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "Alkategóriákkal együtt" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "Aktív alkatrészek megjelenítése" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "Elérhető" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "Van mértékegysége" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "Az alkatrésznek van megadva mértékegysége" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "Van IPN-je" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "Van belső cikkszáma" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "Készleten" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "Beszerezhető" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "Volt leltár" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "Vannak lehetőségei" @@ -14957,6 +15042,18 @@ msgstr "Email beállítások" msgid "Email settings not configured" msgstr "Email beállítások hiányoznak" +#: templates/test_statistics_table.html:13 +#, fuzzy +#| msgid "Pass" +msgid "Passed" +msgstr "Sikeres" + +#: templates/test_statistics_table.html:16 +#, fuzzy +#| msgid "Fail" +msgid "Failed" +msgstr "Sikertelen" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "Igen" @@ -15060,4 +15157,3 @@ msgstr "Jogosultság tételek szerkesztéséhez" #: users/models.py:408 msgid "Permission to delete items" msgstr "Jogosultság tételek törléséhez" - diff --git a/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po index a2ed8d15d2..2103501234 100644 --- a/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Indonesian\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "Masukkan tanggal" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "Masukkan tanggal" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "Masukkan tanggal" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Catatan" @@ -91,47 +92,51 @@ msgstr "" msgid "Provided value does not match required pattern: " msgstr "Nilai yang diberikan tidak sesuai dengan pola yang ditentukan: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Masukkan sandi" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Masukkan kata sandi baru" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Konfirmasikan kata sandi" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Konfirmasi sandi baru" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Kata sandi lama" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "Email (ulang)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Konfirmasi alamat email" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Masukkan email yang sama." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Alamat surel utama yang diberikan tidak valid." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Domain surel yang diberikan tidak perbolehkan." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "" @@ -417,7 +422,7 @@ msgstr "Pilihan tidak valid" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +435,7 @@ msgstr "Pilihan tidak valid" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Nama" @@ -446,7 +451,7 @@ msgstr "Nama" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +471,17 @@ msgstr "Nama" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Keterangan" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Keterangan (opsional)" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Direktori" @@ -573,10 +578,10 @@ msgstr "" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -730,7 +735,7 @@ msgstr "Pesanan harus dibatalkan sebelum dapat dihapus" #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" @@ -739,19 +744,19 @@ msgstr "" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" @@ -765,7 +770,7 @@ msgstr "" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" @@ -774,7 +779,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Order Produksi" @@ -854,7 +859,7 @@ msgstr "Produksi induk dari produksi ini" #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +871,7 @@ msgstr "Produksi induk dari produksi ini" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +896,10 @@ msgstr "Produksi induk dari produksi ini" #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Bagian" @@ -953,9 +958,9 @@ msgid "Build status code" msgstr "Kode status pembuatan" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Kode Kelompok" @@ -1006,7 +1011,7 @@ msgstr "Pengguna yang menyerahkan order ini" #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "Penanggung Jawab" @@ -1020,14 +1025,14 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Tautan eksternal" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Tautan menuju URL eksternal" @@ -1082,8 +1087,8 @@ msgstr "Hasil produksi tidak sesuai dengan order produksi" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "Jumlah harus lebih besar daripada nol" @@ -1146,9 +1151,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "Jumlah" @@ -1182,8 +1187,8 @@ msgid "Selected stock item does not match BOM line" msgstr "" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1199,8 @@ msgstr "" #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "Stok Item" @@ -1260,7 +1265,7 @@ msgstr "Jumlah harus angka bulat karena terdapat bagian yang dapat dilacak dalam #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Nomor Seri" @@ -1271,8 +1276,8 @@ msgstr "Masukkan nomor seri untuk hasil pesanan" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1287,9 @@ msgstr "Masukkan nomor seri untuk hasil pesanan" #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "Lokasi" @@ -1335,15 +1340,15 @@ msgstr "Lokasi hasil pesanan yang selesai" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" @@ -1443,7 +1448,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:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "Item harus tersedia dalam stok" @@ -1537,7 +1542,7 @@ msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1552,7 @@ msgstr "" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" @@ -1576,7 +1581,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" @@ -1601,7 +1606,7 @@ msgid "Allocated Stock" msgstr "" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1614,13 @@ msgstr "" msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1644,7 @@ msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "" @@ -1685,7 +1690,7 @@ msgstr "" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1812,9 +1817,9 @@ msgstr "" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" @@ -1835,7 +1840,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" @@ -1893,8 +1898,8 @@ msgstr "" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1919,7 @@ msgstr "" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +1992,13 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +#, fuzzy +#| msgid "Build status code" +msgid "Build test statistics" +msgstr "Kode status pembuatan" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2008,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,6 +2048,11 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + #: common/api.py:692 msgid "Is Link" msgstr "" @@ -2470,7 +2486,7 @@ msgstr "" #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" @@ -2479,9 +2495,9 @@ msgid "Parts are templates by default" msgstr "" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" @@ -2490,7 +2506,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" @@ -2507,7 +2523,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" @@ -2522,7 +2538,7 @@ msgstr "" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" @@ -3615,7 +3631,7 @@ msgstr "" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Pengguna" @@ -3812,7 +3828,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4259,7 @@ msgstr "" msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4277,7 @@ msgstr "" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" @@ -4297,9 +4313,9 @@ msgid "Parameter name" msgstr "" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" @@ -4321,12 +4337,12 @@ msgstr "" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" @@ -4354,7 +4370,7 @@ msgstr "" #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" @@ -4404,13 +4420,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "" @@ -4536,15 +4552,15 @@ msgstr "" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4594,7 +4610,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4607,7 +4623,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4621,7 +4637,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4660,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4732,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4751,12 +4767,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4815,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4852,7 +4868,7 @@ msgstr "" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4890,13 +4906,13 @@ msgstr "" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5224,7 +5240,7 @@ msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5257,7 +5273,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" @@ -5266,7 +5282,7 @@ msgstr "" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5459,7 +5475,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" @@ -5467,9 +5483,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" @@ -5757,7 +5773,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6069,7 +6085,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6250,7 +6266,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6283,7 +6299,7 @@ msgstr "" #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" @@ -6531,8 +6547,8 @@ msgstr "" msgid "Default location for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6566,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" @@ -6732,7 +6748,7 @@ msgid "Is this part active?" msgstr "" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6950,7 @@ msgstr "" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" @@ -7036,7 +7052,7 @@ msgstr "" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" @@ -7045,7 +7061,7 @@ msgid "Is this test enabled?" msgstr "" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" @@ -7106,7 +7122,7 @@ msgid "Parameter description" msgstr "" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" @@ -7254,7 +7270,7 @@ msgstr "" msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -7352,7 +7368,7 @@ msgstr "" msgid "Copy image from original part" msgstr "" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" @@ -7554,80 +7570,106 @@ msgstr "" msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +#, fuzzy +#| msgid "Select part to build" +msgid "Select the parent assembly" +msgstr "Pilih bagian untuk diproduksi" + +#: part/serializers.py:1583 +#, fuzzy +#| msgid "Complete" +msgid "Component Name" +msgstr "Selesai" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +#, fuzzy +#| msgid "Description" +msgid "Component Description" +msgstr "Keterangan" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" @@ -7785,7 +7827,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7797,101 +7839,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8134,8 +8180,8 @@ msgstr "" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8181,7 +8227,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8815,7 +8861,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -9228,6 +9274,8 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9244,11 +9292,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9274,8 +9322,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" @@ -9332,7 +9380,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9357,9 +9405,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9375,7 +9423,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9425,316 +9473,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "Lampiran perlu diunggah untuk tes ini" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9844,7 +9892,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "" @@ -9868,8 +9916,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "" @@ -9893,106 +9941,112 @@ msgstr "" msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:900 +#, fuzzy +#| msgid "Unsupported file type" +msgid "Unsupported statistic type: " +msgstr "Jenis file tidak didukung" + +#: stock/serializers.py:914 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:927 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "" @@ -10024,7 +10078,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Item stok dibuat" @@ -10080,7 +10134,7 @@ msgstr "Dipisah dari item induk" msgid "Split child item" msgstr "Pisah item dari barang induk" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Stok item digabungkan" @@ -10100,7 +10154,7 @@ msgstr "Order output produksi selesai" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Terpakai oleh order produksi" @@ -10161,7 +10215,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10169,7 +10223,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10183,7 +10237,7 @@ msgstr "" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10192,17 +10246,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10211,12 +10265,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10342,7 +10396,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10451,7 +10505,7 @@ msgid "New Location" msgstr "" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" @@ -10839,7 +10893,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10849,7 +10903,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10954,7 +11008,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -11811,7 +11865,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12124,13 +12178,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12391,7 +12445,7 @@ msgstr "" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" @@ -12399,7 +12453,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" @@ -12468,7 +12522,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" @@ -12722,45 +12776,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -13000,8 +13054,8 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" @@ -13126,7 +13180,7 @@ msgid "Copy Bill of Materials" msgstr "" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" @@ -13256,7 +13310,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" @@ -13268,7 +13322,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" @@ -13550,7 +13604,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13941,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13945,513 +13999,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14486,12 +14548,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14533,7 +14595,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14634,56 +14696,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14956,6 +15026,14 @@ msgstr "Pengaturan Surel" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" @@ -15059,4 +15137,3 @@ msgstr "" #: users/models.py:408 msgid "Permission to delete items" msgstr "" - diff --git a/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po index 9233297e16..e1c7840c43 100644 --- a/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Italian\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "Inserisci la data" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "Inserisci la data" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "Inserisci la data" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Note" @@ -91,47 +92,53 @@ msgstr "Il valore '{name}' non è nel formato del pattern" msgid "Provided value does not match required pattern: " msgstr "Il valore fornito non corrisponde al modello richiesto: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Inserire la password" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Inserire una nuova password" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Conferma la password" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Conferma la nuova password" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Vecchia password" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "Email (ancora)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Conferma indirizzo email" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "È necessario digitare la stessa e-mail ogni volta." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +#, fuzzy +#| msgid "Registration is disabled." +msgid "MFA Registration is disabled." +msgstr "La registrazione è disabilitata." + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "L'indirizzo email principale fornito non è valido." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "L'indirizzo di posta elettronica fornito non è approvato." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "La registrazione è disabilitata." @@ -417,7 +424,7 @@ msgstr "Scelta non valida" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +437,7 @@ msgstr "Scelta non valida" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Nome" @@ -446,7 +453,7 @@ msgstr "Nome" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +473,17 @@ msgstr "Nome" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Descrizione" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Descrizione (opzionale)" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Percorso" @@ -573,10 +580,10 @@ msgstr "Questo utente è un superutente" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "Attivo" @@ -730,7 +737,7 @@ msgstr "La produzione deve essere annullata prima di poter essere eliminata" #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "Consumabile" @@ -739,19 +746,19 @@ msgstr "Consumabile" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "Opzionale" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "Monitorato" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "Allocato" @@ -765,7 +772,7 @@ msgstr "Allocato" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "Disponibile" @@ -774,7 +781,7 @@ msgstr "Disponibile" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Ordine di Produzione" @@ -854,7 +861,7 @@ msgstr "Ordine di produzione a cui questa produzione viene assegnata" #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +873,7 @@ msgstr "Ordine di produzione a cui questa produzione viene assegnata" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +898,10 @@ msgstr "Ordine di produzione a cui questa produzione viene assegnata" #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Articolo" @@ -953,9 +960,9 @@ msgid "Build status code" msgstr "Codice stato di produzione" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Codice Lotto" @@ -1006,7 +1013,7 @@ msgstr "Utente che ha emesso questo ordine di costruzione" #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "Responsabile" @@ -1020,14 +1027,14 @@ msgstr "Utente o gruppo responsabile di questo ordine di produzione" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Collegamento esterno" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Link a URL esterno" @@ -1082,8 +1089,8 @@ msgstr "L'output della produzione non corrisponde all'ordine di compilazione" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "La quantità deve essere maggiore di zero" @@ -1146,9 +1153,9 @@ msgstr "Crea oggetto" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "Quantità" @@ -1182,8 +1189,8 @@ msgid "Selected stock item does not match BOM line" msgstr "L'articolo in stock selezionato non corrisponde alla voce nella BOM" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1201,8 @@ msgstr "L'articolo in stock selezionato non corrisponde alla voce nella BOM" #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "Articoli in magazzino" @@ -1260,7 +1267,7 @@ msgstr "Quantità totale richiesta, poiché la fattura dei materiali contiene ar #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Codice Seriale" @@ -1271,8 +1278,8 @@ msgstr "Inserisci i numeri di serie per gli output di compilazione (build option #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1289,9 @@ msgstr "Inserisci i numeri di serie per gli output di compilazione (build option #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "Posizione" @@ -1335,15 +1342,15 @@ msgstr "Posizione per gli output di build completati" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "Stato" @@ -1443,7 +1450,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:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "L'articolo deve essere disponibile" @@ -1537,7 +1544,7 @@ msgstr "IPN Articolo" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1554,7 @@ msgstr "IPN Articolo" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "Numero Seriale" @@ -1576,7 +1583,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "Tracciabile" @@ -1601,7 +1608,7 @@ msgid "Allocated Stock" msgstr "" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1616,13 @@ msgstr "" msgid "On Order" msgstr "Ordinato" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1646,7 @@ msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "In attesa" @@ -1685,7 +1692,7 @@ msgstr "Anteprima parte" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Azioni Barcode" @@ -1812,9 +1819,9 @@ msgstr "Questa produzione era in scadenza il %(target)s" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "In ritardo" @@ -1835,7 +1842,7 @@ msgstr "Outputs Completati" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "Ordini di Vendita" @@ -1893,8 +1900,8 @@ msgstr "Articoli Assegnati" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1921,7 @@ msgstr "Nessuna data di destinazione impostata" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "Completato" @@ -1987,7 +1994,13 @@ msgstr "" msgid "Completed Build Outputs" msgstr "Produzioni Completate" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +#, fuzzy +#| msgid "Build Details" +msgid "Build test statistics" +msgstr "Dettagli della Produzione" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2010,25 @@ msgstr "Produzioni Completate" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Allegati" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "Genera Note" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "Nuovo Ordine di Produzione" @@ -2037,6 +2050,11 @@ msgstr "Elementi Riga" msgid "Incomplete Outputs" msgstr "Output Incompleti" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + #: common/api.py:692 msgid "Is Link" msgstr "" @@ -2470,7 +2488,7 @@ msgstr "Copia i modelli dei parametri categoria quando si crea un articolo" #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "Modello" @@ -2479,9 +2497,9 @@ msgid "Parts are templates by default" msgstr "Gli articoli sono modelli per impostazione predefinita" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "Assemblaggio" @@ -2490,7 +2508,7 @@ msgid "Parts can be assembled from other components by default" msgstr "Gli articoli possono essere assemblate da altri componenti per impostazione predefinita" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "Componente" @@ -2507,7 +2525,7 @@ msgid "Parts are purchaseable by default" msgstr "Gli articoli sono acquistabili per impostazione predefinita" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "Vendibile" @@ -2522,7 +2540,7 @@ msgstr "Gli articoli sono tracciabili per impostazione predefinita" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "Virtuale" @@ -3615,7 +3633,7 @@ msgstr "" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Utente" @@ -3812,7 +3830,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4261,7 @@ msgstr "" msgid "Manufacturer Part" msgstr "Codice articolo produttore" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4279,7 @@ msgstr "Seleziona articolo" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "Produttore" @@ -4297,9 +4315,9 @@ msgid "Parameter name" msgstr "Nome parametro" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Valore" @@ -4321,12 +4339,12 @@ msgstr "Unità parametri" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "Articolo Fornitore" @@ -4354,7 +4372,7 @@ msgstr "L'articolo del costruttore collegato deve riferirsi alla stesso articolo #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "Fornitore" @@ -4404,13 +4422,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "Onere minimo (ad esempio tassa di stoccaggio)" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "Confezionamento" @@ -4536,15 +4554,15 @@ msgstr "Elimina immagine" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "Cliente" @@ -4594,7 +4612,7 @@ msgstr "Crea nuovo fornitore" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "Nuovo fornitore articolo" @@ -4607,7 +4625,7 @@ msgstr "Articoli Produttore" msgid "Create new manufacturer part" msgstr "Crea nuovo articolo produttore" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "Nuovo Produttore Articoli" @@ -4621,7 +4639,7 @@ msgstr "Giacenza Fornitore" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4662,7 @@ msgstr "Nuovo Ordine di Acquisto" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4734,7 @@ msgstr "Produttori" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "Articoli ordinati" @@ -4751,12 +4769,12 @@ msgstr "Fornitori" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Parametri" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4817,7 @@ msgstr "Azioni Articolo Fornitore" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "Ordine Articolo" @@ -4852,7 +4870,7 @@ msgstr "Crea nuova allocazione magazzino" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "Nuovo Elemento in giacenza" @@ -4890,13 +4908,13 @@ msgstr "" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "Articoli in magazzino" @@ -5224,7 +5242,7 @@ msgid "Order Status" msgstr "Stato dell'ordine" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5257,7 +5275,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "Ordine D'Acquisto" @@ -5266,7 +5284,7 @@ msgstr "Ordine D'Acquisto" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "Restituisci ordine" @@ -5459,7 +5477,7 @@ msgstr "Articolo Fornitore" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "Ricevuto" @@ -5467,9 +5485,9 @@ msgstr "Ricevuto" msgid "Number of items received" msgstr "Numero di elementi ricevuti" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "Prezzo di Acquisto" @@ -5757,7 +5775,7 @@ msgid "Select destination location for received items" msgstr "Seleziona la posizione di destinazione per gli elementi ricevuti" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "Inserisci il codice univoco per gli articoli in arrivo" @@ -6069,7 +6087,7 @@ msgstr "Duplica selezionati" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Elimina riga" @@ -6250,7 +6268,7 @@ msgstr "Spedizione in sospeso" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "Azioni" @@ -6283,7 +6301,7 @@ msgstr "Aggiornato {part} unità prezzo a {price} e quantità a {qty}" #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "IPN - Numero di riferimento interno" @@ -6531,8 +6549,8 @@ msgstr "Categorie Articolo" msgid "Default location for parts in this category" msgstr "Posizione predefinita per gli articoli di questa categoria" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6568,13 @@ msgstr "Keywords predefinite" msgid "Default keywords for parts in this category" msgstr "Parole chiave predefinite per gli articoli in questa categoria" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Icona" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "Icona (facoltativa)" @@ -6732,7 +6750,7 @@ msgid "Is this part active?" msgstr "Quest'articolo è attivo?" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6952,7 @@ msgstr "Totale delle scorte disponibili al momento dell'inventario" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "Data" @@ -7036,7 +7054,7 @@ msgstr "Inserisci descrizione per questa prova" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "Abilitato" @@ -7045,7 +7063,7 @@ msgid "Is this test enabled?" msgstr "" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "Richiesto" @@ -7106,7 +7124,7 @@ msgid "Parameter description" msgstr "Descrizione del parametro" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" @@ -7254,7 +7272,7 @@ msgstr "Questo elemento della Distinta Base viene ereditato dalle Distinte Base msgid "Stock items for variant parts can be used for this BOM item" msgstr "Gli elementi in giacenza per gli articoli varianti possono essere utilizzati per questo elemento Distinta Base" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "La quantità deve essere un valore intero per gli articoli rintracciabili" @@ -7352,7 +7370,7 @@ msgstr "Copia immagine" msgid "Copy image from original part" msgstr "Copia immagine dall'articolo originale" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "Copia Distinta Base" @@ -7554,80 +7572,110 @@ msgstr "" msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +#, fuzzy +#| msgid "Select parent part" +msgid "Select the parent assembly" +msgstr "Seleziona articolo principale" + +#: part/serializers.py:1583 +#, fuzzy +#| msgid "Component" +msgid "Component Name" +msgstr "Componente" + +#: part/serializers.py:1586 +#, fuzzy +#| msgid "Component" +msgid "Component IPN" +msgstr "Componente" + +#: part/serializers.py:1589 +#, fuzzy +#| msgid "Company description" +msgid "Component Description" +msgstr "Descrizione azienda" + +#: part/serializers.py:1595 +#, fuzzy +#| msgid "Select parent part" +msgid "Select the component part" +msgstr "Seleziona articolo principale" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "Puoi produrre" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "Seleziona l'articolo da cui copiare la distinta base" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "Rimuovi Dati Esistenti" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "Rimuovi elementi distinta base esistenti prima di copiare" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "Includi Ereditato" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "Includi gli elementi Distinta Base ereditati da prodotti template" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "Salta Righe Non Valide" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "Abilita questa opzione per saltare le righe non valide" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "Copia Articoli sostitutivi" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "Copia articoli sostitutivi quando duplichi gli elementi distinta base" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "Cancella Distinta Base esistente" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "Rimuovi elementi distinta base esistenti prima del caricamento" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "Nessuna colonna articolo specificata" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "Trovati più articoli corrispondenti" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "Nessun articolo corrispondente trovato" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "L'articolo non è indicato come componente" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "Quantità non fornita" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "Quantità non valida" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "Almeno un elemento della distinta base è richiesto" @@ -7785,7 +7833,7 @@ msgstr "Aggiungi informazioni inventario" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "Inventario" @@ -7797,101 +7845,107 @@ msgstr "Modelli Articoli Test" msgid "Add Test Template" msgstr "Aggiungi Modelli Test" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +#, fuzzy +#| msgid "Part Test Templates" +msgid "Part Test Statistics" +msgstr "Modelli Articoli Test" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "Assegnazione Ordine Di Vendita" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "Note Articolo" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "Varianti articolo" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "Crea nuova variante" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "Nuova variante" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "Aggiungi un nuovo parametro" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "Articoli correlati" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "Aggiungi Correlato" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "Distinta base" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "Esporta azioni" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "Esporta Distinta Base" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "Stampa il report Distinta Base" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "Azioni Distinta Base" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "Carica Distinta Base" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "Valida Distinta Base" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "Aggiungi elemento Distinta Base" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "Assembla" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "Articoli prodotti" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "Costruisci le ubicazioni degli ordini" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "Fornitori articoli" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "Componenti Produttori" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8134,8 +8188,8 @@ msgstr "Varianti" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "Magazzino" @@ -8181,7 +8235,7 @@ msgstr "Modifica" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "Ultimo aggiornamento" @@ -8815,7 +8869,7 @@ msgid "Is the plugin active" msgstr "Il plugin è attivo" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "Installato" @@ -9228,6 +9282,8 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "Totale" @@ -9244,11 +9300,11 @@ msgid "Test Results" msgstr "Risultati Test" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "Risultato" @@ -9274,8 +9330,8 @@ msgid "Installed Items" msgstr "Elementi installati" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "Seriale" @@ -9332,7 +9388,7 @@ msgstr "Nome Fornitore" msgid "Customer ID" msgstr "ID Cliente" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "Installato In" @@ -9357,9 +9413,9 @@ msgstr "Revisione Necessaria" msgid "Delete on Deplete" msgstr "Elimina al esaurimento" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "Data di Scadenza" @@ -9375,7 +9431,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9425,316 +9481,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "I numeri di serie non possono essere forniti per un articolo non tracciabile" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Ubicazione magazzino" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Posizioni magazzino" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Proprietario" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "Seleziona Owner" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Gli elementi di magazzino non possono essere direttamente situati in un magazzino strutturale, ma possono essere situati in ubicazioni secondarie." -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "Esterno" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "Si tratta di una posizione esterna al magazzino" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "Non puoi rendere strutturale questa posizione di magazzino perché alcuni elementi di magazzino sono già posizionati al suo interno!" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "Gli articoli di magazzino non possono essere ubicati in posizioni di magazzino strutturali!" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "Non è possibile creare un elemento di magazzino per articoli virtuali" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "La quantità deve essere 1 per elementi con un numero di serie" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Il numero di serie non può essere impostato se la quantità è maggiore di 1" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "L'elemento non può appartenere a se stesso" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "L'elemento deve avere un riferimento di costruzione se is_building=True" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "Il riferimento di costruzione non punta allo stesso oggetto dell'articolo" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "Elemento di magazzino principale" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "Articolo base" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "Seleziona un fornitore articolo corrispondente per questo elemento di magazzino" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "Dove si trova questo articolo di magazzino?" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "Imballaggio di questo articolo di magazzino è collocato in" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "Questo elemento è stato installato su un altro elemento?" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "Numero di serie per questo elemento" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "Codice lotto per questo elemento di magazzino" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "Quantità disponibile" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "Genera Costruzione" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "Costruisci per questo elemento di magazzino" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "Origina Ordine di Acquisto" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "Ordine d'acquisto per questo articolo in magazzino" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "Destinazione Ordine di Vendita" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Data di scadenza per l'elemento di magazzino. Le scorte saranno considerate scadute dopo questa data" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "Elimina al esaurimento" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "Cancella questo Elemento di Magazzino quando la giacenza è esaurita" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "Prezzo di acquisto unitario al momento dell’acquisto" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "Convertito in articolo" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "L'articolo non è impostato come tracciabile" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "La quantità deve essere un numero intero" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "I numeri di serie devono essere numeri interi" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "La quantità non corrisponde ai numeri di serie" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "Numeri di serie già esistenti" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "L'elemento di magazzino è stato assegnato a un ordine di vendita" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "L'elemento di magazzino è installato in un altro elemento" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "L'elemento di magazzino contiene altri elementi" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "L'elemento di magazzino è stato assegnato a un cliente" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "L'elemento di magazzino è attualmente in produzione" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "Il magazzino serializzato non può essere unito" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "Duplica elementi di magazzino" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "Gli elementi di magazzino devono riferirsi allo stesso articolo" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "Gli elementi di magazzino devono riferirsi allo stesso articolo fornitore" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "I codici di stato dello stock devono corrispondere" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "Le giacenze non possono essere spostate perché non disponibili" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "Note d'ingresso" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "Il valore deve essere fornito per questo test" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "L'allegato deve essere caricato per questo test" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "Risultato Test" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "Test valore output" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "Risultato della prova allegato" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "Note del test" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9844,7 +9900,7 @@ msgstr "La quantità non deve superare la quantità disponibile ({q})" msgid "Enter serial numbers for new items" msgstr "Inserisci i numeri di serie per i nuovi elementi" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "Posizione magazzino di destinazione" @@ -9868,8 +9924,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "Aggiungi nota di transazione (opzionale)" @@ -9893,106 +9949,112 @@ msgstr "" msgid "Destination location for uninstalled item" msgstr "Posizione di destinazione per gli elementi disinstallati" -#: stock/serializers.py:884 +#: stock/serializers.py:900 +#, fuzzy +#| msgid "Unsupported file type" +msgid "Unsupported statistic type: " +msgstr "Formato file non supportato" + +#: stock/serializers.py:914 msgid "Select part to convert stock item into" msgstr "Seleziona l'articolo in cui convertire l'elemento di magazzino" -#: stock/serializers.py:897 +#: stock/serializers.py:927 msgid "Selected part is not a valid option for conversion" msgstr "L'articolo selezionato non è una valida opzione per la conversione" -#: stock/serializers.py:914 +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "Posizione di destinazione per l'elemento restituito" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Sottoallocazioni" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "L'articolo deve essere vendibile" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "L'elemento è assegnato a un ordine di vendita" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "Elemento assegnato a un ordine di costruzione" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "Cliente a cui assegnare elementi di magazzino" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "L'azienda selezionata non è un cliente" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "Note sull'assegnazione delle scorte" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "Deve essere fornito un elenco degli elementi di magazzino" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "Note di fusione di magazzino" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "Consenti fornitori non corrispondenti" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "Consenti di unire gli elementi di magazzino che hanno fornitori diversi" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "Consenti stato non corrispondente" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "Consenti di unire gli elementi di magazzino con diversi codici di stato" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "Devono essere riforniti almeno due elementi in magazzino" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "Valore di chiave primaria StockItem" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "Note sugli spostamenti di magazzino" @@ -10024,7 +10086,7 @@ msgstr "In quarantena" msgid "Legacy stock tracking entry" msgstr "Voce di tracciamento stock preesistente" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Elemento stock creato" @@ -10080,7 +10142,7 @@ msgstr "Diviso dall'elemento genitore" msgid "Split child item" msgstr "Dividi elemento figlio" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Elemento stock raggruppato" @@ -10100,7 +10162,7 @@ msgstr "Build order output completato" msgid "Build order output rejected" msgstr "Ordine di costruzione rifiutato" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Impegnato dall'ordine di costruzione" @@ -10161,7 +10223,7 @@ msgstr "Note Elemento di magazzino" msgid "Installed Stock Items" msgstr "Elementi di magazzino installati" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "Installa Elemento Magazzino" @@ -10169,7 +10231,7 @@ msgstr "Installa Elemento Magazzino" msgid "Delete all test results for this stock item" msgstr "Elimina tutti i risultati del test per questo elemento di magazzino" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10183,7 +10245,7 @@ msgstr "Scansiona nella posizione" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "Impostazioni di stampa" @@ -10192,17 +10254,17 @@ msgid "Stock adjustment actions" msgstr "Azioni adeguamento giacenza" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "Conta giacenza" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "Aggiungi giacenza" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "Rimuovi giacenza" @@ -10211,12 +10273,12 @@ msgid "Serialize stock" msgstr "Serializza magazzino" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "Trasferisci giacenza" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "Assegna al cliente" @@ -10342,7 +10404,7 @@ msgid "No stocktake performed" msgstr "Nessun inventario eseguito" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10451,7 +10513,7 @@ msgid "New Location" msgstr "Nuova Posizione" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" @@ -10839,7 +10901,7 @@ msgstr "Percorso d'installazione" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "Integrato" @@ -10849,7 +10911,7 @@ msgstr "Questo è un plugin integrato che non può essere disabilitato" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "Esempio" @@ -10954,7 +11016,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "Elimina" @@ -11811,7 +11873,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12124,13 +12186,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12391,7 +12453,7 @@ msgstr "" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" @@ -12399,7 +12461,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" @@ -12468,7 +12530,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" @@ -12722,45 +12784,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -13000,8 +13062,8 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" @@ -13126,7 +13188,7 @@ msgid "Copy Bill of Materials" msgstr "" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" @@ -13256,7 +13318,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" @@ -13268,7 +13330,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" @@ -13550,7 +13612,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13949,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13945,513 +14007,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "Aggiungi" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14486,12 +14556,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14533,7 +14603,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14634,56 +14704,68 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +#, fuzzy +#| msgid "Internal Part" +msgid "Interval start" +msgstr "Articolo interno" + +#: templates/js/translated/table_filters.js:475 +#, fuzzy +#| msgid "Internal Price" +msgid "Interval end" +msgstr "Prezzo interno" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14956,6 +15038,18 @@ msgstr "Impostazioni e-mail" msgid "Email settings not configured" msgstr "Impostazioni dell'email non configurate" +#: templates/test_statistics_table.html:13 +#, fuzzy +#| msgid "Pass" +msgid "Passed" +msgstr "Passaggio" + +#: templates/test_statistics_table.html:16 +#, fuzzy +#| msgid "Fail" +msgid "Failed" +msgstr "Fallito" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "Si" @@ -15059,4 +15153,3 @@ msgstr "Permessi per modificare gli elementi" #: users/models.py:408 msgid "Permission to delete items" msgstr "Autorizzazione ad eliminare gli elementi" - diff --git a/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po index d10d697831..3b96a2b767 100644 --- a/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Japanese\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "日付を入力する" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "日付を入力する" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "日付を入力する" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "メモ" @@ -91,47 +92,51 @@ msgstr "値 '{name}' はパターン形式で表示されません" msgid "Provided value does not match required pattern: " msgstr "指定された値が必要なパターンと一致しません: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "パスワードを入力してください" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "新しいパスワードを入力してください。" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "パスワードの確認" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "新しいパスワードの確認" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "古いパスワード" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "メールアドレス(確認用)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "メールアドレスの確認" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "毎回同じメールアドレスを入力する必要があります。" -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "指定されたプライマリEメールアドレスは無効です。" -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "指定されたメールドメインは承認されていません。" -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "" @@ -417,7 +422,7 @@ msgstr "無効な選択です" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +435,7 @@ msgstr "無効な選択です" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "お名前" @@ -446,7 +451,7 @@ msgstr "お名前" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +471,17 @@ msgstr "お名前" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "説明" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "説明 (オプション)" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" @@ -573,10 +578,10 @@ msgstr "" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -730,7 +735,7 @@ msgstr "" #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" @@ -739,19 +744,19 @@ msgstr "" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "オプション" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" @@ -765,7 +770,7 @@ msgstr "" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" @@ -774,7 +779,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "組立注文" @@ -854,7 +859,7 @@ msgstr "" #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +871,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +896,10 @@ msgstr "" #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "パーツ" @@ -953,9 +958,9 @@ msgid "Build status code" msgstr "" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" @@ -1006,7 +1011,7 @@ msgstr "" #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" @@ -1020,14 +1025,14 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "外部リンク" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "外部 サイト へのリンク" @@ -1082,8 +1087,8 @@ msgstr "" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" @@ -1146,9 +1151,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "数量" @@ -1182,8 +1187,8 @@ msgid "Selected stock item does not match BOM line" msgstr "" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1199,8 @@ msgstr "" #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "在庫商品" @@ -1260,7 +1265,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "シリアル番号" @@ -1271,8 +1276,8 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1287,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" @@ -1335,15 +1340,15 @@ msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "ステータス" @@ -1443,7 +1448,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "" @@ -1537,7 +1542,7 @@ msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1552,7 @@ msgstr "" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "シリアル番号" @@ -1576,7 +1581,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "追跡可能" @@ -1601,7 +1606,7 @@ msgid "Allocated Stock" msgstr "" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1614,13 @@ msgstr "" msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1644,7 @@ msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "処理待ち" @@ -1685,7 +1690,7 @@ msgstr "" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1812,9 +1817,9 @@ msgstr "" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" @@ -1835,7 +1840,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" @@ -1893,8 +1898,8 @@ msgstr "" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1919,7 @@ msgstr "" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +1992,13 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +#, fuzzy +#| msgid "Build Status" +msgid "Build test statistics" +msgstr "組立状況" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2008,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,6 +2048,11 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + #: common/api.py:692 msgid "Is Link" msgstr "" @@ -2470,7 +2486,7 @@ msgstr "" #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "テンプレート" @@ -2479,9 +2495,9 @@ msgid "Parts are templates by default" msgstr "パーツはデフォルトのテンプレートです" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "アセンブリ" @@ -2490,7 +2506,7 @@ msgid "Parts can be assembled from other components by default" msgstr "パーツはデフォルトで他のコンポーネントから組み立てることができます" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "コンポーネント" @@ -2507,7 +2523,7 @@ msgid "Parts are purchaseable by default" msgstr "パーツはデフォルトで購入可能です" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "販売可能" @@ -2522,7 +2538,7 @@ msgstr "パーツはデフォルトで追跡可能です" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" @@ -3615,7 +3631,7 @@ msgstr "" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "ユーザー" @@ -3812,7 +3828,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4259,7 @@ msgstr "" msgid "Manufacturer Part" msgstr "メーカー・パーツ" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4277,7 @@ msgstr "" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "製造元" @@ -4297,9 +4313,9 @@ msgid "Parameter name" msgstr "" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" @@ -4321,12 +4337,12 @@ msgstr "" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" @@ -4354,7 +4370,7 @@ msgstr "" #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "仕入先" @@ -4404,13 +4420,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "" @@ -4536,15 +4552,15 @@ msgstr "" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "顧客" @@ -4594,7 +4610,7 @@ msgstr "新しいサプライヤー・パーツを作成" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "新しいサプライヤー・パーツ" @@ -4607,7 +4623,7 @@ msgstr "メーカー・パーツ" msgid "Create new manufacturer part" msgstr "新しいメーカー・パーツを作成" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "新しいメーカ―・パーツ" @@ -4621,7 +4637,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4660,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4732,7 @@ msgstr "メーカー" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "パーツの注文" @@ -4751,12 +4767,12 @@ msgstr "仕入先" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "パラメータ" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4815,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4852,7 +4868,7 @@ msgstr "" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4890,13 +4906,13 @@ msgstr "" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "在庫商品" @@ -5224,7 +5240,7 @@ msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5257,7 +5273,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" @@ -5266,7 +5282,7 @@ msgstr "" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5459,7 +5475,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" @@ -5467,9 +5483,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "購入金額" @@ -5757,7 +5773,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6069,7 +6085,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6250,7 +6266,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6283,7 +6299,7 @@ msgstr "" #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" @@ -6531,8 +6547,8 @@ msgstr "パーツカテゴリ" msgid "Default location for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6566,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" @@ -6732,7 +6748,7 @@ msgid "Is this part active?" msgstr "" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6950,7 @@ msgstr "" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" @@ -7036,7 +7052,7 @@ msgstr "" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" @@ -7045,7 +7061,7 @@ msgid "Is this test enabled?" msgstr "" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" @@ -7106,7 +7122,7 @@ msgid "Parameter description" msgstr "" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" @@ -7254,7 +7270,7 @@ msgstr "" msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -7352,7 +7368,7 @@ msgstr "" msgid "Copy image from original part" msgstr "" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" @@ -7554,80 +7570,106 @@ msgstr "" msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +#, fuzzy +#| msgid "Component" +msgid "Component Name" +msgstr "コンポーネント" + +#: part/serializers.py:1586 +#, fuzzy +#| msgid "Component" +msgid "Component IPN" +msgstr "コンポーネント" + +#: part/serializers.py:1589 +#, fuzzy +#| msgid "Description" +msgid "Component Description" +msgstr "説明" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" @@ -7785,7 +7827,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7797,101 +7839,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8134,8 +8180,8 @@ msgstr "" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "在庫" @@ -8181,7 +8227,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8815,7 +8861,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -9228,6 +9274,8 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9244,11 +9292,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9274,8 +9322,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" @@ -9332,7 +9380,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9357,9 +9405,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9375,7 +9423,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9425,316 +9473,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "シリアル番号が既に存在します" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9844,7 +9892,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "" @@ -9868,8 +9916,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "" @@ -9893,106 +9941,112 @@ msgstr "" msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:900 +#, fuzzy +#| msgid "Unsupported file type" +msgid "Unsupported statistic type: " +msgstr "サポートされていないファイル形式" + +#: stock/serializers.py:914 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:927 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "パーツは販売可能でなければなりません" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "" @@ -10024,7 +10078,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "在庫商品を作成しました" @@ -10080,7 +10134,7 @@ msgstr "親アイテムから分割する" msgid "Split child item" msgstr "子項目を分割" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "商品在庫をマージしました" @@ -10100,7 +10154,7 @@ msgstr "組立注文の出力が完了しました" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10161,7 +10215,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10169,7 +10223,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10183,7 +10237,7 @@ msgstr "" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10192,17 +10246,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10211,12 +10265,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10342,7 +10396,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10451,7 +10505,7 @@ msgid "New Location" msgstr "" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" @@ -10839,7 +10893,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10849,7 +10903,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10954,7 +11008,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -11811,7 +11865,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12124,13 +12178,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12391,7 +12445,7 @@ msgstr "" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" @@ -12399,7 +12453,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" @@ -12468,7 +12522,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" @@ -12722,45 +12776,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -13000,8 +13054,8 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" @@ -13126,7 +13180,7 @@ msgid "Copy Bill of Materials" msgstr "" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" @@ -13256,7 +13310,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" @@ -13268,7 +13322,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" @@ -13550,7 +13604,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13941,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13945,513 +13999,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14486,12 +14548,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14533,7 +14595,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14634,56 +14696,68 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +#, fuzzy +#| msgid "Internal Part" +msgid "Interval start" +msgstr "内部パーツ" + +#: templates/js/translated/table_filters.js:475 +#, fuzzy +#| msgid "Internal Part" +msgid "Interval end" +msgstr "内部パーツ" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14956,6 +15030,14 @@ msgstr "メール設定" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" @@ -15059,4 +15141,3 @@ msgstr "項目を編集する権限" #: users/models.py:408 msgid "Permission to delete items" msgstr "項目を削除する権限" - diff --git a/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po index 7c74b1cf9f..51d74922e7 100644 --- a/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Korean\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "" @@ -91,47 +92,51 @@ msgstr "" msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "" -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "" @@ -417,7 +422,7 @@ msgstr "" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +435,7 @@ msgstr "" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "" @@ -446,7 +451,7 @@ msgstr "" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +471,17 @@ msgstr "" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" @@ -573,10 +578,10 @@ msgstr "" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -730,7 +735,7 @@ msgstr "" #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" @@ -739,19 +744,19 @@ msgstr "" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" @@ -765,7 +770,7 @@ msgstr "" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" @@ -774,7 +779,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" @@ -854,7 +859,7 @@ msgstr "" #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +871,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +896,10 @@ msgstr "" #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "" @@ -953,9 +958,9 @@ msgid "Build status code" msgstr "" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" @@ -1006,7 +1011,7 @@ msgstr "" #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" @@ -1020,14 +1025,14 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "" @@ -1082,8 +1087,8 @@ msgstr "" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" @@ -1146,9 +1151,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" @@ -1182,8 +1187,8 @@ msgid "Selected stock item does not match BOM line" msgstr "" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1199,8 @@ msgstr "" #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" @@ -1260,7 +1265,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" @@ -1271,8 +1276,8 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1287,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" @@ -1335,15 +1340,15 @@ msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" @@ -1443,7 +1448,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "" @@ -1537,7 +1542,7 @@ msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1552,7 @@ msgstr "" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" @@ -1576,7 +1581,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" @@ -1601,7 +1606,7 @@ msgid "Allocated Stock" msgstr "" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1614,13 @@ msgstr "" msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1644,7 @@ msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "" @@ -1685,7 +1690,7 @@ msgstr "" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1812,9 +1817,9 @@ msgstr "" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" @@ -1835,7 +1840,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" @@ -1893,8 +1898,8 @@ msgstr "" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1919,7 @@ msgstr "" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +1992,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2006,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,6 +2046,11 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + #: common/api.py:692 msgid "Is Link" msgstr "" @@ -2470,7 +2484,7 @@ msgstr "" #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" @@ -2479,9 +2493,9 @@ msgid "Parts are templates by default" msgstr "" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" @@ -2490,7 +2504,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" @@ -2507,7 +2521,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" @@ -2522,7 +2536,7 @@ msgstr "" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" @@ -3615,7 +3629,7 @@ msgstr "" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "" @@ -3812,7 +3826,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4257,7 @@ msgstr "" msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4275,7 @@ msgstr "" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" @@ -4297,9 +4311,9 @@ msgid "Parameter name" msgstr "" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" @@ -4321,12 +4335,12 @@ msgstr "" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" @@ -4354,7 +4368,7 @@ msgstr "" #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" @@ -4404,13 +4418,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "" @@ -4536,15 +4550,15 @@ msgstr "" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4594,7 +4608,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4607,7 +4621,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4621,7 +4635,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4658,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4730,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4751,12 +4765,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4813,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4852,7 +4866,7 @@ msgstr "" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4890,13 +4904,13 @@ msgstr "" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5224,7 +5238,7 @@ msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5257,7 +5271,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" @@ -5266,7 +5280,7 @@ msgstr "" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5459,7 +5473,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" @@ -5467,9 +5481,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" @@ -5757,7 +5771,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6069,7 +6083,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6250,7 +6264,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6283,7 +6297,7 @@ msgstr "" #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" @@ -6531,8 +6545,8 @@ msgstr "" msgid "Default location for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6564,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" @@ -6732,7 +6746,7 @@ msgid "Is this part active?" msgstr "" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6948,7 @@ msgstr "" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" @@ -7036,7 +7050,7 @@ msgstr "" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" @@ -7045,7 +7059,7 @@ msgid "Is this test enabled?" msgstr "" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" @@ -7106,7 +7120,7 @@ msgid "Parameter description" msgstr "" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" @@ -7254,7 +7268,7 @@ msgstr "" msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -7352,7 +7366,7 @@ msgstr "" msgid "Copy image from original part" msgstr "" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" @@ -7554,80 +7568,100 @@ msgstr "" msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" @@ -7785,7 +7819,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7797,101 +7831,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8134,8 +8172,8 @@ msgstr "" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8181,7 +8219,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8815,7 +8853,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -9228,6 +9266,8 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9244,11 +9284,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9274,8 +9314,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" @@ -9332,7 +9372,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9357,9 +9397,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9375,7 +9415,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9425,316 +9465,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9844,7 +9884,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "" @@ -9868,8 +9908,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "" @@ -9893,106 +9933,110 @@ msgstr "" msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 -msgid "Select part to convert stock item into" -msgstr "" - -#: stock/serializers.py:897 -msgid "Selected part is not a valid option for conversion" +#: stock/serializers.py:900 +msgid "Unsupported statistic type: " msgstr "" #: stock/serializers.py:914 +msgid "Select part to convert stock item into" +msgstr "" + +#: stock/serializers.py:927 +msgid "Selected part is not a valid option for conversion" +msgstr "" + +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "" @@ -10024,7 +10068,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10080,7 +10124,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10100,7 +10144,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10161,7 +10205,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10169,7 +10213,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10183,7 +10227,7 @@ msgstr "" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10192,17 +10236,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10211,12 +10255,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10342,7 +10386,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10451,7 +10495,7 @@ msgid "New Location" msgstr "" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" @@ -10839,7 +10883,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10849,7 +10893,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10954,7 +10998,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -11811,7 +11855,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12124,13 +12168,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12391,7 +12435,7 @@ msgstr "" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" @@ -12399,7 +12443,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" @@ -12468,7 +12512,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" @@ -12722,45 +12766,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -13000,8 +13044,8 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" @@ -13126,7 +13170,7 @@ msgid "Copy Bill of Materials" msgstr "" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" @@ -13256,7 +13300,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" @@ -13268,7 +13312,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" @@ -13550,7 +13594,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13931,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13945,513 +13989,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14486,12 +14538,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14533,7 +14585,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14634,56 +14686,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14956,6 +15016,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" @@ -15059,4 +15127,3 @@ msgstr "" #: users/models.py:408 msgid "Permission to delete items" msgstr "" - diff --git a/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po index 0785f85b88..81afab56d6 100644 --- a/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:37\n" "Last-Translator: \n" "Language-Team: Latvian\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "Ievadiet datumu" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "Ievadiet datumu" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "Ievadiet datumu" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Piezīmes" @@ -91,47 +92,53 @@ msgstr "Vērtība '{name}' neparādās vajadzīgajā formātā" msgid "Provided value does not match required pattern: " msgstr "Norādītā vērtība neatbilst nepieciešamajam formātam: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Ievadiet paroli" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Ievadiet jaunu paroli" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Apstiprināt paroli" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Apstiprināt jauno paroli" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Vecā parole" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "E-pasts (vēlreiz)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "E-pasta adreses apstiprinājums" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Katru reizi jāievada viena un tā pati e-pasta adrese." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +#, fuzzy +#| msgid "Registration is disabled." +msgid "MFA Registration is disabled." +msgstr "Reģistrācija ir izslēgta." + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Norādītā primārā e-pasta adrese nav derīga." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Norādītais e-pasta domēns nav apstiprināts." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Reģistrācija ir izslēgta." @@ -417,7 +424,7 @@ msgstr "" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +437,7 @@ msgstr "" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "" @@ -446,7 +453,7 @@ msgstr "" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +473,17 @@ msgstr "" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" @@ -573,10 +580,10 @@ msgstr "" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -730,7 +737,7 @@ msgstr "" #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" @@ -739,19 +746,19 @@ msgstr "" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" @@ -765,7 +772,7 @@ msgstr "" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" @@ -774,7 +781,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" @@ -854,7 +861,7 @@ msgstr "" #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +873,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +898,10 @@ msgstr "" #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "" @@ -953,9 +960,9 @@ msgid "Build status code" msgstr "" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" @@ -1006,7 +1013,7 @@ msgstr "" #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" @@ -1020,14 +1027,14 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "" @@ -1082,8 +1089,8 @@ msgstr "" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" @@ -1146,9 +1153,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" @@ -1182,8 +1189,8 @@ msgid "Selected stock item does not match BOM line" msgstr "" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1201,8 @@ msgstr "" #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" @@ -1260,7 +1267,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" @@ -1271,8 +1278,8 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1289,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" @@ -1335,15 +1342,15 @@ msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" @@ -1443,7 +1450,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "" @@ -1537,7 +1544,7 @@ msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1554,7 @@ msgstr "" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" @@ -1576,7 +1583,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" @@ -1601,7 +1608,7 @@ msgid "Allocated Stock" msgstr "" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1616,13 @@ msgstr "" msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1646,7 @@ msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "" @@ -1685,7 +1692,7 @@ msgstr "" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1812,9 +1819,9 @@ msgstr "" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" @@ -1835,7 +1842,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" @@ -1893,8 +1900,8 @@ msgstr "" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1921,7 @@ msgstr "" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +1994,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2008,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,6 +2048,11 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + #: common/api.py:692 msgid "Is Link" msgstr "" @@ -2470,7 +2486,7 @@ msgstr "" #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" @@ -2479,9 +2495,9 @@ msgid "Parts are templates by default" msgstr "" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" @@ -2490,7 +2506,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" @@ -2507,7 +2523,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" @@ -2522,7 +2538,7 @@ msgstr "" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" @@ -3615,7 +3631,7 @@ msgstr "" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "" @@ -3812,7 +3828,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4259,7 @@ msgstr "" msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4277,7 @@ msgstr "" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" @@ -4297,9 +4313,9 @@ msgid "Parameter name" msgstr "" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" @@ -4321,12 +4337,12 @@ msgstr "" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" @@ -4354,7 +4370,7 @@ msgstr "" #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" @@ -4404,13 +4420,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "" @@ -4536,15 +4552,15 @@ msgstr "" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4594,7 +4610,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4607,7 +4623,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4621,7 +4637,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4660,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4732,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4751,12 +4767,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4815,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4852,7 +4868,7 @@ msgstr "" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4890,13 +4906,13 @@ msgstr "" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5224,7 +5240,7 @@ msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5257,7 +5273,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" @@ -5266,7 +5282,7 @@ msgstr "" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5459,7 +5475,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" @@ -5467,9 +5483,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" @@ -5757,7 +5773,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6069,7 +6085,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6250,7 +6266,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6283,7 +6299,7 @@ msgstr "" #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" @@ -6531,8 +6547,8 @@ msgstr "" msgid "Default location for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6566,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" @@ -6732,7 +6748,7 @@ msgid "Is this part active?" msgstr "" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6950,7 @@ msgstr "" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" @@ -7036,7 +7052,7 @@ msgstr "" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" @@ -7045,7 +7061,7 @@ msgid "Is this test enabled?" msgstr "" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" @@ -7106,7 +7122,7 @@ msgid "Parameter description" msgstr "" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" @@ -7254,7 +7270,7 @@ msgstr "" msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -7352,7 +7368,7 @@ msgstr "" msgid "Copy image from original part" msgstr "" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" @@ -7554,80 +7570,100 @@ msgstr "" msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" @@ -7785,7 +7821,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7797,101 +7833,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8134,8 +8174,8 @@ msgstr "" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8181,7 +8221,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8815,7 +8855,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -9228,6 +9268,8 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9244,11 +9286,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9274,8 +9316,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" @@ -9332,7 +9374,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9357,9 +9399,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9375,7 +9417,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9425,316 +9467,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9844,7 +9886,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "" @@ -9868,8 +9910,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "" @@ -9893,106 +9935,110 @@ msgstr "" msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 -msgid "Select part to convert stock item into" -msgstr "" - -#: stock/serializers.py:897 -msgid "Selected part is not a valid option for conversion" +#: stock/serializers.py:900 +msgid "Unsupported statistic type: " msgstr "" #: stock/serializers.py:914 +msgid "Select part to convert stock item into" +msgstr "" + +#: stock/serializers.py:927 +msgid "Selected part is not a valid option for conversion" +msgstr "" + +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "" @@ -10024,7 +10070,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10080,7 +10126,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10100,7 +10146,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10161,7 +10207,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10169,7 +10215,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10183,7 +10229,7 @@ msgstr "" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10192,17 +10238,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10211,12 +10257,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10342,7 +10388,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10451,7 +10497,7 @@ msgid "New Location" msgstr "" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" @@ -10839,7 +10885,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10849,7 +10895,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10954,7 +11000,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -11811,7 +11857,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12124,13 +12170,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12391,7 +12437,7 @@ msgstr "" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" @@ -12399,7 +12445,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" @@ -12468,7 +12514,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" @@ -12722,45 +12768,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -13000,8 +13046,8 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" @@ -13126,7 +13172,7 @@ msgid "Copy Bill of Materials" msgstr "" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" @@ -13256,7 +13302,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" @@ -13268,7 +13314,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" @@ -13550,7 +13596,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13933,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13945,513 +13991,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14486,12 +14540,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14533,7 +14587,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14634,56 +14688,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14956,6 +15018,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" @@ -15059,4 +15129,3 @@ msgstr "" #: users/models.py:408 msgid "Permission to delete items" msgstr "" - diff --git a/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po index 3f66da9e20..b346026a3a 100644 --- a/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Dutch\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "Voer datum in" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "Voer datum in" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "Voer datum in" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Opmerkingen" @@ -91,47 +92,53 @@ msgstr "Waarde '{name}' verschijnt niet in patroonformaat" msgid "Provided value does not match required pattern: " msgstr "Opgegeven waarde komt niet overeen met vereist patroon: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Voer wachtwoord in" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Voer een nieuw wachtwoord in" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Wachtwoord bevestigen" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Nieuw wachtwoord bevestigen" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Oude wachtwoord" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "E-mailadres (opnieuw)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "E-mailadres bevestiging" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Er moet hetzelfde e-mailadres ingevoerd worden." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +#, fuzzy +#| msgid "Registration is disabled." +msgid "MFA Registration is disabled." +msgstr "Registratie is uitgeschakeld." + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Het opgegeven primaire e-mailadres is ongeldig." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Het ingevoerde e-maildomein is niet goedgekeurd." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Registratie is uitgeschakeld." @@ -417,7 +424,7 @@ msgstr "Ongeldige keuze" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +437,7 @@ msgstr "Ongeldige keuze" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Naam" @@ -446,7 +453,7 @@ msgstr "Naam" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +473,17 @@ msgstr "Naam" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Omschrijving" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Omschrijving (optioneel)" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Pad" @@ -573,10 +580,10 @@ msgstr "" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "Actief" @@ -730,7 +737,7 @@ msgstr "Productie moet geannuleerd worden voordat het kan worden verwijderd" #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "Verbruiksartikelen" @@ -739,19 +746,19 @@ msgstr "Verbruiksartikelen" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "Optioneel" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "Gevolgd" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "Toegewezen" @@ -765,7 +772,7 @@ msgstr "Toegewezen" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "Beschikbaar" @@ -774,7 +781,7 @@ msgstr "Beschikbaar" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Productieorder" @@ -854,7 +861,7 @@ msgstr "Productieorder waar deze productie aan is toegewezen" #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +873,7 @@ msgstr "Productieorder waar deze productie aan is toegewezen" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +898,10 @@ msgstr "Productieorder waar deze productie aan is toegewezen" #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Onderdeel" @@ -953,9 +960,9 @@ msgid "Build status code" msgstr "Productiestatuscode" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Batchcode" @@ -1006,7 +1013,7 @@ msgstr "Gebruiker die de productieorder heeft gegeven" #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "Verantwoordelijke" @@ -1020,14 +1027,14 @@ msgstr "Gebruiker of groep verantwoordelijk voor deze bouwopdracht" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Externe Link" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Link naar externe URL" @@ -1082,8 +1089,8 @@ msgstr "Productuitvoer komt niet overeen met de Productieorder" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "Hoeveelheid moet groter zijn dan nul" @@ -1146,9 +1153,9 @@ msgstr "Bouw object" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "Hoeveelheid" @@ -1182,8 +1189,8 @@ msgid "Selected stock item does not match BOM line" msgstr "Geselecteerde voorraadartikelen komen niet overeen met de BOM-regel" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1201,8 @@ msgstr "Geselecteerde voorraadartikelen komen niet overeen met de BOM-regel" #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "Voorraadartikel" @@ -1260,7 +1267,7 @@ msgstr "Geheel getal vereist omdat de stuklijst traceerbare onderdelen bevat" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Serienummers" @@ -1271,8 +1278,8 @@ msgstr "Voer serienummers in voor productieuitvoeren" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1289,9 @@ msgstr "Voer serienummers in voor productieuitvoeren" #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "Locatie" @@ -1335,15 +1342,15 @@ msgstr "Locatie van voltooide productieuitvoeren" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" @@ -1443,7 +1450,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:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "Artikel moet op voorraad zijn" @@ -1537,7 +1544,7 @@ msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1554,7 @@ msgstr "" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "Serienummer" @@ -1576,7 +1583,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "Volgbaar" @@ -1601,7 +1608,7 @@ msgid "Allocated Stock" msgstr "" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1616,13 @@ msgstr "" msgid "On Order" msgstr "In bestelling" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1646,7 @@ msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "Bezig" @@ -1685,7 +1692,7 @@ msgstr "Miniatuurweergave van onderdeel" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Barcode acties" @@ -1812,9 +1819,9 @@ msgstr "Deze productie was verwacht op %(target)s" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "Achterstallig" @@ -1835,7 +1842,7 @@ msgstr "Voltooide Uitvoeren" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "Verkooporder" @@ -1893,8 +1900,8 @@ msgstr "Toegewezen Onderdelen" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1921,7 @@ msgstr "Geen doeldatum ingesteld" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "Voltooid" @@ -1987,7 +1994,13 @@ msgstr "Verbruikte voorraad" msgid "Completed Build Outputs" msgstr "Voltooide Productieuitvoeren" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +#, fuzzy +#| msgid "Build Details" +msgid "Build test statistics" +msgstr "Productie details" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2010,25 @@ msgstr "Voltooide Productieuitvoeren" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Bijlagen" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "Productie notities" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "Nieuwe Productieorder" @@ -2037,6 +2050,11 @@ msgstr "Artikelen" msgid "Incomplete Outputs" msgstr "Onvolledige Productieuitvoeren" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + #: common/api.py:692 msgid "Is Link" msgstr "" @@ -2470,7 +2488,7 @@ msgstr "Kopieer categorieparameter sjablonen bij het aanmaken van een onderdeel" #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "Sjabloon" @@ -2479,9 +2497,9 @@ msgid "Parts are templates by default" msgstr "Onderdelen zijn standaard sjablonen" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "Samenstelling" @@ -2490,7 +2508,7 @@ msgid "Parts can be assembled from other components by default" msgstr "Onderdelen kunnen standaard vanuit andere componenten worden samengesteld" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" @@ -2507,7 +2525,7 @@ msgid "Parts are purchaseable by default" msgstr "Onderdelen kunnen standaard gekocht worden" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "Verkoopbaar" @@ -2522,7 +2540,7 @@ msgstr "Onderdelen kunnen standaard gevolgd worden" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "Virtueel" @@ -3615,7 +3633,7 @@ msgstr "" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Gebruiker" @@ -3812,7 +3830,7 @@ msgstr "Definitie" msgid "Unit definition" msgstr "" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4261,7 @@ msgstr "" msgid "Manufacturer Part" msgstr "Fabrikant onderdeel" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4279,7 @@ msgstr "Onderdeel selecteren" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "Fabrikant" @@ -4297,9 +4315,9 @@ msgid "Parameter name" msgstr "Parameternaam" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Waarde" @@ -4321,12 +4339,12 @@ msgstr "Parameter eenheden" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "Leveranciersonderdeel" @@ -4354,7 +4372,7 @@ msgstr "Gekoppeld fabrikant onderdeel moet verwijzen naar hetzelfde basis onderd #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "Leverancier" @@ -4404,13 +4422,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimale kosten (bijv. voorraadkosten)" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "" @@ -4536,15 +4554,15 @@ msgstr "" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "Klant" @@ -4594,7 +4612,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "Nieuw leveranciers onderdeel" @@ -4607,7 +4625,7 @@ msgstr "Fabrikant onderdelen" msgid "Create new manufacturer part" msgstr "Maak nieuw fabrikant onderdeel" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "Nieuw fabrikant onderdeel" @@ -4621,7 +4639,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4662,7 @@ msgstr "Nieuwe Inkooporder" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4734,7 @@ msgstr "Fabrikanten" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "Order onderdeel" @@ -4751,12 +4769,12 @@ msgstr "Leveranciers" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4817,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "Order Onderdeel" @@ -4852,7 +4870,7 @@ msgstr "Nieuw voorraadartikel aanmaken" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "Nieuw Voorraadartikel" @@ -4890,13 +4908,13 @@ msgstr "" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "Voorraadartikelen" @@ -5224,7 +5242,7 @@ msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5257,7 +5275,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "Inkooporder" @@ -5266,7 +5284,7 @@ msgstr "Inkooporder" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5459,7 +5477,7 @@ msgstr "Leveranciersonderdeel" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "Ontvangen" @@ -5467,9 +5485,9 @@ msgstr "Ontvangen" msgid "Number of items received" msgstr "Aantal ontvangen artikelen" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "Inkoopprijs" @@ -5757,7 +5775,7 @@ msgid "Select destination location for received items" msgstr "Selecteer bestemmingslocatie voor ontvangen artikelen" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6069,7 +6087,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Rij verwijderen" @@ -6250,7 +6268,7 @@ msgstr "Verzendingen in behandeling" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "Acties" @@ -6283,7 +6301,7 @@ msgstr "{part} stukprijs bijgewerkt naar {price} en aantal naar {qty}" #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" @@ -6531,8 +6549,8 @@ msgstr "Onderdeel Categorieën" msgid "Default location for parts in this category" msgstr "Standaard locatie voor onderdelen in deze categorie" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6568,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" @@ -6732,7 +6750,7 @@ msgid "Is this part active?" msgstr "" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6952,7 @@ msgstr "" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "Datum" @@ -7036,7 +7054,7 @@ msgstr "" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "Ingeschakeld" @@ -7045,7 +7063,7 @@ msgid "Is this test enabled?" msgstr "" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" @@ -7106,7 +7124,7 @@ msgid "Parameter description" msgstr "" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" @@ -7254,7 +7272,7 @@ msgstr "" msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -7352,7 +7370,7 @@ msgstr "Afbeelding kopiëren" msgid "Copy image from original part" msgstr "Afbeelding kopiëren van het oorspronkelijke onderdeel" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" @@ -7554,80 +7572,108 @@ msgstr "" msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +#, fuzzy +#| msgid "Select part to build" +msgid "Select the parent assembly" +msgstr "Selecteer onderdeel om te produceren" + +#: part/serializers.py:1583 +#, fuzzy +#| msgid "Company name" +msgid "Component Name" +msgstr "Bedrijfsnaam" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +#, fuzzy +#| msgid "Part Description" +msgid "Component Description" +msgstr "Onderdeel omschrijving" + +#: part/serializers.py:1595 +#, fuzzy +#| msgid "Select manufacturer part" +msgid "Select the component part" +msgstr "Selecteer fabrikant onderdeel" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "Ongeldige hoeveelheid" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" @@ -7785,7 +7831,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7797,101 +7843,107 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +#, fuzzy +#| msgid "Copy Part Test Data" +msgid "Part Test Statistics" +msgstr "Kopieer Onderdeel Testdata" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "Verkoopordertoewijzingen" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "Een parameter toevoegen" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "Assemblages" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "Productieordertoewijzingen" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "Onderdeelfabrikanten" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8134,8 +8186,8 @@ msgstr "" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "Voorraad" @@ -8181,7 +8233,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8815,7 +8867,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -9228,6 +9280,8 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "Totaal" @@ -9244,11 +9298,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9274,8 +9328,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" @@ -9332,7 +9386,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9357,9 +9411,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9375,7 +9429,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9425,316 +9479,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Voorraadlocatie" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Voorraadlocaties" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "Inkooporder Bron" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "Inkooporder voor dit voorraadartikel" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "Bestemming Verkooporder" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "Voorraadartikel is toegewezen aan een verkooporder" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9844,7 +9898,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "" @@ -9868,8 +9922,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "" @@ -9893,106 +9947,112 @@ msgstr "" msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:900 +#, fuzzy +#| msgid "Unsupported file type" +msgid "Unsupported statistic type: " +msgstr "Niet ondersteund bestandstype" + +#: stock/serializers.py:914 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:927 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Sublocaties" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "Artikel is toegewezen aan een verkooporder" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "Artikel is toegewezen aan een productieorder" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "" @@ -10024,7 +10084,7 @@ msgstr "In quarantaine geplaatst" msgid "Legacy stock tracking entry" msgstr "Verouderde volgcode" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Voorraaditem gemaakt" @@ -10080,7 +10140,7 @@ msgstr "Splits van bovenliggend item" msgid "Split child item" msgstr "Splits onderliggende item" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Samengevoegde voorraadartikelen" @@ -10100,7 +10160,7 @@ msgstr "Product voltooid" msgid "Build order output rejected" msgstr "Build order uitvoer afgewezen" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Verbruikt door productieorder" @@ -10161,7 +10221,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10169,7 +10229,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10183,7 +10243,7 @@ msgstr "Scan naar Locatie" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10192,17 +10252,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "Voorraad tellen" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10211,12 +10271,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "Voorraad overzetten" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10342,7 +10402,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10451,7 +10511,7 @@ msgid "New Location" msgstr "Nieuwe Locatie" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" @@ -10839,7 +10899,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10849,7 +10909,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10954,7 +11014,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "Verwijderen" @@ -11811,7 +11871,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12124,13 +12184,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12391,7 +12451,7 @@ msgstr "" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" @@ -12399,7 +12459,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" @@ -12468,7 +12528,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" @@ -12722,45 +12782,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -13000,8 +13060,8 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" @@ -13126,7 +13186,7 @@ msgid "Copy Bill of Materials" msgstr "" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" @@ -13256,7 +13316,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" @@ -13268,7 +13328,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" @@ -13550,7 +13610,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13947,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13945,513 +14005,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14486,12 +14554,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14533,7 +14601,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14634,56 +14702,68 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +#, fuzzy +#| msgid "Internal Part" +msgid "Interval start" +msgstr "Intern onderdeel" + +#: templates/js/translated/table_filters.js:475 +#, fuzzy +#| msgid "Internal Prices" +msgid "Interval end" +msgstr "Interne Prijzen" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14956,6 +15036,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" @@ -15059,4 +15147,3 @@ msgstr "" #: users/models.py:408 msgid "Permission to delete items" msgstr "" - diff --git a/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po index 1ce0e4ff7d..b45f43837a 100644 --- a/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Norwegian\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "Oppgi dato" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "Oppgi dato" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "Oppgi dato" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Notater" @@ -91,47 +92,53 @@ msgstr "Verdi '{name}' vises ikke i mønsterformat" msgid "Provided value does not match required pattern: " msgstr "Angitt verdi samsvarer ikke med påkrevd mønster: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Oppgi passord" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Oppgi nytt passord" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Bekreft passord" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Bekreft nytt passord" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Gammelt passord" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "E-post (gjenta)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Bekreft e-postaddresse" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Du må angi samme e-post hver gang." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +#, fuzzy +#| msgid "Registration is disabled." +msgid "MFA Registration is disabled." +msgstr "Registrering er deaktivert." + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Den oppgitte primære e-postadressen er ikke gyldig." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Det oppgitte e-postdomenet er ikke godkjent." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Registrering er deaktivert." @@ -417,7 +424,7 @@ msgstr "Ugyldig valg" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +437,7 @@ msgstr "Ugyldig valg" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Navn" @@ -446,7 +453,7 @@ msgstr "Navn" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +473,17 @@ msgstr "Navn" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Beskrivelse" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Beskrivelse (valgfritt)" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Sti" @@ -573,10 +580,10 @@ msgstr "" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "Aktiv" @@ -730,7 +737,7 @@ msgstr "Produksjonen må avbrytes før den kan slettes" #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "Forbruksvare" @@ -739,19 +746,19 @@ msgstr "Forbruksvare" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "Valgfritt" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "Spores" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "Tildelt" @@ -765,7 +772,7 @@ msgstr "Tildelt" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "Tilgjengelig" @@ -774,7 +781,7 @@ msgstr "Tilgjengelig" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Produksjonsordre" @@ -854,7 +861,7 @@ msgstr "Produksjonsordre som denne produksjonen er tildelt" #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +873,7 @@ msgstr "Produksjonsordre som denne produksjonen er tildelt" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +898,10 @@ msgstr "Produksjonsordre som denne produksjonen er tildelt" #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Del" @@ -953,9 +960,9 @@ msgid "Build status code" msgstr "Produksjonsstatuskode" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Batchkode" @@ -1006,7 +1013,7 @@ msgstr "Brukeren som utstedte denne produksjonsordren" #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "Ansvarlig" @@ -1020,14 +1027,14 @@ msgstr "Bruker eller gruppe ansvarlig for produksjonsordren" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Ekstern lenke" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Lenke til ekstern URL" @@ -1082,8 +1089,8 @@ msgstr "Produksjonsartikkelen samsvarer ikke med produksjonsordren" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "Mengden må være større enn null" @@ -1146,9 +1153,9 @@ msgstr "Produksjonsobjekt" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "Antall" @@ -1182,8 +1189,8 @@ msgid "Selected stock item does not match BOM line" msgstr "Valgt lagervare samsvarer ikke med BOM-linjen" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1201,8 @@ msgstr "Valgt lagervare samsvarer ikke med BOM-linjen" #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "Lagervare" @@ -1260,7 +1267,7 @@ msgstr "Heltallsverdi kreves, da stykklisten inneholder sporbare deler" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Serienummer" @@ -1271,8 +1278,8 @@ msgstr "Angi serienummer for produksjonsartikler" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1289,9 @@ msgstr "Angi serienummer for produksjonsartikler" #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "Plassering" @@ -1335,15 +1342,15 @@ msgstr "Plassering for ferdige produksjonsartikler" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" @@ -1443,7 +1450,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:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "Artikkelen må være på lager" @@ -1537,7 +1544,7 @@ msgstr "Del -IPN" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1554,7 @@ msgstr "Del -IPN" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "Serienummer" @@ -1576,7 +1583,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "Sporbar" @@ -1601,7 +1608,7 @@ msgid "Allocated Stock" msgstr "Tildelt lagerbeholdning" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1616,13 @@ msgstr "Tildelt lagerbeholdning" msgid "On Order" msgstr "I bestilling" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "I produksjon" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1646,7 @@ msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "Ventende" @@ -1685,7 +1692,7 @@ msgstr "Miniatyrbilde for del" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Strekkodehandlinger" @@ -1812,9 +1819,9 @@ msgstr "Denne produksjonsordren forfalt %(target)s" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "Forfalt" @@ -1835,7 +1842,7 @@ msgstr "Fullførte byggeresultater" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "Salgsordre" @@ -1893,8 +1900,8 @@ msgstr "Tildelte deler" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1921,7 @@ msgstr "Ingen måldato satt" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "Fullført" @@ -1987,7 +1994,13 @@ msgstr "Brukt lagerbeholdning" msgid "Completed Build Outputs" msgstr "Fullførte produksjonsartikkel" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +#, fuzzy +#| msgid "Build Details" +msgid "Build test statistics" +msgstr "Produksjonsdetaljer" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2010,25 @@ msgstr "Fullførte produksjonsartikkel" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Vedlegg" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "Produksjonsnotater" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "Tildeling fullført" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "Alle linjer er fullt tildelt" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "Ny produksjonsordre" @@ -2037,6 +2050,11 @@ msgstr "Linjeelementer" msgid "Incomplete Outputs" msgstr "Ufullstendige artikler" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + #: common/api.py:692 msgid "Is Link" msgstr "" @@ -2470,7 +2488,7 @@ msgstr "Kopier parametermaler for kategori ved oppretting av en del" #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "Mal" @@ -2479,9 +2497,9 @@ msgid "Parts are templates by default" msgstr "Deler er maler som standard" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "Sammenstilling" @@ -2490,7 +2508,7 @@ msgid "Parts can be assembled from other components by default" msgstr "Deler kan settes sammen fra andre komponenter som standard" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "Komponent" @@ -2507,7 +2525,7 @@ msgid "Parts are purchaseable by default" msgstr "Deler er kjøpbare som standard" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "Salgbar" @@ -2522,7 +2540,7 @@ msgstr "Deler er sporbare som standard" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "Virtuelle" @@ -3615,7 +3633,7 @@ msgstr "" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Bruker" @@ -3812,7 +3830,7 @@ msgstr "Definisjon" msgid "Unit definition" msgstr "Enhetsdefinisjon" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4261,7 @@ msgstr "Lenke til adresseinformasjon (ekstern)" msgid "Manufacturer Part" msgstr "Produsentdeler" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4279,7 @@ msgstr "Velg del" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "Produsent" @@ -4297,9 +4315,9 @@ msgid "Parameter name" msgstr "Parameternavn" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Verdi" @@ -4321,12 +4339,12 @@ msgstr "Parameterenheter" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "Leverandørdel" @@ -4354,7 +4372,7 @@ msgstr "Den sammenkoblede produsentdelen må referere til samme basisdel" #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "Leverandør" @@ -4404,13 +4422,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimum betaling (f.eks. lageravgift)" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "Emballasje" @@ -4536,15 +4554,15 @@ msgstr "Slett bilde" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "Kunde" @@ -4594,7 +4612,7 @@ msgstr "Opprett ny leverandørdel" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "Ny leverandørdel" @@ -4607,7 +4625,7 @@ msgstr "Produsentdeler" msgid "Create new manufacturer part" msgstr "Opprett ny produsentdel" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "Ny Produsentdel" @@ -4621,7 +4639,7 @@ msgstr "Leverandørs lagerbeholdning" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4662,7 @@ msgstr "Ny innkjøpsordre" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4734,7 @@ msgstr "Produsenter" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "Bestill del" @@ -4751,12 +4769,12 @@ msgstr "Leverandører" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Parametere" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4817,7 @@ msgstr "Handlinger for leverandørdeler" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "Bestill del" @@ -4852,7 +4870,7 @@ msgstr "Opprett ny lagervare" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "Ny Lagervare" @@ -4890,13 +4908,13 @@ msgstr "" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "Lagervarer" @@ -5224,7 +5242,7 @@ msgid "Order Status" msgstr "Ordrestatus" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5257,7 +5275,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "Innkjøpsordre" @@ -5266,7 +5284,7 @@ msgstr "Innkjøpsordre" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "Returordre" @@ -5459,7 +5477,7 @@ msgstr "Leverandørdel" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "Mottatt" @@ -5467,9 +5485,9 @@ msgstr "Mottatt" msgid "Number of items received" msgstr "Antall enheter mottatt" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "Innkjøpspris" @@ -5757,7 +5775,7 @@ msgid "Select destination location for received items" msgstr "Velg lagerplassering for mottatte enheter" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "Angi batchkode for innkommende lagervarer" @@ -6069,7 +6087,7 @@ msgstr "Duplikatvalg" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Fjern rad" @@ -6250,7 +6268,7 @@ msgstr "Ventende forsendelser" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "Handlinger" @@ -6283,7 +6301,7 @@ msgstr "Oppdaterte {part} enhetspris til {price} og antall til {qty}" #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" @@ -6531,8 +6549,8 @@ msgstr "Delkategorier" msgid "Default location for parts in this category" msgstr "Standardplassering for deler i denne kategorien" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6568,13 @@ msgstr "Standard nøkkelord" msgid "Default keywords for parts in this category" msgstr "Standard nøkkelord for deler i denne kategorien" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Ikon" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "Ikon (valgfritt)" @@ -6732,7 +6750,7 @@ msgid "Is this part active?" msgstr "Er denne delen aktiv?" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6952,7 @@ msgstr "Total tilgjengelig lagerbeholdning på tidspunkt for varetelling" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "Dato" @@ -7036,7 +7054,7 @@ msgstr "Legg inn beskrivelse for denne testen" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "Aktivert" @@ -7045,7 +7063,7 @@ msgid "Is this test enabled?" msgstr "" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "Påkrevd" @@ -7106,7 +7124,7 @@ msgid "Parameter description" msgstr "Parameterbeskrivelse" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "Sjekkboks" @@ -7254,7 +7272,7 @@ msgstr "Denne BOM-artikkelen er arvet fra stykkliste for variantdeler" msgid "Stock items for variant parts can be used for this BOM item" msgstr "Lagervarer for variantdeler kan brukes for denne BOM-artikkelen" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "Antall må være heltallsverdi for sporbare deler" @@ -7352,7 +7370,7 @@ msgstr "Kopier Bilde" msgid "Copy image from original part" msgstr "Kopier bilde fra originaldel" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "Kopier Stykkliste" @@ -7554,80 +7572,110 @@ msgstr "Minsteprisen kan ikke være større enn maksimal pris" msgid "Maximum price must not be less than minimum price" msgstr "Maksimal pris kan ikke være mindre enn minstepris" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +#, fuzzy +#| msgid "Select parent part" +msgid "Select the parent assembly" +msgstr "Velg overordnet del" + +#: part/serializers.py:1583 +#, fuzzy +#| msgid "Component" +msgid "Component Name" +msgstr "Komponent" + +#: part/serializers.py:1586 +#, fuzzy +#| msgid "Component" +msgid "Component IPN" +msgstr "Komponent" + +#: part/serializers.py:1589 +#, fuzzy +#| msgid "Company description" +msgid "Component Description" +msgstr "Beskrivelse av firma" + +#: part/serializers.py:1595 +#, fuzzy +#| msgid "Select parent part" +msgid "Select the component part" +msgstr "Velg overordnet del" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "Kan Produsere" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "Velg del å kopiere BOM fra" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "Fjern eksisterende data" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "Fjern eksisterende BOM-artikler før kopiering" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "Inkluder arvede" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "Inkluder BOM-artikler som er arvet fra maldeler" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "Hopp over ugyldige rader" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "Aktiver dette alternativet for å hoppe over ugyldige rader" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "Kopier erstatningsdeler" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "Kopier erstatningsdeler når BOM-elementer dupliseres" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "Nullstill eksisterende BOM" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "Fjern eksisterende BOM-artikler før opplastning" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "Ingen del-kolonne angitt" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "Flere samsvarende deler funnet" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "Ingen samsvarende del funnet" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "Delen er ikke betegnet som en komponent" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "Antall ikke oppgitt" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "Ugyldig antall" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "Minst en BOM-artikkel kreves" @@ -7785,7 +7833,7 @@ msgstr "Legg til lagertellingsinformasjon" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "Lagertelling" @@ -7797,101 +7845,107 @@ msgstr "Deltestmaler" msgid "Add Test Template" msgstr "Legg til Testmal" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +#, fuzzy +#| msgid "Part Test Templates" +msgid "Part Test Statistics" +msgstr "Deltestmaler" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "Salgsordretildelinger" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "Delnotater" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "Delvarianter" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "Opprett ny variant" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "Ny Variant" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "Legg til ny parameter" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "Relaterte Deler" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "Legg til relatert" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "Stykkliste (BOM)" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "Eksporthandlinger" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "Eksporter BOM" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "Skriv ut BOM-rapport" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "BOM-handlinger" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "Last opp BOM" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "Godkjenn BOM" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "Legg til BOM-artikkel" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "Sammenstillinger" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "Del-produksjoner" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "Produksjonsordre-tildelinger" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "Deleleverandører" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "Deleprodusenter" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8134,8 +8188,8 @@ msgstr "Varianter" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "Lagerbeholdning" @@ -8181,7 +8235,7 @@ msgstr "Rediger" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "Sist oppdatert" @@ -8815,7 +8869,7 @@ msgid "Is the plugin active" msgstr "Er utvidelsen aktiv" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "Installert" @@ -9228,6 +9282,8 @@ msgstr "Ekstra linjeelementer" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9244,11 +9300,11 @@ msgid "Test Results" msgstr "Testresultater" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "Resultat" @@ -9274,8 +9330,8 @@ msgid "Installed Items" msgstr "Installerte artikler" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "Serienummer" @@ -9332,7 +9388,7 @@ msgstr "Leverandørnavn" msgid "Customer ID" msgstr "Kunde-ID" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "Installert i" @@ -9357,9 +9413,9 @@ msgstr "Gjennomgang kreves" msgid "Delete on Deplete" msgstr "Slett når oppbrukt" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "Utløpsdato" @@ -9375,7 +9431,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9425,316 +9481,316 @@ msgstr "Leverandørdelen har en pakkestørrelse definert, men flagget \"use_pack msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Serienumre kan ikke angis for en ikke-sporbar del" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "Lagerplasseringstype" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "Lagerplasseringstyper" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "Standard ikom for alle plasseringer som ikke har satt et ikon (valgfritt)" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Lagerplassering" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Lagerplasseringer" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Eier" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "Velg eier" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Lagervarer kan ikke knyttes direkte mot en strukturell lagerplassering, men kan knyttes mot underplasseringer." -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "Ekstern" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "Dette er en ekstern lagerplassering" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "Plasseringstype" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "Lagerplasseringstype for denne plasseringen" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "De kan ikke gjøre denne plasseringen strukturell, da noen lagervarer allerede er plassert i den!" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "Lagervarer kan ikke plasseres i strukturelle plasseringer!" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "Lagervare kan ikke opprettes for virtuelle deler" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "Deltype ('{self.supplier_part.part}') må være {self.part}" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "Antall må være 1 for produkt med et serienummer" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Serienummeret kan ikke angis hvis antall er større enn 1" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "Elementet kan ikke tilhøre seg selv" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "Elementet må ha en produksjonsrefereanse om is_building=True" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "Produksjonsreferanse peker ikke til samme del-objekt" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "Overordnet lagervare" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "Basisdel" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "Velg en tilsvarende leverandørdel for denne lagervaren" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "Hvor er denne lagervaren plassert?" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "Inpakningen denne lagervaren er lagret i" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "Er denne artikkelen montert i en annen artikkel?" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "Serienummer for denne artikkelen" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "Batchkode for denne lagervaren" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "Lagerantall" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "Kildeproduksjon" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "Produksjon for denne lagervaren" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "Brukt av" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "Produksjonsordren som brukte denne lagervaren" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "Kildeinnkjøpsordre" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "Innkjøpsordre for denne lagervaren" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "Tildelt Salgsordre" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Utløpsdato for lagervare. Lagerbeholdning vil bli ansett som utløpt etter denne datoen" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "Slett når oppbrukt" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "Slett lagervaren når beholdningen er oppbrukt" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "Innkjøpspris per enhet på kjøpstidspunktet" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "Konvertert til del" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "Delen er ikke angitt som sporbar" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "Antall må være heltall" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "Antall kan ikke overstige tilgjengelig lagerbeholdning ({self.quantity})" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "Serienumre må være en liste over tall" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "Antallet stemmer ikke overens med serienumrene" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "Seriernummer eksisterer allerede" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "Lagervare har blitt tildelt en salgsordre" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "Lagervare er montert i en annen artikkel" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "Lagervare inneholder andre artikler" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "Lagervare har blitt tildelt til en kunde" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "Lagervare er for tiden i produksjon" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "Serialisert lagerbeholdning kan ikke slås sammen" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "Duplisert lagervare" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "Lagervarer må referere til samme del" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "Lagervarer må referere til samme leverandørdel" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "Lagerstatuskoder må være like" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "Lagervare kan ikke flyttes fordi den ikke er på lager" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "Oppføringsnotater" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "Verdi må angis for denne testen" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "Vedlegg må lastes opp for denne testen" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "Testresultat" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "Testens verdi" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "Vedlegg til testresultat" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "Testnotater" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9844,7 +9900,7 @@ msgstr "Antall kan ikke overstige tilgjengelig lagerbeholdning ({q})" msgid "Enter serial numbers for new items" msgstr "Angi serienummer for nye artikler" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "Til Lagerplassering" @@ -9868,8 +9924,8 @@ msgstr "Antall å installere" msgid "Enter the quantity of items to install" msgstr "Angi antallet elementer som skal installeres" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "Legg til transaksjonsnotat (valgfritt)" @@ -9893,106 +9949,112 @@ msgstr "Antall å installere må ikke overskride tilgjengelig antall" msgid "Destination location for uninstalled item" msgstr "Lagerplassering for den avinstallerte artikkelen" -#: stock/serializers.py:884 +#: stock/serializers.py:900 +#, fuzzy +#| msgid "Unsupported file type" +msgid "Unsupported statistic type: " +msgstr "Filtypen støttes ikke" + +#: stock/serializers.py:914 msgid "Select part to convert stock item into" msgstr "Velg del å konvertere lagervare til" -#: stock/serializers.py:897 +#: stock/serializers.py:927 msgid "Selected part is not a valid option for conversion" msgstr "Valgt del er ikke et gyldig alternativ for konvertering" -#: stock/serializers.py:914 +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "Kan ikke konvertere lagerprodukt med tildelt leverandørdel" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "Lagerplassering for returnert artikkel" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "Velg lagervarer for å endre status" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "Ingen lagervarer valgt" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Underplasseringer" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "Delen må være salgbar" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "Artikkelen er tildelt en salgsordre" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "Artikkelen er tildelt en produksjonsordre" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "Kunde å tilordne lagervarer" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "Valgt firma er ikke en kunde" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "Lagervare-tildelignsnotater" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "En liste av lagervarer må oppgis" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "Notater om lagersammenslåing" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "Tillat forskjellige leverandører" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "Tillat lagervarer med forskjellige leverandørdeler å slås sammen" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "Tillat forskjellig status" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "Tillat lagervarer med forskjellige statuskoder å slås sammen" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "Minst to lagervarer må oppgis" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "Lagervare primærnøkkel verdi" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "Lagervare statuskode" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "Lager transaksjonsnotater" @@ -10024,7 +10086,7 @@ msgstr "I Karantene" msgid "Legacy stock tracking entry" msgstr "Gammel lagervare sporingsoppføring" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Lagevare opprettet" @@ -10080,7 +10142,7 @@ msgstr "Skill ut fra overordnet artikkel" msgid "Split child item" msgstr "Skill ut fra underartikkel" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Sammenslåtte lagervarer" @@ -10100,7 +10162,7 @@ msgstr "Produksjonsartikkel fullført" msgid "Build order output rejected" msgstr "Produksjonsartikkel avvist" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Brukt av produksjonsordre" @@ -10161,7 +10223,7 @@ msgstr "Notater for lagervare" msgid "Installed Stock Items" msgstr "Installerte lagervarer" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "Installer lagervare" @@ -10169,7 +10231,7 @@ msgstr "Installer lagervare" msgid "Delete all test results for this stock item" msgstr "Slett alle testresultater for denne lagervaren" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10183,7 +10245,7 @@ msgstr "Skann til plassering" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "Utskriftshandlinger" @@ -10192,17 +10254,17 @@ msgid "Stock adjustment actions" msgstr "Lagerjusteringshandlinger" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "Tell beholdning" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "Legg til lagerbeholdning" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "Fjern lagerbeholdning" @@ -10211,12 +10273,12 @@ msgid "Serialize stock" msgstr "Serialiser lager" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "Overfør lagerbeholdning" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "Tilordne til kunde" @@ -10342,7 +10404,7 @@ msgid "No stocktake performed" msgstr "Ingen lagertelling utført" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10451,7 +10513,7 @@ msgid "New Location" msgstr "Ny plassering" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" @@ -10839,7 +10901,7 @@ msgstr "Installasjonssti" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "Innebygd" @@ -10849,7 +10911,7 @@ msgstr "Dette er en innebygd utvidelse som ikke kan deaktiveres" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "Eksempel" @@ -10954,7 +11016,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "Slett" @@ -11811,7 +11873,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12124,13 +12186,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12391,7 +12453,7 @@ msgstr "" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" @@ -12399,7 +12461,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" @@ -12468,7 +12530,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" @@ -12722,45 +12784,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -13000,8 +13062,8 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" @@ -13126,7 +13188,7 @@ msgid "Copy Bill of Materials" msgstr "" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" @@ -13256,7 +13318,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" @@ -13268,7 +13330,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" @@ -13550,7 +13612,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13949,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13945,513 +14007,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "Legg til" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14486,12 +14556,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14533,7 +14603,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14634,56 +14704,68 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +#, fuzzy +#| msgid "Internal Part" +msgid "Interval start" +msgstr "Intern del" + +#: templates/js/translated/table_filters.js:475 +#, fuzzy +#| msgid "Internal Price" +msgid "Interval end" +msgstr "Intern Pris" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14956,6 +15038,18 @@ msgstr "E-Post-Innstillinger" msgid "Email settings not configured" msgstr "E-postinnstillinger ikke konfigurert" +#: templates/test_statistics_table.html:13 +#, fuzzy +#| msgid "Pass" +msgid "Passed" +msgstr "Bestått" + +#: templates/test_statistics_table.html:16 +#, fuzzy +#| msgid "Fail" +msgid "Failed" +msgstr "Mislykket" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "Ja" @@ -15059,4 +15153,3 @@ msgstr "Tillatelse til å endre elementer" #: users/models.py:408 msgid "Permission to delete items" msgstr "Tillatelse til å slette elementer" - diff --git a/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po index a1b00b215c..2ca20081c1 100644 --- a/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Polish\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "Wprowadź dane" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "Wprowadź dane" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "Wprowadź dane" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Uwagi" @@ -91,47 +92,53 @@ msgstr "Wartość '{name}' nie pojawia się w formacie wzoru" msgid "Provided value does not match required pattern: " msgstr "Podana wartość nie pasuje do wymaganego wzoru: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Wprowadź hasło" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Wprowadź nowe hasło" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Potwierdź hasło" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Potwierdź nowe hasło" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Stare hasło" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "Adres email (ponownie)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Potwierdzenie adresu email" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Należy ponownie wpisać ten sam adres e-mail." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +#, fuzzy +#| msgid "Registration is disabled." +msgid "MFA Registration is disabled." +msgstr "Rejestracja jest wyłączona." + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Podany podstawowy adres e-mail jest nieprawidłowy." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Podany e-mail domeny nie został zatwierdzony." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Rejestracja jest wyłączona." @@ -417,7 +424,7 @@ msgstr "Błędny wybór" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +437,7 @@ msgstr "Błędny wybór" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Nazwa" @@ -446,7 +453,7 @@ msgstr "Nazwa" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +473,17 @@ msgstr "Nazwa" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Opis" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Opis (opcjonalny)" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Ścieżka" @@ -573,10 +580,10 @@ msgstr "" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "Aktywny" @@ -730,7 +737,7 @@ msgstr "Kompilacja musi zostać anulowana, zanim będzie mogła zostać usunięt #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "Materiał eksploatacyjny" @@ -739,19 +746,19 @@ msgstr "Materiał eksploatacyjny" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "Opcjonalne" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "Śledzony" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "Przydzielono" @@ -765,7 +772,7 @@ msgstr "Przydzielono" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "Dostępne" @@ -774,7 +781,7 @@ msgstr "Dostępne" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Zlecenie Budowy" @@ -854,7 +861,7 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana" #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +873,7 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +898,10 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana" #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Komponent" @@ -953,9 +960,9 @@ msgid "Build status code" msgstr "Kod statusu budowania" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Kod partii" @@ -1006,7 +1013,7 @@ msgstr "Użytkownik, który wydał to zamówienie" #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "Odpowiedzialny" @@ -1020,14 +1027,14 @@ msgstr "Użytkownik lub grupa odpowiedzialna za te zlecenie produkcji" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Link Zewnętrzny" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Link do zewnętrznego adresu URL" @@ -1082,8 +1089,8 @@ msgstr "Skompilowane dane wyjściowe nie pasują do kolejności kompilacji" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "Ilość musi być większa niż zero" @@ -1146,9 +1153,9 @@ msgstr "Zbuduj obiekt" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "Ilość" @@ -1182,8 +1189,8 @@ msgid "Selected stock item does not match BOM line" msgstr "Wybrana pozycja magazynowa nie pasuje do pozycji w zestawieniu BOM" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1201,8 @@ msgstr "Wybrana pozycja magazynowa nie pasuje do pozycji w zestawieniu BOM" #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "Element magazynowy" @@ -1260,7 +1267,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Numer seryjny" @@ -1271,8 +1278,8 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1289,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "Lokalizacja" @@ -1335,15 +1342,15 @@ msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" @@ -1443,7 +1450,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "Towar musi znajdować się w magazynie" @@ -1537,7 +1544,7 @@ msgstr "IPN komponentu" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1554,7 @@ msgstr "IPN komponentu" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "Numer Seryjny" @@ -1576,7 +1583,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "Możliwość śledzenia" @@ -1601,7 +1608,7 @@ msgid "Allocated Stock" msgstr "" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1616,13 @@ msgstr "" msgid "On Order" msgstr "W Zamówieniu" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "W produkcji" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1646,7 @@ msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "W toku" @@ -1685,7 +1692,7 @@ msgstr "Miniaturka przedmiotu" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Akcje kodów kreskowych" @@ -1812,9 +1819,9 @@ msgstr "" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "Zaległe" @@ -1835,7 +1842,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "Zamówienie zakupu" @@ -1893,8 +1900,8 @@ msgstr "" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1921,7 @@ msgstr "" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "Zakończone" @@ -1987,7 +1994,13 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +#, fuzzy +#| msgid "Build Details" +msgid "Build test statistics" +msgstr "Szczegóły budowy" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2010,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Załączniki" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "Notatki tworzenia" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "Nowe zlecenie budowy" @@ -2037,6 +2050,11 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + #: common/api.py:692 msgid "Is Link" msgstr "" @@ -2470,7 +2488,7 @@ msgstr "" #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "Szablon" @@ -2479,9 +2497,9 @@ msgid "Parts are templates by default" msgstr "" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "Złożenie" @@ -2490,7 +2508,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "Komponent" @@ -2507,7 +2525,7 @@ msgid "Parts are purchaseable by default" msgstr "Części są domyślnie z możliwością zakupu" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "Możliwość sprzedaży" @@ -2522,7 +2540,7 @@ msgstr "Części są domyślnie z możliwością śledzenia" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "Wirtualny" @@ -3615,7 +3633,7 @@ msgstr "" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Użytkownik" @@ -3812,7 +3830,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4261,7 @@ msgstr "" msgid "Manufacturer Part" msgstr "Komponent producenta" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4279,7 @@ msgstr "Wybierz część" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "Producent" @@ -4297,9 +4315,9 @@ msgid "Parameter name" msgstr "Nazwa parametru" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Wartość" @@ -4321,12 +4339,12 @@ msgstr "Jednostki parametru" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" @@ -4354,7 +4372,7 @@ msgstr "" #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "Dostawca" @@ -4404,13 +4422,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "Opakowanie" @@ -4536,15 +4554,15 @@ msgstr "Usuń obraz" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "Klient" @@ -4594,7 +4612,7 @@ msgstr "Utwórz nowego dostawcę części" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "Nowy dostawca części" @@ -4607,7 +4625,7 @@ msgstr "Części producenta" msgid "Create new manufacturer part" msgstr "Utwórz nową część producenta" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "Nowa część producenta" @@ -4621,7 +4639,7 @@ msgstr "Zapasy dostawcy" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4662,7 @@ msgstr "Nowe zamówienie zakupu" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4734,7 @@ msgstr "Producenci" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "Zamów komponent" @@ -4751,12 +4769,12 @@ msgstr "Dostawcy" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Parametry" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4817,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "Zamów komponent" @@ -4852,7 +4870,7 @@ msgstr "Utwórz nowy towar" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "Nowy towar" @@ -4890,13 +4908,13 @@ msgstr "" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "Towary" @@ -5224,7 +5242,7 @@ msgid "Order Status" msgstr "Status zamówienia" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "Posiada ceny" @@ -5257,7 +5275,7 @@ msgstr "Zamówienie oczekujące" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "Zlecenie zakupu" @@ -5266,7 +5284,7 @@ msgstr "Zlecenie zakupu" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5459,7 +5477,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "Odebrane" @@ -5467,9 +5485,9 @@ msgstr "Odebrane" msgid "Number of items received" msgstr "" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "Cena zakupu" @@ -5757,7 +5775,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6069,7 +6087,7 @@ msgstr "Duplikuj wybrane" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Usuń wiersz" @@ -6250,7 +6268,7 @@ msgstr "Oczekujące przesyłki" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "Akcje" @@ -6283,7 +6301,7 @@ msgstr "" #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" @@ -6531,8 +6549,8 @@ msgstr "Kategorie części" msgid "Default location for parts in this category" msgstr "Domyślna lokalizacja dla komponentów w tej kategorii" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6568,13 @@ msgstr "Domyślne słowa kluczowe" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" @@ -6732,7 +6750,7 @@ msgid "Is this part active?" msgstr "Czy ta część jest aktywna?" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6952,7 @@ msgstr "" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "Data" @@ -7036,7 +7054,7 @@ msgstr "Wprowadź opis do tego testu" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "Aktywne" @@ -7045,7 +7063,7 @@ msgid "Is this test enabled?" msgstr "" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "Wymagane" @@ -7106,7 +7124,7 @@ msgid "Parameter description" msgstr "" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" @@ -7254,7 +7272,7 @@ msgstr "" msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -7352,7 +7370,7 @@ msgstr "Kopiuj obraz" msgid "Copy image from original part" msgstr "" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "Kopiuj BOM" @@ -7554,80 +7572,110 @@ msgstr "" msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +#, fuzzy +#| msgid "Select parent part" +msgid "Select the parent assembly" +msgstr "Wybierz część nadrzędną" + +#: part/serializers.py:1583 +#, fuzzy +#| msgid "Component" +msgid "Component Name" +msgstr "Komponent" + +#: part/serializers.py:1586 +#, fuzzy +#| msgid "Component" +msgid "Component IPN" +msgstr "Komponent" + +#: part/serializers.py:1589 +#, fuzzy +#| msgid "Company description" +msgid "Component Description" +msgstr "Opis firmy" + +#: part/serializers.py:1595 +#, fuzzy +#| msgid "Select parent part" +msgid "Select the component part" +msgstr "Wybierz część nadrzędną" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "Usuń istniejące dane" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "Pomiń nieprawidłowe wiersze" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "Włącz tę opcję, aby pominąć nieprawidłowe wiersze" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "Wyczyść istniejący BOM" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "Nie podano ilości" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "Nieprawidłowa ilość" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" @@ -7785,7 +7833,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7797,101 +7845,107 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +#, fuzzy +#| msgid "Part Settings" +msgid "Part Test Statistics" +msgstr "Ustawienia części" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "Warianty Części" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "Utwórz nowy wariant" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "Nowy wariant" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "Powiązane części" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "Dodaj powiązane" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "Zestawienie materiałowe" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "Akcje eksportu" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "Eksportuj BOM" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "Drukuj raport BOM" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "Wgraj BOM" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "Weryfikuj BOM" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "Dodaj część do BOM" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "Złożenia" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "Dostawcy Części" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "Producenci części" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8134,8 +8188,8 @@ msgstr "Warianty" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "Stan" @@ -8181,7 +8235,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "Ostatnia aktualizacja" @@ -8815,7 +8869,7 @@ msgid "Is the plugin active" msgstr "Czy wtyczka jest aktywna" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "Zainstalowane" @@ -9228,6 +9282,8 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "Razem" @@ -9244,11 +9300,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "Wynik" @@ -9274,8 +9330,8 @@ msgid "Installed Items" msgstr "Zainstalowane elementy" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "Numer seryjny" @@ -9332,7 +9388,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "Zainstalowane w" @@ -9357,9 +9413,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "Data ważności" @@ -9375,7 +9431,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9425,316 +9481,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Lokacje stanu magazynowego" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Właściciel" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "Wybierz właściciela" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "Nadrzędny towar" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "Część podstawowa" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "Wybierz pasującą część dostawcy dla tego towaru" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "Ilość w magazynie" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "Wyszukaj zlecenie zakupu" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "Zlecenie zakupu dla tego towaru" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "Usuń po wyczerpaniu" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "Ilość musi być liczbą całkowitą" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "Numer seryjny już istnieje" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "Notatki do wpisu" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "Należy podać wartość dla tego testu" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "Wynik testu" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9844,7 +9900,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "" @@ -9868,8 +9924,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "" @@ -9893,106 +9949,112 @@ msgstr "" msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:900 +#, fuzzy +#| msgid "Unsupported file type" +msgid "Unsupported statistic type: " +msgstr "Nieobsługiwany typ pliku" + +#: stock/serializers.py:914 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:927 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Podlokalizacje" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "Część musi być dostępna do sprzedaży" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "" @@ -10024,7 +10086,7 @@ msgstr "Poddany kwarantannie" msgid "Legacy stock tracking entry" msgstr "Starsze śledzenie wpisów stanu magazynowego" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Utworzono element magazynowy" @@ -10080,7 +10142,7 @@ msgstr "Podziel z pozycji nadrzędnej" msgid "Split child item" msgstr "Podziel element podrzędny" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Scalone przedmioty magazynowe" @@ -10100,7 +10162,7 @@ msgstr "Dane wyjściowe kolejności kompilacji ukończone" msgid "Build order output rejected" msgstr "Odrzucono wynik zlecenia produkcji" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Zużyte przez kolejność kompilacji" @@ -10161,7 +10223,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10169,7 +10231,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10183,7 +10245,7 @@ msgstr "Skanuj do lokacji" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "Akcje druku" @@ -10192,17 +10254,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "Przelicz stan magazynowy" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "Usuń stan magazynowy" @@ -10211,12 +10273,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "Przenieś stan magazynowy" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10342,7 +10404,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10451,7 +10513,7 @@ msgid "New Location" msgstr "Nowa lokalizacja" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" @@ -10839,7 +10901,7 @@ msgstr "Ścieżka instalacji" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10849,7 +10911,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10954,7 +11016,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "Usuń" @@ -11811,7 +11873,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12124,13 +12186,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12391,7 +12453,7 @@ msgstr "" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" @@ -12399,7 +12461,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" @@ -12468,7 +12530,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" @@ -12722,45 +12784,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -13000,8 +13062,8 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" @@ -13126,7 +13188,7 @@ msgid "Copy Bill of Materials" msgstr "" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" @@ -13256,7 +13318,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" @@ -13268,7 +13330,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" @@ -13550,7 +13612,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13949,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13945,513 +14007,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "Dodaj" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14486,12 +14556,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14533,7 +14603,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14634,56 +14704,68 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +#, fuzzy +#| msgid "Internal Part" +msgid "Interval start" +msgstr "Komponent wewnętrzny" + +#: templates/js/translated/table_filters.js:475 +#, fuzzy +#| msgid "Internal Price" +msgid "Interval end" +msgstr "Cena wewnętrzna" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14956,6 +15038,18 @@ msgstr "Ustawienia e-maila" msgid "Email settings not configured" msgstr "Ustawienia e-mail nie zostały skonfigurowane" +#: templates/test_statistics_table.html:13 +#, fuzzy +#| msgid "Pass" +msgid "Passed" +msgstr "Zaliczone" + +#: templates/test_statistics_table.html:16 +#, fuzzy +#| msgid "Fail" +msgid "Failed" +msgstr "Niezaliczone" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "Tak" @@ -15059,4 +15153,3 @@ msgstr "Uprawnienie do edycji przedmiotów" #: users/models.py:408 msgid "Permission to delete items" msgstr "Uprawnienie do usuwania przedmiotów" - diff --git a/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po index a0419900ec..fce135308e 100644 --- a/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Portuguese, Brazilian\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "" @@ -91,47 +92,51 @@ msgstr "" msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "" -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "" @@ -417,7 +422,7 @@ msgstr "" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +435,7 @@ msgstr "" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "" @@ -446,7 +451,7 @@ msgstr "" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +471,17 @@ msgstr "" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" @@ -573,10 +578,10 @@ msgstr "" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -730,7 +735,7 @@ msgstr "" #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" @@ -739,19 +744,19 @@ msgstr "" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" @@ -765,7 +770,7 @@ msgstr "" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" @@ -774,7 +779,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" @@ -854,7 +859,7 @@ msgstr "" #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +871,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +896,10 @@ msgstr "" #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "" @@ -953,9 +958,9 @@ msgid "Build status code" msgstr "" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" @@ -1006,7 +1011,7 @@ msgstr "" #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" @@ -1020,14 +1025,14 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "" @@ -1082,8 +1087,8 @@ msgstr "" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" @@ -1146,9 +1151,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" @@ -1182,8 +1187,8 @@ msgid "Selected stock item does not match BOM line" msgstr "" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1199,8 @@ msgstr "" #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" @@ -1260,7 +1265,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" @@ -1271,8 +1276,8 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1287,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" @@ -1335,15 +1340,15 @@ msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" @@ -1443,7 +1448,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "" @@ -1537,7 +1542,7 @@ msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1552,7 @@ msgstr "" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" @@ -1576,7 +1581,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" @@ -1601,7 +1606,7 @@ msgid "Allocated Stock" msgstr "" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1614,13 @@ msgstr "" msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1644,7 @@ msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "" @@ -1685,7 +1690,7 @@ msgstr "" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1812,9 +1817,9 @@ msgstr "" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" @@ -1835,7 +1840,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" @@ -1893,8 +1898,8 @@ msgstr "" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1919,7 @@ msgstr "" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +1992,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2006,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,6 +2046,11 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + #: common/api.py:692 msgid "Is Link" msgstr "" @@ -2470,7 +2484,7 @@ msgstr "" #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" @@ -2479,9 +2493,9 @@ msgid "Parts are templates by default" msgstr "" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" @@ -2490,7 +2504,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" @@ -2507,7 +2521,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" @@ -2522,7 +2536,7 @@ msgstr "" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" @@ -3615,7 +3629,7 @@ msgstr "" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "" @@ -3812,7 +3826,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4257,7 @@ msgstr "" msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4275,7 @@ msgstr "" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" @@ -4297,9 +4311,9 @@ msgid "Parameter name" msgstr "" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" @@ -4321,12 +4335,12 @@ msgstr "" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" @@ -4354,7 +4368,7 @@ msgstr "" #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" @@ -4404,13 +4418,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "" @@ -4536,15 +4550,15 @@ msgstr "" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4594,7 +4608,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4607,7 +4621,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4621,7 +4635,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4658,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4730,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4751,12 +4765,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4813,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4852,7 +4866,7 @@ msgstr "" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4890,13 +4904,13 @@ msgstr "" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5224,7 +5238,7 @@ msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5257,7 +5271,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" @@ -5266,7 +5280,7 @@ msgstr "" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5459,7 +5473,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" @@ -5467,9 +5481,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" @@ -5757,7 +5771,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6069,7 +6083,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6250,7 +6264,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6283,7 +6297,7 @@ msgstr "" #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" @@ -6531,8 +6545,8 @@ msgstr "" msgid "Default location for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6564,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" @@ -6732,7 +6746,7 @@ msgid "Is this part active?" msgstr "" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6948,7 @@ msgstr "" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" @@ -7036,7 +7050,7 @@ msgstr "" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" @@ -7045,7 +7059,7 @@ msgid "Is this test enabled?" msgstr "" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" @@ -7106,7 +7120,7 @@ msgid "Parameter description" msgstr "" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" @@ -7254,7 +7268,7 @@ msgstr "" msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -7352,7 +7366,7 @@ msgstr "" msgid "Copy image from original part" msgstr "" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" @@ -7554,80 +7568,100 @@ msgstr "" msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" @@ -7785,7 +7819,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7797,101 +7831,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8134,8 +8172,8 @@ msgstr "" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8181,7 +8219,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8815,7 +8853,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -9228,6 +9266,8 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9244,11 +9284,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9274,8 +9314,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" @@ -9332,7 +9372,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9357,9 +9397,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9375,7 +9415,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9425,316 +9465,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9844,7 +9884,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "" @@ -9868,8 +9908,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "" @@ -9893,106 +9933,110 @@ msgstr "" msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 -msgid "Select part to convert stock item into" -msgstr "" - -#: stock/serializers.py:897 -msgid "Selected part is not a valid option for conversion" +#: stock/serializers.py:900 +msgid "Unsupported statistic type: " msgstr "" #: stock/serializers.py:914 +msgid "Select part to convert stock item into" +msgstr "" + +#: stock/serializers.py:927 +msgid "Selected part is not a valid option for conversion" +msgstr "" + +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "" @@ -10024,7 +10068,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10080,7 +10124,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10100,7 +10144,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10161,7 +10205,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10169,7 +10213,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10183,7 +10227,7 @@ msgstr "" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10192,17 +10236,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10211,12 +10255,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10342,7 +10386,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10451,7 +10495,7 @@ msgid "New Location" msgstr "" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" @@ -10839,7 +10883,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10849,7 +10893,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10954,7 +10998,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -11811,7 +11855,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12124,13 +12168,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12391,7 +12435,7 @@ msgstr "" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" @@ -12399,7 +12443,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" @@ -12468,7 +12512,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" @@ -12722,45 +12766,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -13000,8 +13044,8 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" @@ -13126,7 +13170,7 @@ msgid "Copy Bill of Materials" msgstr "" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" @@ -13256,7 +13300,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" @@ -13268,7 +13312,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" @@ -13550,7 +13594,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13931,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13945,513 +13989,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14486,12 +14538,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14533,7 +14585,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14634,56 +14686,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14956,6 +15016,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" @@ -15059,4 +15127,3 @@ msgstr "" #: users/models.py:408 msgid "Permission to delete items" msgstr "" - diff --git a/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po index 35dd19e878..95b3e02ca5 100644 --- a/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:37\n" "Last-Translator: \n" "Language-Team: Romanian\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "" @@ -91,47 +92,51 @@ msgstr "" msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "" -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "" @@ -417,7 +422,7 @@ msgstr "" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +435,7 @@ msgstr "" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "" @@ -446,7 +451,7 @@ msgstr "" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +471,17 @@ msgstr "" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" @@ -573,10 +578,10 @@ msgstr "" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -730,7 +735,7 @@ msgstr "" #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" @@ -739,19 +744,19 @@ msgstr "" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" @@ -765,7 +770,7 @@ msgstr "" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" @@ -774,7 +779,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" @@ -854,7 +859,7 @@ msgstr "" #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +871,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +896,10 @@ msgstr "" #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "" @@ -953,9 +958,9 @@ msgid "Build status code" msgstr "" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" @@ -1006,7 +1011,7 @@ msgstr "" #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" @@ -1020,14 +1025,14 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "" @@ -1082,8 +1087,8 @@ msgstr "" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" @@ -1146,9 +1151,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" @@ -1182,8 +1187,8 @@ msgid "Selected stock item does not match BOM line" msgstr "" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1199,8 @@ msgstr "" #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" @@ -1260,7 +1265,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" @@ -1271,8 +1276,8 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1287,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" @@ -1335,15 +1340,15 @@ msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" @@ -1443,7 +1448,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "" @@ -1537,7 +1542,7 @@ msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1552,7 @@ msgstr "" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" @@ -1576,7 +1581,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" @@ -1601,7 +1606,7 @@ msgid "Allocated Stock" msgstr "" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1614,13 @@ msgstr "" msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1644,7 @@ msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "" @@ -1685,7 +1690,7 @@ msgstr "" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1812,9 +1817,9 @@ msgstr "" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" @@ -1835,7 +1840,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" @@ -1893,8 +1898,8 @@ msgstr "" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1919,7 @@ msgstr "" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +1992,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2006,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,6 +2046,11 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + #: common/api.py:692 msgid "Is Link" msgstr "" @@ -2470,7 +2484,7 @@ msgstr "" #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" @@ -2479,9 +2493,9 @@ msgid "Parts are templates by default" msgstr "" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" @@ -2490,7 +2504,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" @@ -2507,7 +2521,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" @@ -2522,7 +2536,7 @@ msgstr "" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" @@ -3615,7 +3629,7 @@ msgstr "" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "" @@ -3812,7 +3826,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4257,7 @@ msgstr "" msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4275,7 @@ msgstr "" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" @@ -4297,9 +4311,9 @@ msgid "Parameter name" msgstr "" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" @@ -4321,12 +4335,12 @@ msgstr "" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" @@ -4354,7 +4368,7 @@ msgstr "" #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" @@ -4404,13 +4418,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "" @@ -4536,15 +4550,15 @@ msgstr "" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4594,7 +4608,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4607,7 +4621,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4621,7 +4635,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4658,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4730,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4751,12 +4765,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4813,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4852,7 +4866,7 @@ msgstr "" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4890,13 +4904,13 @@ msgstr "" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5224,7 +5238,7 @@ msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5257,7 +5271,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" @@ -5266,7 +5280,7 @@ msgstr "" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5459,7 +5473,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" @@ -5467,9 +5481,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" @@ -5757,7 +5771,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6069,7 +6083,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6250,7 +6264,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6283,7 +6297,7 @@ msgstr "" #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" @@ -6531,8 +6545,8 @@ msgstr "" msgid "Default location for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6564,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" @@ -6732,7 +6746,7 @@ msgid "Is this part active?" msgstr "" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6948,7 @@ msgstr "" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" @@ -7036,7 +7050,7 @@ msgstr "" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" @@ -7045,7 +7059,7 @@ msgid "Is this test enabled?" msgstr "" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" @@ -7106,7 +7120,7 @@ msgid "Parameter description" msgstr "" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" @@ -7254,7 +7268,7 @@ msgstr "" msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -7352,7 +7366,7 @@ msgstr "" msgid "Copy image from original part" msgstr "" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" @@ -7554,80 +7568,100 @@ msgstr "" msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" @@ -7785,7 +7819,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7797,101 +7831,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8134,8 +8172,8 @@ msgstr "" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8181,7 +8219,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8815,7 +8853,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -9228,6 +9266,8 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9244,11 +9284,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9274,8 +9314,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" @@ -9332,7 +9372,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9357,9 +9397,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9375,7 +9415,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9425,316 +9465,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9844,7 +9884,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "" @@ -9868,8 +9908,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "" @@ -9893,106 +9933,110 @@ msgstr "" msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 -msgid "Select part to convert stock item into" -msgstr "" - -#: stock/serializers.py:897 -msgid "Selected part is not a valid option for conversion" +#: stock/serializers.py:900 +msgid "Unsupported statistic type: " msgstr "" #: stock/serializers.py:914 +msgid "Select part to convert stock item into" +msgstr "" + +#: stock/serializers.py:927 +msgid "Selected part is not a valid option for conversion" +msgstr "" + +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "" @@ -10024,7 +10068,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10080,7 +10124,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10100,7 +10144,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10161,7 +10205,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10169,7 +10213,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10183,7 +10227,7 @@ msgstr "" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10192,17 +10236,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10211,12 +10255,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10342,7 +10386,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10451,7 +10495,7 @@ msgid "New Location" msgstr "" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" @@ -10839,7 +10883,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10849,7 +10893,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10954,7 +10998,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -11811,7 +11855,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12124,13 +12168,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12391,7 +12435,7 @@ msgstr "" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" @@ -12399,7 +12443,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" @@ -12468,7 +12512,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" @@ -12722,45 +12766,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -13000,8 +13044,8 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" @@ -13126,7 +13170,7 @@ msgid "Copy Bill of Materials" msgstr "" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" @@ -13256,7 +13300,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" @@ -13268,7 +13312,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" @@ -13550,7 +13594,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13931,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13945,513 +13989,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14486,12 +14538,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14533,7 +14585,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14634,56 +14686,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14956,6 +15016,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" @@ -15059,4 +15127,3 @@ msgstr "" #: users/models.py:408 msgid "Permission to delete items" msgstr "" - diff --git a/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po index 2c50a6b6c6..6e84047c61 100644 --- a/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Russian\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "Введите дату" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "Введите дату" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "Введите дату" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Записи" @@ -91,47 +92,53 @@ msgstr "Значение '{name}' отсутствует в формате ша msgid "Provided value does not match required pattern: " msgstr "Предоставленное значение не соответствует требуемому формату: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Введите пароль" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Введите новый пароль" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Подтвердить пароль" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Подтвердите новый пароль" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Старый пароль" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "Email (еще раз)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Подтверждение адреса электронной почты" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Вы должны вводить один и тот же адрес электронной почты." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +#, fuzzy +#| msgid "Registration is disabled." +msgid "MFA Registration is disabled." +msgstr "Регистрация отключена." + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Указанный основной адрес электронной почты неверен." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Указанный домен электронной почты не утверждён." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Регистрация отключена." @@ -417,7 +424,7 @@ msgstr "Неверный выбор" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +437,7 @@ msgstr "Неверный выбор" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Название" @@ -446,7 +453,7 @@ msgstr "Название" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +473,17 @@ msgstr "Название" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Описание" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Описание (необязательно)" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Путь" @@ -573,10 +580,10 @@ msgstr "Это пользователь является суперпользо #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "Активный" @@ -730,7 +737,7 @@ msgstr "Заказ на производство должен быть отме #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "Расходники" @@ -739,19 +746,19 @@ msgstr "Расходники" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "Необязательно" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "Отслеживается" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "Зарезервировано" @@ -765,7 +772,7 @@ msgstr "Зарезервировано" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "Доступно" @@ -774,7 +781,7 @@ msgstr "Доступно" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Заказ на производство" @@ -854,7 +861,7 @@ msgstr "Заказ на производство, которому принад #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +873,7 @@ msgstr "Заказ на производство, которому принад #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +898,10 @@ msgstr "Заказ на производство, которому принад #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Деталь" @@ -953,9 +960,9 @@ msgid "Build status code" msgstr "Код статуса заказа на производство" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Код партии" @@ -1006,7 +1013,7 @@ msgstr "Пользователь, создавший этот заказ на п #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "Ответственный" @@ -1020,14 +1027,14 @@ msgstr "Пользователь, ответственный за этот за #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Внешняя ссылка" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Ссылка на внешний URL" @@ -1082,8 +1089,8 @@ msgstr "Продукция не совпадает с заказом на про #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "Количество должно быть больше нуля" @@ -1146,9 +1153,9 @@ msgstr "Объект производства" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "Количество" @@ -1182,8 +1189,8 @@ msgid "Selected stock item does not match BOM line" msgstr "Выбранная складская позиция не соответствует позиции в BOM" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1201,8 @@ msgstr "Выбранная складская позиция не соответ #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "Складская позиция" @@ -1260,7 +1267,7 @@ msgstr "Требуется целое количество, так как мат #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Серийные номера" @@ -1271,8 +1278,8 @@ msgstr "Введите серийные номера для продукции" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1289,9 @@ msgstr "Введите серийные номера для продукции" #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "Расположение" @@ -1335,15 +1342,15 @@ msgstr "Место хранения для завершенной продукц #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "Статус" @@ -1443,7 +1450,7 @@ msgstr "Позиция для производства" msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part должна указывать на ту же часть, что и заказ на производство" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "Элемент должен быть в наличии" @@ -1537,7 +1544,7 @@ msgstr "IPN детали" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1554,7 @@ msgstr "IPN детали" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "Серийный номер" @@ -1576,7 +1583,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "Отслеживание" @@ -1601,7 +1608,7 @@ msgid "Allocated Stock" msgstr "Зарезервированные Запасы" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1616,13 @@ msgstr "Зарезервированные Запасы" msgid "On Order" msgstr "В заказе" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "В производстве" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1646,7 @@ msgstr "Внешний склад" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "Ожидаемый" @@ -1685,7 +1692,7 @@ msgstr "Миниатюра детали" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Действия со штрих-кодом" @@ -1812,9 +1819,9 @@ msgstr "Производство было просрочено на %(target)s" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "Просрочено" @@ -1835,7 +1842,7 @@ msgstr "Завершенная продукция" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "Заказ на продажу" @@ -1893,8 +1900,8 @@ msgstr "Зарезервированные детали" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1921,7 @@ msgstr "Нет конечной даты" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "Завершённые" @@ -1987,7 +1994,13 @@ msgstr "Поглощенные Остатки" msgid "Completed Build Outputs" msgstr "Завершенная продукция" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +#, fuzzy +#| msgid "Build status" +msgid "Build test statistics" +msgstr "Статус Производства" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2010,25 @@ msgstr "Завершенная продукция" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Файлы" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "Записи производства" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "Резервирование Завершено" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "Все позиции были полностью зарезервированы" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "Новый заказ на производство" @@ -2037,6 +2050,13 @@ msgstr "Позиции" msgid "Incomplete Outputs" msgstr "Незавершенная продукция" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +#, fuzzy +#| msgid "Test Passed" +msgid "Test Statistics" +msgstr "Тест Пройден" + #: common/api.py:692 msgid "Is Link" msgstr "Ссылка" @@ -2470,7 +2490,7 @@ msgstr "Копировать параметры по шаблону катего #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "Шаблон" @@ -2479,9 +2499,9 @@ msgid "Parts are templates by default" msgstr "По умолчанию детали являются шаблонами" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "Производимая деталь" @@ -2490,7 +2510,7 @@ msgid "Parts can be assembled from other components by default" msgstr "По умолчанию детали могут быть собраны из других компонентов" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "Компонент" @@ -2507,7 +2527,7 @@ msgid "Parts are purchaseable by default" msgstr "По умолчанию детали являются отслеживаемыми" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "Можно продавать" @@ -2522,7 +2542,7 @@ msgstr "По умолчанию детали являются отслежива #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "Виртуальная" @@ -3615,7 +3635,7 @@ msgstr "" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Пользователь" @@ -3812,7 +3832,7 @@ msgstr "Определение" msgid "Unit definition" msgstr "" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4263,7 @@ msgstr "Ссылка на адресную информацию (внешняя) msgid "Manufacturer Part" msgstr "Деталь производителя" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4281,7 @@ msgstr "Выберите деталь" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "Производитель" @@ -4297,9 +4317,9 @@ msgid "Parameter name" msgstr "Наименование параметра" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Значение" @@ -4321,12 +4341,12 @@ msgstr "Единицы измерения параметра" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "Деталь поставщика" @@ -4354,7 +4374,7 @@ msgstr "Связанная деталь производителя должна #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "Поставщик" @@ -4404,13 +4424,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "Упаковка" @@ -4536,15 +4556,15 @@ msgstr "Удалить изображение" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "Покупатель" @@ -4594,7 +4614,7 @@ msgstr "Создать новую деталь поставщика" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "Новая деталь поставщика" @@ -4607,7 +4627,7 @@ msgstr "Детали производителя" msgid "Create new manufacturer part" msgstr "Создать новую деталь производителя" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "Новая деталь производителя" @@ -4621,7 +4641,7 @@ msgstr "Склад поставщика" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4664,7 @@ msgstr "Новый заказ на закупку" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4736,7 @@ msgstr "Производители" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "Заказать деталь" @@ -4751,12 +4771,12 @@ msgstr "Поставщики" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Параметры" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4819,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "Заказать Деталь" @@ -4852,7 +4872,7 @@ msgstr "Создать новую складскую позицию" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "Новая складская позиция" @@ -4890,13 +4910,13 @@ msgstr "" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "Складские позиции" @@ -5224,7 +5244,7 @@ msgid "Order Status" msgstr "Статсу заказа" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "Имеет цену" @@ -5257,7 +5277,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "Заказ на закупку" @@ -5266,7 +5286,7 @@ msgstr "Заказ на закупку" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "Заказ на возврат" @@ -5459,7 +5479,7 @@ msgstr "Деталь поставщика" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "Получено" @@ -5467,9 +5487,9 @@ msgstr "Получено" msgid "Number of items received" msgstr "" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "Закупочная цена" @@ -5757,7 +5777,7 @@ msgid "Select destination location for received items" msgstr "Выберите место назначения для полученных элементов" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "Введите код партии для поступающих складских позиций" @@ -6069,7 +6089,7 @@ msgstr "Дублировать выбранное" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Удалить строку" @@ -6250,7 +6270,7 @@ msgstr "Ожидающие отправления" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "Действия" @@ -6283,7 +6303,7 @@ msgstr "" #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" @@ -6531,8 +6551,8 @@ msgstr "Категория детали" msgid "Default location for parts in this category" msgstr "Место хранения по умолчанию для деталей этой категории" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6570,13 @@ msgstr "Ключевые слова по умолчанию" msgid "Default keywords for parts in this category" msgstr "Ключевые слова по умолчанию для деталей этой категории" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Иконка" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "Иконка (необязательно)" @@ -6732,7 +6752,7 @@ msgid "Is this part active?" msgstr "Эта деталь активна?" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6954,7 @@ msgstr "" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "Дата" @@ -7036,7 +7056,7 @@ msgstr "Введите описание для этого теста" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "Включено" @@ -7045,7 +7065,7 @@ msgid "Is this test enabled?" msgstr "" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "Требуется" @@ -7106,7 +7126,7 @@ msgid "Parameter description" msgstr "Описание параметра" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "Чекбокс" @@ -7254,7 +7274,7 @@ msgstr "" msgid "Stock items for variant parts can be used for this BOM item" msgstr "Складские позиции для разновидностей деталей могут быть использованы для этой позиции BOM" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "Для отслеживаемых деталей количество должно быть целым числом" @@ -7352,7 +7372,7 @@ msgstr "Копировать Изображение" msgid "Copy image from original part" msgstr "" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "Скопировать BOM" @@ -7554,80 +7574,110 @@ msgstr "" msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +#, fuzzy +#| msgid "Select parent part" +msgid "Select the parent assembly" +msgstr "Выберите родительскую деталь" + +#: part/serializers.py:1583 +#, fuzzy +#| msgid "Component" +msgid "Component Name" +msgstr "Компонент" + +#: part/serializers.py:1586 +#, fuzzy +#| msgid "Component" +msgid "Component IPN" +msgstr "Компонент" + +#: part/serializers.py:1589 +#, fuzzy +#| msgid "Company description" +msgid "Component Description" +msgstr "Описание компании" + +#: part/serializers.py:1595 +#, fuzzy +#| msgid "Select parent part" +msgid "Select the component part" +msgstr "Выберите родительскую деталь" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "Можно произвести" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "Подходящая деталь не найдена" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "Некорректное количество" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" @@ -7785,7 +7835,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "Инвентаризация" @@ -7797,101 +7847,107 @@ msgstr "Шаблоны тестирования детали" msgid "Add Test Template" msgstr "Добавить шаблон тестирования" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +#, fuzzy +#| msgid "Part Test Templates" +msgid "Part Test Statistics" +msgstr "Шаблоны тестирования детали" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "Записи Детали" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "Разновидности детали" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "Создать новую разновидность" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "Новая разновидность" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "Связанные детали" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "Добавить Связанные" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "Спецификация" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "Экспорт" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "Экспорт BOM" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "Печать отчета о BOM" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "Действия с BOM" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "Загрузить BOM" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "Проверить BOM" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "Добавить элемент BOM" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "Производимые детали" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "Производства детали" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "Резервы заказа на производство" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "Поставщики" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "Связанная деталь" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "Добавить связанную деталь" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8134,8 +8190,8 @@ msgstr "Разновидности" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "Склад" @@ -8181,7 +8237,7 @@ msgstr "Редактировать" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "Последнее обновление" @@ -8815,7 +8871,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "Установлено" @@ -9228,6 +9284,8 @@ msgstr "Дополнительные элементы" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "Всего" @@ -9244,11 +9302,11 @@ msgid "Test Results" msgstr "Результаты тестирования" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "Тестирование" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "Результат" @@ -9274,8 +9332,8 @@ msgid "Installed Items" msgstr "Установленные элементы" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "Серийный номер" @@ -9332,7 +9390,7 @@ msgstr "Имя поставщика" msgid "Customer ID" msgstr "ID Клиента" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "Установлено в" @@ -9357,9 +9415,9 @@ msgstr "Требуется рецензия" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "Истекает" @@ -9375,7 +9433,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9425,316 +9483,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Место хранения" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Места хранения" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Владелец" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "Выберите владельца" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Складские позиции не могут находиться в структурных местах хранения, но могут находиться в дочерних местах хранения." -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "Внешний" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "Тип Места Хранения" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "Вы не можете сделать это место хранение структурным, потому, что некоторые складские позиции уже находятся в нем!" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "Складские позиции не могут находиться в структурных местах хранения!" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "Складская позиция не может быть создана для виртуальных деталей" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "Элемент должен иметь ссылку на производство, если is_building=True" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "Ссылка на производство не указывает на тот же элемент" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "Складская позиция" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "Базовая деталь" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "Выберите соответствующего поставщика детали для этой складской позиции" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "Где находиться эта складская позиция?" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "Упаковка этой складской позиции хранится в" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "Код партии для этой складской позиции" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "Количество на складе" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "Исходное производство" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "Производства для этой складской позиции" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "Поглощен" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "Заказ на производство, который поглотил эту складскую позицию" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "Заказ на закупку для этой складской позиции" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Дата истечения срока годности для складской позиции. Остатки будут считаться просроченными после этой даты" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "Удалить при обнулении" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "Удалить эту складскую позицию при обнулении складского запаса" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "Деталь не является отслеживаемой" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "Серийные номера уже существуют" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "Складская позиция была назначена заказу на продажу" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "Складская позиция установлена в другую деталь" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "Складская позиция содержит другие детали" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "Складская позиция была назначена покупателю" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "Складская позиция в производстве" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "Складские позиции должны ссылаться на одну и ту же деталь" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "Складские позиции должны ссылаться на одну и ту же деталь поставщика" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "Результат тестирования" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "Записи Тестирования" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9844,7 +9902,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "Введите серийные номера для новых элементов" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "" @@ -9868,8 +9926,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "Добавить запись к транзакции (необязательно)" @@ -9893,106 +9951,112 @@ msgstr "" msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:900 +#, fuzzy +#| msgid "Unsupported file type" +msgid "Unsupported statistic type: " +msgstr "Неподдерживаемый тип файла" + +#: stock/serializers.py:914 msgid "Select part to convert stock item into" msgstr "Выберите деталь в которую будет преобразована складская позиция" -#: stock/serializers.py:897 +#: stock/serializers.py:927 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "Невозможно преобразовать складскую позицию с назначенной деталью поставщика" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "Выберите складские позиции для изменения статуса" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "Не выбрано ни одной складской позиции" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Места хранения" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "Элемент зарезервирован для заказа на производство" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "Покупатель для назначения складских позиций" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "Выбранная компания не является покупателем" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "Записи о назначенных запасах" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "Необходимо предоставить список складских позиций" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "Записи о слияниях запасов" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "Разрешить слияние складских позиций с различными поставщиками" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "Разрешить слияние складских позиций с различными статусами" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "Необходимо предоставить как минимум 2 складские позиции" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "Статус складской позиции" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "Записи о перемещениях запасов" @@ -10024,7 +10088,7 @@ msgstr "Карантин" msgid "Legacy stock tracking entry" msgstr "Отслеживание устаревших запасов" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Складская позиция создана" @@ -10080,7 +10144,7 @@ msgstr "Отделить от родительского элемента" msgid "Split child item" msgstr "Разбить дочерний элемент" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Объединенные складские позиции" @@ -10100,7 +10164,7 @@ msgstr "Продукция заказа на производство завер msgid "Build order output rejected" msgstr "Продукция заказа на производство отклонена" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Поглощен заказом на производство" @@ -10161,7 +10225,7 @@ msgstr "Записи складской позиции" msgid "Installed Stock Items" msgstr "Установленные складские позиции" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "Установить складскую позицию" @@ -10169,7 +10233,7 @@ msgstr "Установить складскую позицию" msgid "Delete all test results for this stock item" msgstr "Удалить все результаты тестирования для этой складской позиции" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "Добавить Результат Тестирования" @@ -10183,7 +10247,7 @@ msgstr "Сканировать в место хранения" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "Действия печати" @@ -10192,17 +10256,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "Установить запасы" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "Добавить Остатки" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "Удалить запасы" @@ -10211,12 +10275,12 @@ msgid "Serialize stock" msgstr "Сериализовать запасы" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "Переместить запасы" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10342,7 +10406,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10451,7 +10515,7 @@ msgid "New Location" msgstr "Новое место хранения" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "места хранения" @@ -10839,7 +10903,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "Встроенный" @@ -10849,7 +10913,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "Образец" @@ -10954,7 +11018,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "Удалить" @@ -11811,7 +11875,7 @@ msgstr "" msgid "Unlink" msgstr "Отсоединить" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "Удалить складскую позицию" @@ -12124,13 +12188,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12391,7 +12455,7 @@ msgstr "" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "Выбрать" @@ -12399,7 +12463,7 @@ msgstr "Выбрать" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" @@ -12468,7 +12532,7 @@ msgstr "" msgid "Build stock" msgstr "Запасы производства" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "Заказать запасы" @@ -12722,45 +12786,45 @@ msgstr "Изменить разрыв цен" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "да" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "Выбрать фильтр" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "Печать этикеток" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "Распечатать отчеты" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "Добавить новый фильтр" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "Создать фильтр" @@ -13000,8 +13064,8 @@ msgstr "" msgid "Add Part Category" msgstr "Добавить категорию детали" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" @@ -13126,7 +13190,7 @@ msgid "Copy Bill of Materials" msgstr "" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "Низкий запас" @@ -13256,7 +13320,7 @@ msgid "No category" msgstr "Нет категории" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "Отобразить списком" @@ -13268,7 +13332,7 @@ msgstr "Отобразить сеткой" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "Отобразить древом" @@ -13550,7 +13614,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13951,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13945,513 +14009,521 @@ msgstr "" msgid "Remove results" msgstr "Удалить результат" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "Сериализировать складскую позицию" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "Действия со складской позиции в этом месте хранения" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "Введите начальное количество для этой складской позиции" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "Складская позиция дублирована" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "Дублировать складскую позицию" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "Вы уверены, что хотите удалить эту складскую позицию?" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "Удалить складскую позицию" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "Редактировать складскую позицию" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "Создать еще один элемент после этого" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "Некоторые данные будут потеряны при слиянии складских позиций" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "Подтвердить слияние складских позиций" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "Объединить складские позиции" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "Переместить запасы" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "Переместить" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "Установить запасы" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "Количество" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "Удалить запасы" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "Взять" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "Добавить Запасы" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "Добавить" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "Удалить запасы" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "Выбрать складские позиции" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "Выбрать как минимум одну складскую позицию" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "Подтвердите изменение запасов" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "ПРОШЕЛ" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "ПРОВАЛЕН" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "НЕТ РЕЗУЛЬТАТА" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "Тест пройден" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "Добавить Результат Тестирования" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "Редактировать результаты тестирования" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "Данные Тестирования" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "В производстве" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "Установленные складские позиции" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "Место хранения не установлено" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "Изменить статус запасов" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "Объединить Запасы" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "Удалить запасы" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "складские позиции" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "Действия с Запасами" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "Складская позиция в производстве" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "Складская позиция зарезервирована заказом на продажу" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "Складская позиция была назначена покупателю" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "Сериализированная складская позиция была зарезервирована " -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "Складские позиции были полностью зарезервированы" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "Складские позиции были частично зарезервированы" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "Складская позиция была установлена в другую деталь" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "Складская позиция была поглощена заказом на продажу" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "Складская позиция была просрочена" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "Складская позиция будет просрочена в скором времени" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "Складская позиция была отклонена" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "Складская позиция была утеряна" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "Складская позиция была уничтожена" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "Истощен" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "Кол-во Запаса" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "Нет складских позиций соответствующих запросу" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "места хранения" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "Подробности" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "Нет изменений" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "Складская позиция не существует" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "Добавлено" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "Удалено" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "Снять складскую позицию" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "Выберите складскую позицию для съема" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "Установить другую складскую позицию в эту деталь" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "Складские позиции могут быть установлены, только если отвечают следующим критериям" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "Складская позиция ссылается на деталь, чья спецификация является этой складской позицией" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "Складская позиция сейчас доступна на складе" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "Складская позиция не установлена в другую деталь" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "Складская позиция отслеживается либо по коду партии, либо серийному номеру" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "Выберите одну или более складских позиций" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "Выбранные складские позиции" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "Изменить статус запасов" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "Статус заказа" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "Невыполненный" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "Назначено мне" @@ -14486,12 +14558,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "Включая подкатегории" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "Подписан" @@ -14533,7 +14605,7 @@ msgid "Batch code" msgstr "Код партии" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "Активная Деталь" @@ -14634,56 +14706,68 @@ msgstr "Тест Пройден" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +#, fuzzy +#| msgid "Internal Part" +msgid "Interval start" +msgstr "Внутренняя деталь" + +#: templates/js/translated/table_filters.js:475 +#, fuzzy +#| msgid "Internal Price" +msgid "Interval end" +msgstr "Внутренняя цена" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "Статус Производства" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "Включить детали в подкатегориях" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "Доступный запас" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "Имеет Ед. Изм." -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "Имеет IPN" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "В наличии" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "Можно купить" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "Имеет Варианты" @@ -14956,6 +15040,18 @@ msgstr "Настройки электронной почты" msgid "Email settings not configured" msgstr "Электронная почта не настроена" +#: templates/test_statistics_table.html:13 +#, fuzzy +#| msgid "Pass" +msgid "Passed" +msgstr "Прошел" + +#: templates/test_statistics_table.html:16 +#, fuzzy +#| msgid "Fail" +msgid "Failed" +msgstr "Провален" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "Да" @@ -15059,4 +15155,3 @@ msgstr "Разрешение на редактирование элементо #: users/models.py:408 msgid "Permission to delete items" msgstr "Разрешение на удаление элементов" - diff --git a/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po index 8010e39e64..afcc628e94 100644 --- a/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Slovak\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "" @@ -91,47 +92,51 @@ msgstr "" msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "" -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "" @@ -417,7 +422,7 @@ msgstr "" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +435,7 @@ msgstr "" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "" @@ -446,7 +451,7 @@ msgstr "" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +471,17 @@ msgstr "" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" @@ -573,10 +578,10 @@ msgstr "" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -730,7 +735,7 @@ msgstr "" #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" @@ -739,19 +744,19 @@ msgstr "" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" @@ -765,7 +770,7 @@ msgstr "" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" @@ -774,7 +779,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" @@ -854,7 +859,7 @@ msgstr "" #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +871,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +896,10 @@ msgstr "" #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "" @@ -953,9 +958,9 @@ msgid "Build status code" msgstr "" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" @@ -1006,7 +1011,7 @@ msgstr "" #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" @@ -1020,14 +1025,14 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "" @@ -1082,8 +1087,8 @@ msgstr "" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" @@ -1146,9 +1151,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" @@ -1182,8 +1187,8 @@ msgid "Selected stock item does not match BOM line" msgstr "" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1199,8 @@ msgstr "" #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" @@ -1260,7 +1265,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" @@ -1271,8 +1276,8 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1287,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" @@ -1335,15 +1340,15 @@ msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" @@ -1443,7 +1448,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "" @@ -1537,7 +1542,7 @@ msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1552,7 @@ msgstr "" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" @@ -1576,7 +1581,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" @@ -1601,7 +1606,7 @@ msgid "Allocated Stock" msgstr "" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1614,13 @@ msgstr "" msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1644,7 @@ msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "" @@ -1685,7 +1690,7 @@ msgstr "" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1812,9 +1817,9 @@ msgstr "" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" @@ -1835,7 +1840,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" @@ -1893,8 +1898,8 @@ msgstr "" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1919,7 @@ msgstr "" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +1992,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2006,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,6 +2046,11 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + #: common/api.py:692 msgid "Is Link" msgstr "" @@ -2470,7 +2484,7 @@ msgstr "" #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" @@ -2479,9 +2493,9 @@ msgid "Parts are templates by default" msgstr "" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" @@ -2490,7 +2504,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" @@ -2507,7 +2521,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" @@ -2522,7 +2536,7 @@ msgstr "" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" @@ -3615,7 +3629,7 @@ msgstr "" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "" @@ -3812,7 +3826,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4257,7 @@ msgstr "" msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4275,7 @@ msgstr "" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" @@ -4297,9 +4311,9 @@ msgid "Parameter name" msgstr "" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" @@ -4321,12 +4335,12 @@ msgstr "" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" @@ -4354,7 +4368,7 @@ msgstr "" #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" @@ -4404,13 +4418,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "" @@ -4536,15 +4550,15 @@ msgstr "" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4594,7 +4608,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4607,7 +4621,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4621,7 +4635,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4658,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4730,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4751,12 +4765,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4813,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4852,7 +4866,7 @@ msgstr "" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4890,13 +4904,13 @@ msgstr "" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5224,7 +5238,7 @@ msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5257,7 +5271,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" @@ -5266,7 +5280,7 @@ msgstr "" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5459,7 +5473,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" @@ -5467,9 +5481,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" @@ -5757,7 +5771,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6069,7 +6083,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6250,7 +6264,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6283,7 +6297,7 @@ msgstr "" #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" @@ -6531,8 +6545,8 @@ msgstr "" msgid "Default location for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6564,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" @@ -6732,7 +6746,7 @@ msgid "Is this part active?" msgstr "" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6948,7 @@ msgstr "" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" @@ -7036,7 +7050,7 @@ msgstr "" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" @@ -7045,7 +7059,7 @@ msgid "Is this test enabled?" msgstr "" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" @@ -7106,7 +7120,7 @@ msgid "Parameter description" msgstr "" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" @@ -7254,7 +7268,7 @@ msgstr "" msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -7352,7 +7366,7 @@ msgstr "" msgid "Copy image from original part" msgstr "" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" @@ -7554,80 +7568,100 @@ msgstr "" msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" @@ -7785,7 +7819,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7797,101 +7831,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8134,8 +8172,8 @@ msgstr "" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8181,7 +8219,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8815,7 +8853,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -9228,6 +9266,8 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9244,11 +9284,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9274,8 +9314,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" @@ -9332,7 +9372,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9357,9 +9397,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9375,7 +9415,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9425,316 +9465,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9844,7 +9884,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "" @@ -9868,8 +9908,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "" @@ -9893,106 +9933,110 @@ msgstr "" msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 -msgid "Select part to convert stock item into" -msgstr "" - -#: stock/serializers.py:897 -msgid "Selected part is not a valid option for conversion" +#: stock/serializers.py:900 +msgid "Unsupported statistic type: " msgstr "" #: stock/serializers.py:914 +msgid "Select part to convert stock item into" +msgstr "" + +#: stock/serializers.py:927 +msgid "Selected part is not a valid option for conversion" +msgstr "" + +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "" @@ -10024,7 +10068,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10080,7 +10124,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10100,7 +10144,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10161,7 +10205,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10169,7 +10213,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10183,7 +10227,7 @@ msgstr "" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10192,17 +10236,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10211,12 +10255,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10342,7 +10386,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10451,7 +10495,7 @@ msgid "New Location" msgstr "" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" @@ -10839,7 +10883,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10849,7 +10893,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10954,7 +10998,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -11811,7 +11855,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12124,13 +12168,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12391,7 +12435,7 @@ msgstr "" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" @@ -12399,7 +12443,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" @@ -12468,7 +12512,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" @@ -12722,45 +12766,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -13000,8 +13044,8 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" @@ -13126,7 +13170,7 @@ msgid "Copy Bill of Materials" msgstr "" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" @@ -13256,7 +13300,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" @@ -13268,7 +13312,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" @@ -13550,7 +13594,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13931,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13945,513 +13989,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14486,12 +14538,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14533,7 +14585,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14634,56 +14686,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14956,6 +15016,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" @@ -15059,4 +15127,3 @@ msgstr "" #: users/models.py:408 msgid "Permission to delete items" msgstr "" - diff --git a/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po index 6c52b4b650..abfdc99ade 100644 --- a/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Slovenian\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "Vnesi datum" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "Vnesi datum" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "Vnesi datum" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Zapiski" @@ -91,47 +92,53 @@ msgstr "Vrednost '{name}' ni v predpisanem formatu" msgid "Provided value does not match required pattern: " msgstr "Podana vrednost se ujema s predpisanim vzorcem: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Vnesite geslo" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Vnesite novo geslo" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Potrdite geslo" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Potrdite novo geslo" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Staro geslo" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "Ponovnite e-pošto" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Potrdite e-pošto" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "E-pošti se morata ujemati" -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +#, fuzzy +#| msgid "Registration is disabled." +msgid "MFA Registration is disabled." +msgstr "Registracija je onemogočena." + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Podana epošta ni veljavna." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Domena epošte ni podprta." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Registracija je onemogočena." @@ -417,7 +424,7 @@ msgstr "Nedovoljena izbira" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +437,7 @@ msgstr "Nedovoljena izbira" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Ime" @@ -446,7 +453,7 @@ msgstr "Ime" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +473,17 @@ msgstr "Ime" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Opis" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Opis (opcijsko)" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Pot" @@ -573,10 +580,10 @@ msgstr "" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -730,7 +737,7 @@ msgstr "Izgradnja mora biti najprej preklicana, nato je lahko izbrisana" #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" @@ -739,19 +746,19 @@ msgstr "" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" @@ -765,7 +772,7 @@ msgstr "" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" @@ -774,7 +781,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Nalog izgradnje" @@ -854,7 +861,7 @@ msgstr "Nalog izgradnje na katerega se ta izgradnaj nanaša" #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +873,7 @@ msgstr "Nalog izgradnje na katerega se ta izgradnaj nanaša" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +898,10 @@ msgstr "Nalog izgradnje na katerega se ta izgradnaj nanaša" #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Del" @@ -953,9 +960,9 @@ msgid "Build status code" msgstr "Koda statusa izgradnje" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Številka serije" @@ -1006,7 +1013,7 @@ msgstr "Uporabnik, ki je izdal nalog za izgradnjo" #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "Odgovoren" @@ -1020,14 +1027,14 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Zunanja povezava" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Zunanja povezava" @@ -1082,8 +1089,8 @@ msgstr "Izgradnja se ne ujema s nalogom izdelave" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" @@ -1146,9 +1153,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "Količina" @@ -1182,8 +1189,8 @@ msgid "Selected stock item does not match BOM line" msgstr "" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1201,8 @@ msgstr "" #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "Postavka zaloge" @@ -1260,7 +1267,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" @@ -1271,8 +1278,8 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1289,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" @@ -1335,15 +1342,15 @@ msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" @@ -1443,7 +1450,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "" @@ -1537,7 +1544,7 @@ msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1554,7 @@ msgstr "" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" @@ -1576,7 +1583,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" @@ -1601,7 +1608,7 @@ msgid "Allocated Stock" msgstr "" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1616,13 @@ msgstr "" msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1646,7 @@ msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "V teku" @@ -1685,7 +1692,7 @@ msgstr "" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1812,9 +1819,9 @@ msgstr "" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" @@ -1835,7 +1842,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" @@ -1893,8 +1900,8 @@ msgstr "" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1921,7 @@ msgstr "" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +1994,13 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +#, fuzzy +#| msgid "Build status code" +msgid "Build test statistics" +msgstr "Koda statusa izgradnje" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2010,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,6 +2050,11 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + #: common/api.py:692 msgid "Is Link" msgstr "" @@ -2470,7 +2488,7 @@ msgstr "" #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" @@ -2479,9 +2497,9 @@ msgid "Parts are templates by default" msgstr "" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" @@ -2490,7 +2508,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" @@ -2507,7 +2525,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" @@ -2522,7 +2540,7 @@ msgstr "" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" @@ -3615,7 +3633,7 @@ msgstr "" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Uporabnik" @@ -3812,7 +3830,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4261,7 @@ msgstr "" msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4279,7 @@ msgstr "" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" @@ -4297,9 +4315,9 @@ msgid "Parameter name" msgstr "" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" @@ -4321,12 +4339,12 @@ msgstr "" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" @@ -4354,7 +4372,7 @@ msgstr "" #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" @@ -4404,13 +4422,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "" @@ -4536,15 +4554,15 @@ msgstr "" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4594,7 +4612,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4607,7 +4625,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4621,7 +4639,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4662,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4734,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4751,12 +4769,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4817,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4852,7 +4870,7 @@ msgstr "" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4890,13 +4908,13 @@ msgstr "" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5224,7 +5242,7 @@ msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5257,7 +5275,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" @@ -5266,7 +5284,7 @@ msgstr "" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5459,7 +5477,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" @@ -5467,9 +5485,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" @@ -5757,7 +5775,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6069,7 +6087,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6250,7 +6268,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6283,7 +6301,7 @@ msgstr "" #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" @@ -6531,8 +6549,8 @@ msgstr "" msgid "Default location for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6568,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" @@ -6732,7 +6750,7 @@ msgid "Is this part active?" msgstr "" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6952,7 @@ msgstr "" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" @@ -7036,7 +7054,7 @@ msgstr "" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" @@ -7045,7 +7063,7 @@ msgid "Is this test enabled?" msgstr "" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" @@ -7106,7 +7124,7 @@ msgid "Parameter description" msgstr "" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" @@ -7254,7 +7272,7 @@ msgstr "" msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -7352,7 +7370,7 @@ msgstr "" msgid "Copy image from original part" msgstr "" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" @@ -7554,80 +7572,106 @@ msgstr "" msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +#, fuzzy +#| msgid "Select part to build" +msgid "Select the parent assembly" +msgstr "Izberite del za izgradnjo" + +#: part/serializers.py:1583 +#, fuzzy +#| msgid "Complete" +msgid "Component Name" +msgstr "Končano" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +#, fuzzy +#| msgid "Description" +msgid "Component Description" +msgstr "Opis" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" @@ -7785,7 +7829,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7797,101 +7841,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8134,8 +8182,8 @@ msgstr "" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8181,7 +8229,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8815,7 +8863,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -9228,6 +9276,8 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9244,11 +9294,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9274,8 +9324,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" @@ -9332,7 +9382,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9357,9 +9407,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9375,7 +9425,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9425,316 +9475,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9844,7 +9894,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "" @@ -9868,8 +9918,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "" @@ -9893,106 +9943,112 @@ msgstr "" msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:900 +#, fuzzy +#| msgid "Unsupported file type" +msgid "Unsupported statistic type: " +msgstr "Nepodprta vrsta datotek" + +#: stock/serializers.py:914 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:927 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "" @@ -10024,7 +10080,7 @@ msgstr "Dano v karanteno" msgid "Legacy stock tracking entry" msgstr "Vnos zaloge postavke" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Postavka zaloge ustvarjena" @@ -10080,7 +10136,7 @@ msgstr "Razdeljena od nadrejene postavke" msgid "Split child item" msgstr "Razdeljena podrejena postavka" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Združena zaloga postavk" @@ -10100,7 +10156,7 @@ msgstr "Nalog za izgradnjo končan" msgid "Build order output rejected" msgstr "Nalog za izgradnjo zavrnjen" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Porabljeno v nalogu za izgradnjo" @@ -10161,7 +10217,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10169,7 +10225,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10183,7 +10239,7 @@ msgstr "" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10192,17 +10248,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10211,12 +10267,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10342,7 +10398,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10451,7 +10507,7 @@ msgid "New Location" msgstr "" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" @@ -10839,7 +10895,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10849,7 +10905,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10954,7 +11010,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -11811,7 +11867,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12124,13 +12180,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12391,7 +12447,7 @@ msgstr "" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" @@ -12399,7 +12455,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" @@ -12468,7 +12524,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" @@ -12722,45 +12778,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -13000,8 +13056,8 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" @@ -13126,7 +13182,7 @@ msgid "Copy Bill of Materials" msgstr "" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" @@ -13256,7 +13312,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" @@ -13268,7 +13324,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" @@ -13550,7 +13606,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13943,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13945,513 +14001,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14486,12 +14550,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14533,7 +14597,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14634,56 +14698,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14956,6 +15028,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" @@ -15059,4 +15139,3 @@ msgstr "" #: users/models.py:408 msgid "Permission to delete items" msgstr "" - diff --git a/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po index 166668fdc7..4728094580 100644 --- a/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:37\n" "Last-Translator: \n" "Language-Team: Serbian (Latin)\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "Unesite datum" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "Unesite datum" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "Unesite datum" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Napomene" @@ -91,47 +92,53 @@ msgstr "Vrednost '{name}' se ne pojavljuje u formatu obrasca" msgid "Provided value does not match required pattern: " msgstr "Navedena vrednost ne odgovara traženom obrascu: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Unesite lozinku" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Unesite novu lozinku" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Potvrdite lozinku" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Potvrdite novu lozinku" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Stara lozinka" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "E-pošta (ponovo)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Potvrda adrese e-pošte" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Svaki put morate upisati istu e-poštu." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +#, fuzzy +#| msgid "Registration is disabled." +msgid "MFA Registration is disabled." +msgstr "Registracija je onemogućena." + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Navedena primarna adresa e-pošte nije važeća." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Navedeni domen adrese e-pošte nije prihvaćen." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Registracija je onemogućena." @@ -417,7 +424,7 @@ msgstr "Nevažeći izvor" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +437,7 @@ msgstr "Nevažeći izvor" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Ime" @@ -446,7 +453,7 @@ msgstr "Ime" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +473,17 @@ msgstr "Ime" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Opis" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Opis (Opciono)" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Putanja" @@ -573,10 +580,10 @@ msgstr "" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -730,7 +737,7 @@ msgstr "" #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" @@ -739,19 +746,19 @@ msgstr "" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" @@ -765,7 +772,7 @@ msgstr "" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" @@ -774,7 +781,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Nalog za izradu" @@ -854,7 +861,7 @@ msgstr "" #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +873,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +898,10 @@ msgstr "" #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "" @@ -953,9 +960,9 @@ msgid "Build status code" msgstr "" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" @@ -1006,7 +1013,7 @@ msgstr "" #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" @@ -1020,14 +1027,14 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Link za eksterni URL" @@ -1082,8 +1089,8 @@ msgstr "" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" @@ -1146,9 +1153,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" @@ -1182,8 +1189,8 @@ msgid "Selected stock item does not match BOM line" msgstr "" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1201,8 @@ msgstr "" #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" @@ -1260,7 +1267,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" @@ -1271,8 +1278,8 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1289,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" @@ -1335,15 +1342,15 @@ msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" @@ -1443,7 +1450,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "" @@ -1537,7 +1544,7 @@ msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1554,7 @@ msgstr "" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" @@ -1576,7 +1583,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" @@ -1601,7 +1608,7 @@ msgid "Allocated Stock" msgstr "" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1616,13 @@ msgstr "" msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1646,7 @@ msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "Na čekanju" @@ -1685,7 +1692,7 @@ msgstr "" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1812,9 +1819,9 @@ msgstr "" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" @@ -1835,7 +1842,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" @@ -1893,8 +1900,8 @@ msgstr "" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1921,7 @@ msgstr "" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +1994,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2008,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,6 +2048,11 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + #: common/api.py:692 msgid "Is Link" msgstr "" @@ -2470,7 +2486,7 @@ msgstr "" #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" @@ -2479,9 +2495,9 @@ msgid "Parts are templates by default" msgstr "" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" @@ -2490,7 +2506,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" @@ -2507,7 +2523,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" @@ -2522,7 +2538,7 @@ msgstr "" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" @@ -3615,7 +3631,7 @@ msgstr "" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Korisnik" @@ -3812,7 +3828,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4259,7 @@ msgstr "" msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4277,7 @@ msgstr "" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" @@ -4297,9 +4313,9 @@ msgid "Parameter name" msgstr "" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" @@ -4321,12 +4337,12 @@ msgstr "" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" @@ -4354,7 +4370,7 @@ msgstr "" #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" @@ -4404,13 +4420,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "" @@ -4536,15 +4552,15 @@ msgstr "" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4594,7 +4610,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4607,7 +4623,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4621,7 +4637,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4660,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4732,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4751,12 +4767,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4815,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4852,7 +4868,7 @@ msgstr "" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4890,13 +4906,13 @@ msgstr "" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5224,7 +5240,7 @@ msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5257,7 +5273,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" @@ -5266,7 +5282,7 @@ msgstr "" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5459,7 +5475,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" @@ -5467,9 +5483,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" @@ -5757,7 +5773,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6069,7 +6085,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6250,7 +6266,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6283,7 +6299,7 @@ msgstr "" #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" @@ -6531,8 +6547,8 @@ msgstr "" msgid "Default location for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6566,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" @@ -6732,7 +6748,7 @@ msgid "Is this part active?" msgstr "" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6950,7 @@ msgstr "" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" @@ -7036,7 +7052,7 @@ msgstr "" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" @@ -7045,7 +7061,7 @@ msgid "Is this test enabled?" msgstr "" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" @@ -7106,7 +7122,7 @@ msgid "Parameter description" msgstr "" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" @@ -7254,7 +7270,7 @@ msgstr "" msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -7352,7 +7368,7 @@ msgstr "" msgid "Copy image from original part" msgstr "" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" @@ -7554,80 +7570,104 @@ msgstr "" msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +#, fuzzy +#| msgid "Complete" +msgid "Component Name" +msgstr "Gotovo" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +#, fuzzy +#| msgid "Description" +msgid "Component Description" +msgstr "Opis" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" @@ -7785,7 +7825,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7797,101 +7837,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8134,8 +8178,8 @@ msgstr "" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8181,7 +8225,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8815,7 +8859,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -9228,6 +9272,8 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9244,11 +9290,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9274,8 +9320,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" @@ -9332,7 +9378,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9357,9 +9403,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9375,7 +9421,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9425,316 +9471,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9844,7 +9890,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "" @@ -9868,8 +9914,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "" @@ -9893,106 +9939,112 @@ msgstr "" msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:900 +#, fuzzy +#| msgid "Unsupported file type" +msgid "Unsupported statistic type: " +msgstr "Nije podržan tip datoteke" + +#: stock/serializers.py:914 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:927 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "" @@ -10024,7 +10076,7 @@ msgstr "U karantinu" msgid "Legacy stock tracking entry" msgstr "Nasleđeni unos za praćenje zaliha" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Stavka na zalihi stvorena" @@ -10080,7 +10132,7 @@ msgstr "Odvoj od nadređene stavke" msgid "Split child item" msgstr "Podeli podređenu stavku" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Spojene stavke zaliha" @@ -10100,7 +10152,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10161,7 +10213,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10169,7 +10221,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10183,7 +10235,7 @@ msgstr "" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10192,17 +10244,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10211,12 +10263,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10342,7 +10394,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10451,7 +10503,7 @@ msgid "New Location" msgstr "" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" @@ -10839,7 +10891,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10849,7 +10901,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10954,7 +11006,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -11811,7 +11863,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12124,13 +12176,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12391,7 +12443,7 @@ msgstr "" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" @@ -12399,7 +12451,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" @@ -12468,7 +12520,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" @@ -12722,45 +12774,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -13000,8 +13052,8 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" @@ -13126,7 +13178,7 @@ msgid "Copy Bill of Materials" msgstr "" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" @@ -13256,7 +13308,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" @@ -13268,7 +13320,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" @@ -13550,7 +13602,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13939,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13945,513 +13997,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14486,12 +14546,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14533,7 +14593,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14634,56 +14694,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14956,6 +15024,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" @@ -15059,4 +15135,3 @@ msgstr "" #: users/models.py:408 msgid "Permission to delete items" msgstr "" - diff --git a/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po index b5d34855a4..8266ed9c1a 100644 --- a/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Swedish\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "Ange datum" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "Ange datum" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "Ange datum" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Anteckningar" @@ -91,47 +92,53 @@ msgstr "Värdet '{name}' visas inte i mönsterformat" msgid "Provided value does not match required pattern: " msgstr "Det angivna värdet matchar inte det obligatoriska mönstret: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Ange lösenord" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Ange nytt lösenord" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Bekräfta lösenord" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Bekräfta nytt lösenord" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Tidigare lösenord" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "E-post (igen)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Bekräfta e-postadress" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Du måste ange samma e-post varje gång." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +#, fuzzy +#| msgid "Registration is disabled." +msgid "MFA Registration is disabled." +msgstr "Registrering är stängd." + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Den angivna primära e-postadressen är inte giltig." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Den angivna e-postdomänen är inte godkänd." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Registrering är stängd." @@ -417,7 +424,7 @@ msgstr "Ogiltigt val" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +437,7 @@ msgstr "Ogiltigt val" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Namn" @@ -446,7 +453,7 @@ msgstr "Namn" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +473,17 @@ msgstr "Namn" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Beskrivning" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Beskrivning (valfritt)" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Sökväg" @@ -573,10 +580,10 @@ msgstr "" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -730,7 +737,7 @@ msgstr "Byggnationen måste avbrytas innan den kan tas bort" #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" @@ -739,19 +746,19 @@ msgstr "" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" @@ -765,7 +772,7 @@ msgstr "" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" @@ -774,7 +781,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Byggorder" @@ -854,7 +861,7 @@ msgstr "Byggorder till vilken detta bygge är tilldelad" #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +873,7 @@ msgstr "Byggorder till vilken detta bygge är tilldelad" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +898,10 @@ msgstr "Byggorder till vilken detta bygge är tilldelad" #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Del" @@ -953,9 +960,9 @@ msgid "Build status code" msgstr "Bygg statuskod" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Batchkod" @@ -1006,7 +1013,7 @@ msgstr "Användare som utfärdade denna byggorder" #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "Ansvarig" @@ -1020,14 +1027,14 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Extern länk" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Länk till extern URL" @@ -1082,8 +1089,8 @@ msgstr "Byggutgång matchar inte bygg order" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" @@ -1146,9 +1153,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "Antal" @@ -1182,8 +1189,8 @@ msgid "Selected stock item does not match BOM line" msgstr "" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1201,8 @@ msgstr "" #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "Artikel i lager" @@ -1260,7 +1267,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Serienummer" @@ -1271,8 +1278,8 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1289,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "Plats" @@ -1335,15 +1342,15 @@ msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "Status" @@ -1443,7 +1450,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "" @@ -1537,7 +1544,7 @@ msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1554,7 @@ msgstr "" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "Serienummer" @@ -1576,7 +1583,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" @@ -1601,7 +1608,7 @@ msgid "Allocated Stock" msgstr "" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1616,13 @@ msgstr "" msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1646,7 @@ msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "Väntar" @@ -1685,7 +1692,7 @@ msgstr "" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1812,9 +1819,9 @@ msgstr "" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "Försenad" @@ -1835,7 +1842,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "Försäljningsorder" @@ -1893,8 +1900,8 @@ msgstr "" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1921,7 @@ msgstr "" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "Slutförd" @@ -1987,7 +1994,13 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +#, fuzzy +#| msgid "Build status code" +msgid "Build test statistics" +msgstr "Bygg statuskod" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2010,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Bilagor" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "Bygganteckningar" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "Ny byggorder" @@ -2037,6 +2050,11 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + #: common/api.py:692 msgid "Is Link" msgstr "" @@ -2470,7 +2488,7 @@ msgstr "" #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "Mall" @@ -2479,9 +2497,9 @@ msgid "Parts are templates by default" msgstr "" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" @@ -2490,7 +2508,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" @@ -2507,7 +2525,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" @@ -2522,7 +2540,7 @@ msgstr "" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "Virtuell" @@ -3615,7 +3633,7 @@ msgstr "" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Användare" @@ -3812,7 +3830,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4261,7 @@ msgstr "" msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4279,7 @@ msgstr "" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "Tillverkare" @@ -4297,9 +4315,9 @@ msgid "Parameter name" msgstr "" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" @@ -4321,12 +4339,12 @@ msgstr "" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" @@ -4354,7 +4372,7 @@ msgstr "" #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "Leverantör" @@ -4404,13 +4422,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "" @@ -4536,15 +4554,15 @@ msgstr "Radera bild" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "Kund" @@ -4594,7 +4612,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4607,7 +4625,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4621,7 +4639,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4662,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4734,7 @@ msgstr "Tillverkare" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4751,12 +4769,12 @@ msgstr "Leverantörer" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Parametrar" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4817,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4852,7 +4870,7 @@ msgstr "" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4890,13 +4908,13 @@ msgstr "" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5224,7 +5242,7 @@ msgid "Order Status" msgstr "Orderstatus" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5257,7 +5275,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" @@ -5266,7 +5284,7 @@ msgstr "" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5459,7 +5477,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" @@ -5467,9 +5485,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" @@ -5757,7 +5775,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6069,7 +6087,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6250,7 +6268,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6283,7 +6301,7 @@ msgstr "" #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" @@ -6531,8 +6549,8 @@ msgstr "" msgid "Default location for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6568,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Ikon" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "Ikon (valfritt)" @@ -6732,7 +6750,7 @@ msgid "Is this part active?" msgstr "" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6952,7 @@ msgstr "" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "Datum" @@ -7036,7 +7054,7 @@ msgstr "" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" @@ -7045,7 +7063,7 @@ msgid "Is this test enabled?" msgstr "" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" @@ -7106,7 +7124,7 @@ msgid "Parameter description" msgstr "" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" @@ -7254,7 +7272,7 @@ msgstr "" msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -7352,7 +7370,7 @@ msgstr "Kopiera bild" msgid "Copy image from original part" msgstr "" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" @@ -7554,80 +7572,108 @@ msgstr "" msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +#, fuzzy +#| msgid "Select part to build" +msgid "Select the parent assembly" +msgstr "Välj del att bygga" + +#: part/serializers.py:1583 +#, fuzzy +#| msgid "Company Name" +msgid "Component Name" +msgstr "Företagsnamn" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +#, fuzzy +#| msgid "Company description" +msgid "Component Description" +msgstr "Företagsbeskrivning" + +#: part/serializers.py:1595 +#, fuzzy +#| msgid "Select theme" +msgid "Select the component part" +msgstr "Välj tema" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" @@ -7785,7 +7831,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7797,101 +7843,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8134,8 +8184,8 @@ msgstr "" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8181,7 +8231,7 @@ msgstr "Redigera" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "Senast uppdaterad" @@ -8815,7 +8865,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -9228,6 +9278,8 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9244,11 +9296,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9274,8 +9326,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" @@ -9332,7 +9384,7 @@ msgstr "Leverantörsnamn" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9357,9 +9409,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9375,7 +9427,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9425,316 +9477,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9844,7 +9896,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "" @@ -9868,8 +9920,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "" @@ -9893,106 +9945,112 @@ msgstr "" msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:900 +#, fuzzy +#| msgid "Unsupported file type" +msgid "Unsupported statistic type: " +msgstr "Filtypen stöds inte" + +#: stock/serializers.py:914 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:927 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "" @@ -10024,7 +10082,7 @@ msgstr "I karantän" msgid "Legacy stock tracking entry" msgstr "Spårningspost för äldre lager" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Lagerpost skapad" @@ -10080,7 +10138,7 @@ msgstr "Dela från överordnat objekt" msgid "Split child item" msgstr "Dela underordnat objekt" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Sammanfogade lagerposter" @@ -10100,7 +10158,7 @@ msgstr "Bygg orderutgång slutförd" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Konsumeras av byggorder" @@ -10161,7 +10219,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10169,7 +10227,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10183,7 +10241,7 @@ msgstr "" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10192,17 +10250,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10211,12 +10269,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10342,7 +10400,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10451,7 +10509,7 @@ msgid "New Location" msgstr "" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" @@ -10839,7 +10897,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10849,7 +10907,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10954,7 +11012,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "Radera" @@ -11811,7 +11869,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12124,13 +12182,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12391,7 +12449,7 @@ msgstr "" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" @@ -12399,7 +12457,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" @@ -12468,7 +12526,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" @@ -12722,45 +12780,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "Skriv ut etiketter" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "Lägg till nytt filter" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "Rensa alla filter" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "Skapa filter" @@ -13000,8 +13058,8 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" @@ -13126,7 +13184,7 @@ msgid "Copy Bill of Materials" msgstr "" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" @@ -13256,7 +13314,7 @@ msgid "No category" msgstr "Ingen kategori" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "Visa som lista" @@ -13268,7 +13326,7 @@ msgstr "" msgid "No subcategories found" msgstr "Inga underkategorier hittades" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" @@ -13550,7 +13608,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13945,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13945,513 +14003,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "Ange serienummer" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "Flytta" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "Lägg till" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "Inga ändringar" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "Har projektkod" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14486,12 +14552,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14533,7 +14599,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14634,56 +14700,68 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +#, fuzzy +#| msgid "Internal Prices" +msgid "Interval start" +msgstr "Interna priser" + +#: templates/js/translated/table_filters.js:475 +#, fuzzy +#| msgid "Internal Prices" +msgid "Interval end" +msgstr "Interna priser" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14956,6 +15034,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "Ja" @@ -15059,4 +15145,3 @@ msgstr "" #: users/models.py:408 msgid "Permission to delete items" msgstr "" - diff --git a/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po index fcba9a80f5..52b8aaed97 100644 --- a/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:37\n" "Last-Translator: \n" "Language-Team: Thai\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "ป้อนวันที่" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "ป้อนวันที่" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "ป้อนวันที่" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "หมายเหตุ" @@ -91,47 +92,51 @@ msgstr "" msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "ป้อนรหัสผ่าน" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "ป้อนรหัสผ่านใหม่" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "ยืนยันรหัสผ่าน" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "ยืนยันรหัสผ่านใหม่" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "รหัสผ่านเดิม" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "อีเมล (อีกครั้ง)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "การยืนยันอีเมล" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "" -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "" @@ -417,7 +422,7 @@ msgstr "" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +435,7 @@ msgstr "" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "ชื่อ" @@ -446,7 +451,7 @@ msgstr "ชื่อ" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +471,17 @@ msgstr "ชื่อ" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "คำอธิบาย" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" @@ -573,10 +578,10 @@ msgstr "" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -730,7 +735,7 @@ msgstr "" #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" @@ -739,19 +744,19 @@ msgstr "" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" @@ -765,7 +770,7 @@ msgstr "" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" @@ -774,7 +779,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" @@ -854,7 +859,7 @@ msgstr "" #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +871,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +896,10 @@ msgstr "" #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "" @@ -953,9 +958,9 @@ msgid "Build status code" msgstr "" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" @@ -1006,7 +1011,7 @@ msgstr "" #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" @@ -1020,14 +1025,14 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "" @@ -1082,8 +1087,8 @@ msgstr "" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "จำนวนต้องมีค่ามากกว่า 0" @@ -1146,9 +1151,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" @@ -1182,8 +1187,8 @@ msgid "Selected stock item does not match BOM line" msgstr "" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1199,8 @@ msgstr "" #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" @@ -1260,7 +1265,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" @@ -1271,8 +1276,8 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1287,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "สถานที่" @@ -1335,15 +1340,15 @@ msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "สถานะ" @@ -1443,7 +1448,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "" @@ -1537,7 +1542,7 @@ msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1552,7 @@ msgstr "" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" @@ -1576,7 +1581,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" @@ -1601,7 +1606,7 @@ msgid "Allocated Stock" msgstr "" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1614,13 @@ msgstr "" msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1644,7 @@ msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "อยู่ระหว่างดำเนินการ" @@ -1685,7 +1690,7 @@ msgstr "" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1812,9 +1817,9 @@ msgstr "" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" @@ -1835,7 +1840,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" @@ -1893,8 +1898,8 @@ msgstr "" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1919,7 @@ msgstr "" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "สำเร็จแล้ว" @@ -1987,7 +1992,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2006,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,6 +2046,11 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + #: common/api.py:692 msgid "Is Link" msgstr "" @@ -2470,7 +2484,7 @@ msgstr "" #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" @@ -2479,9 +2493,9 @@ msgid "Parts are templates by default" msgstr "" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" @@ -2490,7 +2504,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" @@ -2507,7 +2521,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" @@ -2522,7 +2536,7 @@ msgstr "" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" @@ -3615,7 +3629,7 @@ msgstr "" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "ผู้ใช้งาน" @@ -3812,7 +3826,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4257,7 @@ msgstr "" msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4275,7 @@ msgstr "" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" @@ -4297,9 +4311,9 @@ msgid "Parameter name" msgstr "" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" @@ -4321,12 +4335,12 @@ msgstr "" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" @@ -4354,7 +4368,7 @@ msgstr "" #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" @@ -4404,13 +4418,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "" @@ -4536,15 +4550,15 @@ msgstr "" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4594,7 +4608,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4607,7 +4621,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4621,7 +4635,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4658,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4730,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4751,12 +4765,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4813,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4852,7 +4866,7 @@ msgstr "" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4890,13 +4904,13 @@ msgstr "" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5224,7 +5238,7 @@ msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5257,7 +5271,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" @@ -5266,7 +5280,7 @@ msgstr "" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5459,7 +5473,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" @@ -5467,9 +5481,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" @@ -5757,7 +5771,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6069,7 +6083,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6250,7 +6264,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6283,7 +6297,7 @@ msgstr "" #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" @@ -6531,8 +6545,8 @@ msgstr "" msgid "Default location for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6564,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" @@ -6732,7 +6746,7 @@ msgid "Is this part active?" msgstr "" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6948,7 @@ msgstr "" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" @@ -7036,7 +7050,7 @@ msgstr "" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" @@ -7045,7 +7059,7 @@ msgid "Is this test enabled?" msgstr "" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" @@ -7106,7 +7120,7 @@ msgid "Parameter description" msgstr "" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" @@ -7254,7 +7268,7 @@ msgstr "" msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -7352,7 +7366,7 @@ msgstr "" msgid "Copy image from original part" msgstr "" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" @@ -7554,80 +7568,104 @@ msgstr "" msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +#, fuzzy +#| msgid "Complete" +msgid "Component Name" +msgstr "สำเร็จแล้ว" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +#, fuzzy +#| msgid "Description" +msgid "Component Description" +msgstr "คำอธิบาย" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" @@ -7785,7 +7823,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7797,101 +7835,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8134,8 +8176,8 @@ msgstr "" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8181,7 +8223,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8815,7 +8857,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -9228,6 +9270,8 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9244,11 +9288,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9274,8 +9318,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" @@ -9332,7 +9376,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9357,9 +9401,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9375,7 +9419,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9425,316 +9469,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9844,7 +9888,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "" @@ -9868,8 +9912,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "" @@ -9893,106 +9937,110 @@ msgstr "" msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 -msgid "Select part to convert stock item into" -msgstr "" - -#: stock/serializers.py:897 -msgid "Selected part is not a valid option for conversion" +#: stock/serializers.py:900 +msgid "Unsupported statistic type: " msgstr "" #: stock/serializers.py:914 +msgid "Select part to convert stock item into" +msgstr "" + +#: stock/serializers.py:927 +msgid "Selected part is not a valid option for conversion" +msgstr "" + +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "" @@ -10024,7 +10072,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10080,7 +10128,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10100,7 +10148,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10161,7 +10209,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10169,7 +10217,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10183,7 +10231,7 @@ msgstr "" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10192,17 +10240,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10211,12 +10259,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10342,7 +10390,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10451,7 +10499,7 @@ msgid "New Location" msgstr "" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" @@ -10839,7 +10887,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10849,7 +10897,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10954,7 +11002,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -11811,7 +11859,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12124,13 +12172,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12391,7 +12439,7 @@ msgstr "" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" @@ -12399,7 +12447,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" @@ -12468,7 +12516,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" @@ -12722,45 +12770,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -13000,8 +13048,8 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" @@ -13126,7 +13174,7 @@ msgid "Copy Bill of Materials" msgstr "" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" @@ -13256,7 +13304,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" @@ -13268,7 +13316,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" @@ -13550,7 +13598,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13935,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13945,513 +13993,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14486,12 +14542,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14533,7 +14589,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14634,56 +14690,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14956,6 +15020,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" @@ -15059,4 +15131,3 @@ msgstr "" #: users/models.py:408 msgid "Permission to delete items" msgstr "" - diff --git a/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po index 47998c7fca..1e8387741a 100644 --- a/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Turkish\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "Tarih giriniz" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "Tarih giriniz" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "Tarih giriniz" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Notlar" @@ -91,47 +92,53 @@ msgstr "'{name}' değeri desen formatında yer almıyor" msgid "Provided value does not match required pattern: " msgstr "Sağlanan değer gerekli kalıpla eşleşmiyor: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Şifrenizi girin" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Lütfen Yeni Parolayı Girin" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Parolayı doğrulayın" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Yeni parolayı doğrulayın" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Eski parola" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "E-posta (tekrar)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "E-posta adresi onayı" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Her seferind eaynı e-posta adresini yazmalısınız." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +#, fuzzy +#| msgid "Registration is disabled." +msgid "MFA Registration is disabled." +msgstr "Kayıt devre dışı." + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Sağlanan e-posta adresi geçerli değil." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Sağlanan e-posta alanı onaylanmadı." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Kayıt devre dışı." @@ -417,7 +424,7 @@ msgstr "Geçersiz seçim" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +437,7 @@ msgstr "Geçersiz seçim" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Adı" @@ -446,7 +453,7 @@ msgstr "Adı" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +473,17 @@ msgstr "Adı" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Açıklama" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Açıklama (isteğe bağlı)" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Yol" @@ -573,10 +580,10 @@ msgstr "" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "Aktif" @@ -730,7 +737,7 @@ msgstr "" #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" @@ -739,19 +746,19 @@ msgstr "" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" @@ -765,7 +772,7 @@ msgstr "" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "Mevcut" @@ -774,7 +781,7 @@ msgstr "Mevcut" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Yapım İşi Emri" @@ -854,7 +861,7 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri" #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +873,7 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +898,10 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri" #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Parça" @@ -953,9 +960,9 @@ msgid "Build status code" msgstr "Yapım işi durum kodu" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Sıra numarası" @@ -1006,7 +1013,7 @@ msgstr "Bu yapım işi emrini veren kullanıcı" #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "Sorumlu" @@ -1020,14 +1027,14 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Harici Bağlantı" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Harici URL'ye bağlantı" @@ -1082,8 +1089,8 @@ msgstr "Yapım işi çıktısı, yapım işi emri ile eşleşmiyor" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" @@ -1146,9 +1153,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "Miktar" @@ -1182,8 +1189,8 @@ msgid "Selected stock item does not match BOM line" msgstr "" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1201,8 @@ msgstr "" #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "Stok Kalemi" @@ -1260,7 +1267,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Seri Numaraları" @@ -1271,8 +1278,8 @@ msgstr "Yapım işi çıktısı için seri numaraları girin" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1289,9 @@ msgstr "Yapım işi çıktısı için seri numaraları girin" #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "Konum" @@ -1335,15 +1342,15 @@ msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "Durum" @@ -1443,7 +1450,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "" @@ -1537,7 +1544,7 @@ msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1554,7 @@ msgstr "" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "Seri Numara" @@ -1576,7 +1583,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "Takip Edilebilir" @@ -1601,7 +1608,7 @@ msgid "Allocated Stock" msgstr "" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1616,13 @@ msgstr "" msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1646,7 @@ msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "Bekliyor" @@ -1685,7 +1692,7 @@ msgstr "" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Barkod işlemleri" @@ -1812,9 +1819,9 @@ msgstr "Bu yapım işinin %(target)s tarihinde süresi doluyor" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "Vadesi geçmiş" @@ -1835,7 +1842,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "Sipariş Emri" @@ -1893,8 +1900,8 @@ msgstr "" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1921,7 @@ msgstr "Hedef tarih ayarlanmadı" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "Tamamlandı" @@ -1987,7 +1994,13 @@ msgstr "" msgid "Completed Build Outputs" msgstr "Tamamlanmış Yapım İşi Çıktıları" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +#, fuzzy +#| msgid "Build Details" +msgid "Build test statistics" +msgstr "Yapım İşi Detayları" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2010,25 @@ msgstr "Tamamlanmış Yapım İşi Çıktıları" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Ekler" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "Yapım İşi Notları" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "Yeni Yapım İşi Emri" @@ -2037,6 +2050,11 @@ msgstr "" msgid "Incomplete Outputs" msgstr "Tamamlanmamış Çıktılar" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + #: common/api.py:692 msgid "Is Link" msgstr "" @@ -2470,7 +2488,7 @@ msgstr "Parça oluştururken kategori parametre şablonlarını kopyala" #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "Şablon" @@ -2479,9 +2497,9 @@ msgid "Parts are templates by default" msgstr "Parçaları varsayılan olan şablondur" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "Montaj" @@ -2490,7 +2508,7 @@ msgid "Parts can be assembled from other components by default" msgstr "Parçalar varsayılan olarak başka bileşenlerden monte edilebilir" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "Bileşen" @@ -2507,7 +2525,7 @@ msgid "Parts are purchaseable by default" msgstr "Parçalar varsayılan olarak satın alınabilir" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "Satılabilir" @@ -2522,7 +2540,7 @@ msgstr "Parçalar varsayılan olarak takip edilebilir" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "Sanal" @@ -3615,7 +3633,7 @@ msgstr "" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Kullanıcı" @@ -3812,7 +3830,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4261,7 @@ msgstr "" msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4279,7 @@ msgstr "Parça seçin" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "Üretici" @@ -4297,9 +4315,9 @@ msgid "Parameter name" msgstr "Parametre adı" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Değer" @@ -4321,12 +4339,12 @@ msgstr "" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "Tedarikçi Parçası" @@ -4354,7 +4372,7 @@ msgstr "" #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "Tedarikçi" @@ -4404,13 +4422,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "Paketleme" @@ -4536,15 +4554,15 @@ msgstr "" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "Müşteri" @@ -4594,7 +4612,7 @@ msgstr "Yeni tedarikçi parçası oluştur" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "Yeni Tedarikçi Parçası" @@ -4607,7 +4625,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4621,7 +4639,7 @@ msgstr "Tedarikçi Stoku" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4662,7 @@ msgstr "Yeni Satın Alma Emri" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4734,7 @@ msgstr "Üreticiler" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "Parça siparişi" @@ -4751,12 +4769,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4817,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4852,7 +4870,7 @@ msgstr "" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4890,13 +4908,13 @@ msgstr "" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "Stok Kalemleri" @@ -5224,7 +5242,7 @@ msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5257,7 +5275,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" @@ -5266,7 +5284,7 @@ msgstr "" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5459,7 +5477,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" @@ -5467,9 +5485,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" @@ -5757,7 +5775,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6069,7 +6087,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6250,7 +6268,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "İşlemler" @@ -6283,7 +6301,7 @@ msgstr "" #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "DPN" @@ -6531,8 +6549,8 @@ msgstr "Parça Kategorileri" msgid "Default location for parts in this category" msgstr "Bu kategori içindeki parçalar için varsayılan konum" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6568,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" @@ -6732,7 +6750,7 @@ msgid "Is this part active?" msgstr "Bu parça aktif mi?" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6952,7 @@ msgstr "" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" @@ -7036,7 +7054,7 @@ msgstr "" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "Etkin" @@ -7045,7 +7063,7 @@ msgid "Is this test enabled?" msgstr "" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "Gerekli" @@ -7106,7 +7124,7 @@ msgid "Parameter description" msgstr "" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" @@ -7254,7 +7272,7 @@ msgstr "Bu malzeme listesi, çeşit parçalar listesini kalıtsalıdır" msgid "Stock items for variant parts can be used for this BOM item" msgstr "Çeşit parçaların stok kalemleri bu malzeme listesinde kullanılabilir" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -7352,7 +7370,7 @@ msgstr "" msgid "Copy image from original part" msgstr "" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" @@ -7554,80 +7572,110 @@ msgstr "" msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +#, fuzzy +#| msgid "Select part to build" +msgid "Select the parent assembly" +msgstr "Yapım işi için parça seçin" + +#: part/serializers.py:1583 +#, fuzzy +#| msgid "Component" +msgid "Component Name" +msgstr "Bileşen" + +#: part/serializers.py:1586 +#, fuzzy +#| msgid "Component" +msgid "Component IPN" +msgstr "Bileşen" + +#: part/serializers.py:1589 +#, fuzzy +#| msgid "Test Description" +msgid "Component Description" +msgstr "Test Açıklaması" + +#: part/serializers.py:1595 +#, fuzzy +#| msgid "Select part" +msgid "Select the component part" +msgstr "Parça seçin" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" @@ -7785,7 +7833,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7797,101 +7845,107 @@ msgstr "Parça Test Şablonları" msgid "Add Test Template" msgstr "Test Şablonu Ekle" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +#, fuzzy +#| msgid "Part Test Templates" +msgid "Part Test Statistics" +msgstr "Parça Test Şablonları" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "Parça Çeşitleri" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "Yeni çeşit oluştur" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "Yeni Çeşit" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "Parça Tedarikçileri" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8134,8 +8188,8 @@ msgstr "" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "Stok" @@ -8181,7 +8235,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8815,7 +8869,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -9228,6 +9282,8 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9244,11 +9300,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9274,8 +9330,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "Seri No" @@ -9332,7 +9388,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9357,9 +9413,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9375,7 +9431,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9425,316 +9481,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Stok Konumu" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Stok Konumları" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "Seri numarası olan ögenin miktarı bir olmalı" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Miktar birden büyük ise seri numarası ayarlanamaz" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "Üst Stok Kalemi" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "Bu stok kalemi için tedarikçi parçası seçin" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "Bu öge için seri numarası" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "Seri numaraları tam sayı listesi olmalı" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "Miktar seri numaları ile eşleşmiyor" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "Seri numaraları zaten mevcut" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "Stok kalemi stokta olmadığı için taşınamaz" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9844,7 +9900,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "" @@ -9868,8 +9924,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "İşlem notu ekle (isteğe bağlı)" @@ -9893,106 +9949,112 @@ msgstr "" msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:900 +#, fuzzy +#| msgid "Unsupported file type" +msgid "Unsupported statistic type: " +msgstr "Desteklenmeyen dsoya tipi" + +#: stock/serializers.py:914 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:927 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Alt konumlar" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "" @@ -10024,7 +10086,7 @@ msgstr "Karantinaya alındı" msgid "Legacy stock tracking entry" msgstr "Eski stok izleme girişi" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Stok kalemi oluşturuldu" @@ -10080,7 +10142,7 @@ msgstr "Üst ögeden ayır" msgid "Split child item" msgstr "Alt ögeyi ayır" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Stok parçalarını birleştir" @@ -10100,7 +10162,7 @@ msgstr "Yapım emri çıktısı tamamlandı" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10161,7 +10223,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10169,7 +10231,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10183,7 +10245,7 @@ msgstr "Konuma Tara" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "Yazdırma işlemleri" @@ -10192,17 +10254,17 @@ msgid "Stock adjustment actions" msgstr "Stok ayarlama işlemleri" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10211,12 +10273,12 @@ msgid "Serialize stock" msgstr "Stoku seri numarala" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10342,7 +10404,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10451,7 +10513,7 @@ msgid "New Location" msgstr "Yeni Konum" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" @@ -10839,7 +10901,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10849,7 +10911,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10954,7 +11016,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -11811,7 +11873,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12124,13 +12186,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12391,7 +12453,7 @@ msgstr "" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" @@ -12399,7 +12461,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" @@ -12468,7 +12530,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" @@ -12722,45 +12784,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -13000,8 +13062,8 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" @@ -13126,7 +13188,7 @@ msgid "Copy Bill of Materials" msgstr "" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" @@ -13256,7 +13318,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" @@ -13268,7 +13330,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" @@ -13550,7 +13612,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13949,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13945,513 +14007,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14486,12 +14556,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14533,7 +14603,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14634,56 +14704,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14956,6 +15034,14 @@ msgstr "E-posta Ayarları" msgid "Email settings not configured" msgstr "E-posta ayarları yapılandırılmadı" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "Evet" @@ -15059,4 +15145,3 @@ msgstr "Parçaları düzenleme izni" #: users/models.py:408 msgid "Permission to delete items" msgstr "Parçaları silme izni" - diff --git a/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po index 3be85f9c74..0974be3af4 100644 --- a/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "Введіть дату" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "Введіть дату" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "Введіть дату" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Нотатки" @@ -91,47 +92,53 @@ msgstr "" msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Введіть пароль" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Введіть новий пароль" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Підтвердити пароль" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Підтвердити новий пароль" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Старий пароль" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "Email (ще раз)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Підтвердження адреси електронної пошти" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Ви повинні використовувати щоразу однаковий email." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +#, fuzzy +#| msgid "Registration is disabled." +msgid "MFA Registration is disabled." +msgstr "Реєстрацію вимкнено." + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Вказана основна адреса електронної пошти недійсна." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Наданий домен електронної пошти не затверджено." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Реєстрацію вимкнено." @@ -417,7 +424,7 @@ msgstr "" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +437,7 @@ msgstr "" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "" @@ -446,7 +453,7 @@ msgstr "" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +473,17 @@ msgstr "" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" @@ -573,10 +580,10 @@ msgstr "" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -730,7 +737,7 @@ msgstr "" #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" @@ -739,19 +746,19 @@ msgstr "" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" @@ -765,7 +772,7 @@ msgstr "" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" @@ -774,7 +781,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" @@ -854,7 +861,7 @@ msgstr "" #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +873,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +898,10 @@ msgstr "" #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "" @@ -953,9 +960,9 @@ msgid "Build status code" msgstr "" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" @@ -1006,7 +1013,7 @@ msgstr "" #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" @@ -1020,14 +1027,14 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "" @@ -1082,8 +1089,8 @@ msgstr "" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" @@ -1146,9 +1153,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" @@ -1182,8 +1189,8 @@ msgid "Selected stock item does not match BOM line" msgstr "" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1201,8 @@ msgstr "" #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" @@ -1260,7 +1267,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" @@ -1271,8 +1278,8 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1289,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" @@ -1335,15 +1342,15 @@ msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" @@ -1443,7 +1450,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "" @@ -1537,7 +1544,7 @@ msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1554,7 @@ msgstr "" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" @@ -1576,7 +1583,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" @@ -1601,7 +1608,7 @@ msgid "Allocated Stock" msgstr "" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1616,13 @@ msgstr "" msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1646,7 @@ msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "" @@ -1685,7 +1692,7 @@ msgstr "" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1812,9 +1819,9 @@ msgstr "" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" @@ -1835,7 +1842,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" @@ -1893,8 +1900,8 @@ msgstr "" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1921,7 @@ msgstr "" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +1994,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2008,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,6 +2048,11 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + #: common/api.py:692 msgid "Is Link" msgstr "" @@ -2470,7 +2486,7 @@ msgstr "" #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" @@ -2479,9 +2495,9 @@ msgid "Parts are templates by default" msgstr "" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" @@ -2490,7 +2506,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" @@ -2507,7 +2523,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" @@ -2522,7 +2538,7 @@ msgstr "" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" @@ -3615,7 +3631,7 @@ msgstr "" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "" @@ -3812,7 +3828,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4259,7 @@ msgstr "" msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4277,7 @@ msgstr "" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" @@ -4297,9 +4313,9 @@ msgid "Parameter name" msgstr "" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" @@ -4321,12 +4337,12 @@ msgstr "" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" @@ -4354,7 +4370,7 @@ msgstr "" #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" @@ -4404,13 +4420,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "" @@ -4536,15 +4552,15 @@ msgstr "" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4594,7 +4610,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4607,7 +4623,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4621,7 +4637,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4660,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4732,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4751,12 +4767,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4815,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4852,7 +4868,7 @@ msgstr "" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4890,13 +4906,13 @@ msgstr "" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5224,7 +5240,7 @@ msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5257,7 +5273,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" @@ -5266,7 +5282,7 @@ msgstr "" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5459,7 +5475,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" @@ -5467,9 +5483,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" @@ -5757,7 +5773,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6069,7 +6085,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6250,7 +6266,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6283,7 +6299,7 @@ msgstr "" #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" @@ -6531,8 +6547,8 @@ msgstr "" msgid "Default location for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6566,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" @@ -6732,7 +6748,7 @@ msgid "Is this part active?" msgstr "" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6950,7 @@ msgstr "" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" @@ -7036,7 +7052,7 @@ msgstr "" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" @@ -7045,7 +7061,7 @@ msgid "Is this test enabled?" msgstr "" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" @@ -7106,7 +7122,7 @@ msgid "Parameter description" msgstr "" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" @@ -7254,7 +7270,7 @@ msgstr "" msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -7352,7 +7368,7 @@ msgstr "" msgid "Copy image from original part" msgstr "" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" @@ -7554,80 +7570,100 @@ msgstr "" msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" @@ -7785,7 +7821,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7797,101 +7833,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8134,8 +8174,8 @@ msgstr "" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8181,7 +8221,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8815,7 +8855,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -9228,6 +9268,8 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9244,11 +9286,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9274,8 +9316,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" @@ -9332,7 +9374,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9357,9 +9399,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9375,7 +9417,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9425,316 +9467,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9844,7 +9886,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "" @@ -9868,8 +9910,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "" @@ -9893,106 +9935,110 @@ msgstr "" msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 -msgid "Select part to convert stock item into" -msgstr "" - -#: stock/serializers.py:897 -msgid "Selected part is not a valid option for conversion" +#: stock/serializers.py:900 +msgid "Unsupported statistic type: " msgstr "" #: stock/serializers.py:914 +msgid "Select part to convert stock item into" +msgstr "" + +#: stock/serializers.py:927 +msgid "Selected part is not a valid option for conversion" +msgstr "" + +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "" @@ -10024,7 +10070,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10080,7 +10126,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10100,7 +10146,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10161,7 +10207,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10169,7 +10215,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10183,7 +10229,7 @@ msgstr "" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10192,17 +10238,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10211,12 +10257,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10342,7 +10388,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10451,7 +10497,7 @@ msgid "New Location" msgstr "" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" @@ -10839,7 +10885,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10849,7 +10895,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10954,7 +11000,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -11811,7 +11857,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12124,13 +12170,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12391,7 +12437,7 @@ msgstr "" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" @@ -12399,7 +12445,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" @@ -12468,7 +12514,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" @@ -12722,45 +12768,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -13000,8 +13046,8 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" @@ -13126,7 +13172,7 @@ msgid "Copy Bill of Materials" msgstr "" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" @@ -13256,7 +13302,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" @@ -13268,7 +13314,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" @@ -13550,7 +13596,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13933,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13945,513 +13991,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14486,12 +14540,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14533,7 +14587,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14634,56 +14688,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14956,6 +15018,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" @@ -15059,4 +15129,3 @@ msgstr "" #: users/models.py:408 msgid "Permission to delete items" msgstr "" - diff --git a/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po index ad6d2b16da..62111cfcc6 100644 --- a/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "Nhập ngày" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "Nhập ngày" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "Nhập ngày" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Ghi chú" @@ -91,47 +92,53 @@ msgstr "Giá trị '{name}' không xuất hiện ở định dạng mẫu" msgid "Provided value does not match required pattern: " msgstr "Giá trị được cung cấp không khớp với mẫu bắt buộc: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Nhập mật khẩu" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Nhập mật khẩu mới" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Xác nhận mật khẩu" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Xác nhận mật khẩu mới" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Mật khẩu cũ" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "Email (nhắc lại)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Xác nhận địa chỉ email" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Bạn phải nhập cùng một email mỗi lần." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +#, fuzzy +#| msgid "Registration is disabled." +msgid "MFA Registration is disabled." +msgstr "Đăng ký bị vô hiệu hóa." + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Địa chỉ email chính đã cung cấp không hợp lệ." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Miền email được cung cấp không được phê duyệt." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Đăng ký bị vô hiệu hóa." @@ -417,7 +424,7 @@ msgstr "Lựa chọn sai" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +437,7 @@ msgstr "Lựa chọn sai" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Tên" @@ -446,7 +453,7 @@ msgstr "Tên" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +473,17 @@ msgstr "Tên" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Mô tả" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Mô tả (tùy chọn)" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Đường dẫn" @@ -573,10 +580,10 @@ msgstr "" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "Hoạt động" @@ -730,7 +737,7 @@ msgstr "Bạn dựng phải được hủy bỏ trước khi có thể xóa đư #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "Vật tư tiêu hao" @@ -739,19 +746,19 @@ msgstr "Vật tư tiêu hao" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "Tuỳ chọn" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "Đã theo dõi" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "Đã cấp phát" @@ -765,7 +772,7 @@ msgstr "Đã cấp phát" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "Có sẵn" @@ -774,7 +781,7 @@ msgstr "Có sẵn" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Tạo đơn hàng" @@ -854,7 +861,7 @@ msgstr "Đơn đặt bản dựng với bản dựng này đã được phân b #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +873,7 @@ msgstr "Đơn đặt bản dựng với bản dựng này đã được phân b #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +898,10 @@ msgstr "Đơn đặt bản dựng với bản dựng này đã được phân b #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Nguyên liệu" @@ -953,9 +960,9 @@ msgid "Build status code" msgstr "Mã trạng thái bản dựng" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Mã lô hàng" @@ -1006,7 +1013,7 @@ msgstr "Người dùng người đã được phân công cho đơn đặt bản #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "Chịu trách nhiệm" @@ -1020,14 +1027,14 @@ msgstr "Người dùng hoặc nhóm có trách nhiệm với đơn đặt bản #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Liên kết bên ngoài" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Liên kết đến URL bên ngoài" @@ -1082,8 +1089,8 @@ msgstr "Đầu ra bản dựng không phù hợp với đơn đặt bản dựng #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "Số lượng phải lớn hơn 0" @@ -1146,9 +1153,9 @@ msgstr "Dựng đối tượng" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "Số lượng" @@ -1182,8 +1189,8 @@ msgid "Selected stock item does not match BOM line" msgstr "Hàng trong kho đã chọn không phù hợp với đường BOM" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1201,8 @@ msgstr "Hàng trong kho đã chọn không phù hợp với đường BOM" #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "Kho hàng" @@ -1260,7 +1267,7 @@ msgstr "Cần nhập số lượng nguyên dương, bởi vì hóa đơn vật l #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Số sê-ri" @@ -1271,8 +1278,8 @@ msgstr "Nhập vào số sêri cho đầu ra bản dựng" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1289,9 @@ msgstr "Nhập vào số sêri cho đầu ra bản dựng" #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "Địa điểm" @@ -1335,15 +1342,15 @@ msgstr "Vị trí cho đầu ra bản dựng hoàn thiện" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "Trạng thái" @@ -1443,7 +1450,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:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "Hàng hóa phải trong kho" @@ -1537,7 +1544,7 @@ msgstr "IPN sản phẩm" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1554,7 @@ msgstr "IPN sản phẩm" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "Số sê-ri" @@ -1576,7 +1583,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "Có thể theo dõi" @@ -1601,7 +1608,7 @@ msgid "Allocated Stock" msgstr "" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1616,13 @@ msgstr "" msgid "On Order" msgstr "Bật đơn hàng" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "Đang sản xuất" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1646,7 @@ msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "Đợi duyệt" @@ -1685,7 +1692,7 @@ msgstr "Ảnh thu nhỏ sản phẩm" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Chức năng mã vạch" @@ -1812,9 +1819,9 @@ msgstr "Bản dựng đã đến hạn vào %(target)s" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "Quá hạn" @@ -1835,7 +1842,7 @@ msgstr "Đầu ra hoàn thiện" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "Đơn đặt hàng" @@ -1893,8 +1900,8 @@ msgstr "Sản phẩm đã phân bổ" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1921,7 @@ msgstr "Chưa đặt ngày mục tiêu" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "Đã hoàn thành" @@ -1987,7 +1994,13 @@ msgstr "Kho tiêu thụ" msgid "Completed Build Outputs" msgstr "Đầu ra bản dựng hoàn thiện" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +#, fuzzy +#| msgid "Build Details" +msgid "Build test statistics" +msgstr "Chi tiết bản dựng" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2010,25 @@ msgstr "Đầu ra bản dựng hoàn thiện" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Tập tin đính kèm" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "Ghi chép bản dựng" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "Tạo đơn đặt bản dựng" @@ -2037,6 +2050,11 @@ msgstr "Mục dòng" msgid "Incomplete Outputs" msgstr "Đầu ra chưa hoàn thiện" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + #: common/api.py:692 msgid "Is Link" msgstr "" @@ -2470,7 +2488,7 @@ msgstr "Sao chéo mẫu tham số danh mục khi tạo 1 sản phẩm" #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "Mẫu" @@ -2479,9 +2497,9 @@ msgid "Parts are templates by default" msgstr "Sản phẩm là mẫu bởi mặc định" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "Lắp ráp" @@ -2490,7 +2508,7 @@ msgid "Parts can be assembled from other components by default" msgstr "Sản phẩm có thể lắp giáp từ thành phần khác theo mặc định" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "Thành phần" @@ -2507,7 +2525,7 @@ msgid "Parts are purchaseable by default" msgstr "Sản phẩm mặc định có thể mua được" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "Có thể bán" @@ -2522,7 +2540,7 @@ msgstr "Sản phẩm mặc định có thể theo dõi được" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "Ảo" @@ -3615,7 +3633,7 @@ msgstr "" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Người dùng" @@ -3812,7 +3830,7 @@ msgstr "Định nghĩa" msgid "Unit definition" msgstr "Định nghĩa đơn vị" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4261,7 @@ msgstr "Liên kết thông tin địa chỉ (bên ngoài)" msgid "Manufacturer Part" msgstr "Sản phẩm nhà sản xuất" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4279,7 @@ msgstr "Chọn sản phẩm" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "Nhà sản xuất" @@ -4297,9 +4315,9 @@ msgid "Parameter name" msgstr "Tên tham số" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Giá trị" @@ -4321,12 +4339,12 @@ msgstr "Đơn vị tham số" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "Sản phẩm nhà cung cấp" @@ -4354,7 +4372,7 @@ msgstr "Sản phẩm nhà sản xuất đã liên kết phải tham chiếu vớ #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "Nhà cung cấp" @@ -4404,13 +4422,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "Thu phí tối thiểu (vd: phí kho bãi)" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "Đóng gói" @@ -4536,15 +4554,15 @@ msgstr "Xóa ảnh" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "Khách hàng" @@ -4594,7 +4612,7 @@ msgstr "Thêm mới sản phẩm nhà cung cấp" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "Sản phẩm nhà cung cấp mới" @@ -4607,7 +4625,7 @@ msgstr "Sản phẩm nhà sản xuất" msgid "Create new manufacturer part" msgstr "Tạo sản phẩm nhà sản xuất mới" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "Sản phẩm nhà sản xuất mới" @@ -4621,7 +4639,7 @@ msgstr "Kho nhà cung cấp" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4662,7 @@ msgstr "Đơn đặt hàng mới" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4734,7 @@ msgstr "Nhà sản xuất" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "Đặt mua sản phẩm" @@ -4751,12 +4769,12 @@ msgstr "Nhà cung cấp" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Thông số" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4817,7 @@ msgstr "Chức năng cho sản phẩm nhà cung cấp" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "Đặt hàng sản phẩm" @@ -4852,7 +4870,7 @@ msgstr "Thêm mới hàng trong kho" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "Hàng trong kho mới" @@ -4890,13 +4908,13 @@ msgstr "Cập nhật độ sẵn sàng sản phẩm" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "Hàng trong kho" @@ -5224,7 +5242,7 @@ msgid "Order Status" msgstr "Trạng thái đặt hàng" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5257,7 +5275,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "Đơn hàng" @@ -5266,7 +5284,7 @@ msgstr "Đơn hàng" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "Đơn hàng trả lại" @@ -5459,7 +5477,7 @@ msgstr "Sản phẩm nhà cung cấp" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "Đã nhận" @@ -5467,9 +5485,9 @@ msgstr "Đã nhận" msgid "Number of items received" msgstr "Số mục đã nhận" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "Giá mua" @@ -5757,7 +5775,7 @@ msgid "Select destination location for received items" msgstr "Chọn vị trí đích cho hàng hóa đã nhận" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "Nhập mã lô cho hàng trong kho đang đến" @@ -6069,7 +6087,7 @@ msgstr "Lựa chọn trùng lặp" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Xóa hàng" @@ -6250,7 +6268,7 @@ msgstr "Vận chuyển đang chờ xử lý" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "Chức năng" @@ -6283,7 +6301,7 @@ msgstr "Cập nhật {part} giá đơn vị đến {price} và số lượng đ #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" @@ -6531,8 +6549,8 @@ msgstr "Danh mục sản phẩm" msgid "Default location for parts in this category" msgstr "Vị trí mặc định cho sản phẩm trong danh mục này" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6568,13 @@ msgstr "Từ khóa mặc định" msgid "Default keywords for parts in this category" msgstr "Từ khóa mặc định cho sản phẩm trong danh mục này" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Biểu tượng" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "Biểu tượng (tùy chọn)" @@ -6732,7 +6750,7 @@ msgid "Is this part active?" msgstr "Sản phẩm này đang hoạt động?" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6952,7 @@ msgstr "Tống số kho tại thời điểm kiểm kê" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "Ngày" @@ -7036,7 +7054,7 @@ msgstr "Nhập mô tả cho kiểm thử này" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "Đã bật" @@ -7045,7 +7063,7 @@ msgid "Is this test enabled?" msgstr "" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "Bắt buộc" @@ -7106,7 +7124,7 @@ msgid "Parameter description" msgstr "Mô tả tham số" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "Ô lựa chọn" @@ -7254,7 +7272,7 @@ msgstr "Mục BOM này được thừa kế bởi BOM cho sản phẩm biến th msgid "Stock items for variant parts can be used for this BOM item" msgstr "Hàng trong kho cho sản phẩm biến thể có thể được dùng bởi mục BOM này" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "Số lượng phải là giá trị nguyên dùng cho sản phẩm có thể theo dõi được" @@ -7352,7 +7370,7 @@ msgstr "Sao chép ảnh" msgid "Copy image from original part" msgstr "Sao chép hình ảnh từ sản phẩm gốc" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "Sao chép BOM" @@ -7554,80 +7572,110 @@ msgstr "Giá tối thiểu không được lớn hơn giá tối đa" 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:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +#, fuzzy +#| msgid "Select parent part" +msgid "Select the parent assembly" +msgstr "Chọn sản phẩm cha" + +#: part/serializers.py:1583 +#, fuzzy +#| msgid "Component" +msgid "Component Name" +msgstr "Thành phần" + +#: part/serializers.py:1586 +#, fuzzy +#| msgid "Component" +msgid "Component IPN" +msgstr "Thành phần" + +#: part/serializers.py:1589 +#, fuzzy +#| msgid "Company description" +msgid "Component Description" +msgstr "Mô tả công ty" + +#: part/serializers.py:1595 +#, fuzzy +#| msgid "Select parent part" +msgid "Select the component part" +msgstr "Chọn sản phẩm cha" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "Có thể dựng" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "Chọn sản phẩm để sao chép định mức nguyên vật liệu" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "Xóa dữ liệu đã tồn tại" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "Xóa mục BOM đã tồn tại trước khi sao chép" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "Bao gồm thừa hưởng" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "Bao gồm mục BOM được thừa hưởng từ sản phẩm mẫu" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "Bỏ qua dòng không hợp lệ" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "Bật tùy chọn này để bỏ qua dòng không hợp lệ" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "Sao chép sản phẩm thay thế" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "Sao chép sản phẩm thay thế khi nhân bản hàng hóa BOM" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "Dọn dẹp BOM đang tồn tại" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "Xóa mục BOM đang tồn tại trước khi tải lên" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "Chưa chỉ ra cột sản phẩm" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "Tìm thấy nhiều sản phẩm phù hợp" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "Không tìm thấy sản phẩm nào" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "Sản phẩm không được chỉ định như là một thành phần" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "Chưa cung cấp số lượng" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "Số lượng không hợp lệ" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "Buộc phải nhập ít nhất một mục BOM" @@ -7785,7 +7833,7 @@ msgstr "Thêm thông tin kiểm kê" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "Kiểm kê" @@ -7797,101 +7845,107 @@ msgstr "Mẫu kiểm thử sản phẩm" msgid "Add Test Template" msgstr "Thêm mẫu kiểm thử" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +#, fuzzy +#| msgid "Part Test Templates" +msgid "Part Test Statistics" +msgstr "Mẫu kiểm thử sản phẩm" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "Phân bổ đơn hàng bán" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "Ghi chú sản phẩm" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "Biến thể sản phẩm" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "Tạo biến thể mới" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "Biến thể mới" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "Thêm tham số mới" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "Sản phẩm liên quan" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "Thêm liên quan" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "Hóa đơn nguyên vật liệu" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "Chức năng xuất dữ liệu" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "Xuất BOM" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "Báo cáo in BOM" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "Chức năng BOM" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "Tải lên BOM" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "Xác minh BOM" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "Thêm mục BOM" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "Lắp ráp" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "Bản dựng sản phẩm" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "Phân bổ đơn hàng bản dựng" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "Nhà cung cấp sản phẩm" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "Nhà sản xuất sản phẩm" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8134,8 +8188,8 @@ msgstr "Biến thể" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "Kiện hàng" @@ -8181,7 +8235,7 @@ msgstr "Sửa" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "Cập nhật lần cuối" @@ -8815,7 +8869,7 @@ msgid "Is the plugin active" msgstr "Là phần bổ sung hoạt động" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "Đã cài đặt" @@ -9228,6 +9282,8 @@ msgstr "Bảng liệt kê mở rộng" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "Tổng cộng" @@ -9244,11 +9300,11 @@ msgid "Test Results" msgstr "Kết quả kiểm tra" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "Thử nghiệm" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "Kết quả" @@ -9274,8 +9330,8 @@ msgid "Installed Items" msgstr "Mục đã cài đặt" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "Sê-ri" @@ -9332,7 +9388,7 @@ msgstr "Tên nhà cung cấp" msgid "Customer ID" msgstr "ID Khách hàng" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "Đã cài đặt trong" @@ -9357,9 +9413,9 @@ msgstr "Cần xem xét" msgid "Delete on Deplete" msgstr "Xóa khi thiếu hụt" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "Ngày hết hạn" @@ -9375,7 +9431,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9425,316 +9481,316 @@ msgstr "Sản phẩm nhà cung cấp có kích thước đóng gói được đ msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Số sê-ri không thê được cung cấp cho sản phẩm không thể theo dõi" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "Loại vị trí kho hàng" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "Loại vị trí kho hàng" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "Biểu tượng mặc định cho vị trí không được đặt biểu tượng (tùy chọn)" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Kho hàng" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Vị trí kho hàng" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Chủ sở hữu" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "Chọn chủ sở hữu" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Không thể đưa trực tiếp hàng trong kho vào bên trong vị trí kho hàng có cấu trúc, nhưng có thể đặt vào kho con." -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "Bên ngoài" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "Đây là vị trí kho bên ngoài" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "Loại vị trí" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "Loại vị trí kho hàng của địa điểm này" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "Bạn không thể chuyển đổi vị trí kho hàng này thành cấu trúc vì đã có hàng hóa trong kho được đặt vào bên trong nó!" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "Không thể đặt hàng trong kho vào trong địa điểm kho có cấu trúc!" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "Không thể tạo hàng hóa trong kho cho sản phẩm ảo" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "Loại sản phẩm ('{self.supplier_part.part}') phải là {self.part}" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "Số lượng phải là 1 cho hàng hóa với số sê ri" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Số sê ri không thể đặt được nếu số lượng lớn hơn 1" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "Hàng hóa không thể thuộc về chính nó" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "Hàng hóa phải có 1 tham chiếu bản dựng nếu is_building=True" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "Tham chiếu bản dựng không thể trỏ vào cùng một đối tượng sản phẩm" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "Hàng trong kho cha" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "Sản phẩm cơ bản" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "Chọn sản phẩm nhà cung cấp khớp với hàng hóa trong kho này" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "Hàng trong kho này được đặt ở đâu?" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "Đóng gói hàng hóa này được lưu trữ lại" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "Mục này đã được cài đặt trong mục khác?" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "Số sê ri cho mục này" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "Mã lô cho hàng trong kho này" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "Số lượng tồn kho" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "Bản dựng nguồn" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "Bản dựng cho hàng hóa này" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "Tiêu thụ bởi" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "Đơn đặt bản dựng đã dùng hàng hóa này" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "Đơn đặt mua nguồn" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "Đơn đặt mua cho hàng hóa này" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "Đơn hàng bán đích" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Ngày hết hạn của hàng hóa này. Kho sẽ được nhắc tình trạng hết hạn sau ngày này" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "Xóa khi thiếu hụt" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "Xóa hàng trong kho này khi kho hàng bị thiếu hụt" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "Giá mua riêng lẻ tại thời điểm mua" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "Đã chuyển đổi sang sản phẩm" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "Chưa đặt sản phẩm thành có thể theo dõi" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "Số lượng phải là số nguyên" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "Số lượng không thể vượt quá số lượng trong kho đang có ({self.quantity})" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "Số sêri phải là một danh sách dãy số nguyên" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "Số lượng không khớp với số sêri" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "Số sêri đã tồn tại" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "Hàng trong kho đã được gán vào đơn hàng bán" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "Hàng trong kho đã được cài đặt vào hàng hóa khác" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "Hàng trong kho chứa hàng hóa khác" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "Hàng trong kho đã được gắn với một khách hàng" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "Hàng trong kho hiện đang sản xuất" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "Không thể hợp nhất kho nối tiếp" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "Mặt hàng trùng lặp" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "Mặt hàng phải tham chiếu đến sản phẩm tương tự" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "Mặt hàng phải tham chiếu đến sản phẩm nhà cung cấp tương tự" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "Mã trạng thái kho phải phù hợp" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "Không thể xóa mặt hàng không ở trong kho" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "Ghi chú đầu vào" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "Phải cung cấp giá trị cho kiểm thử này" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "Phải tải liên đính kèm cho kiểm thử này" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "Kết quả kiểm thử" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "Giá trị đầu ra kiểm thử" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "Đính kèm kết quả kiểm thử" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "Ghi chú kiểm thử" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9844,7 +9900,7 @@ msgstr "Số lượng phải không vượt quá số lượng trong kho đang c msgid "Enter serial numbers for new items" msgstr "Điền số sêri cho hàng hóa mới" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "Vị trí kho đích" @@ -9868,8 +9924,8 @@ msgstr "Số lượng để cài đặt" msgid "Enter the quantity of items to install" msgstr "Nhập số lượng hàng hóa để cài đặt" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "Thêm ghi chú giao dịch (tùy chọn)" @@ -9893,106 +9949,112 @@ msgstr "Số lượng cần lắp đặt phải không vượt quá số lượn msgid "Destination location for uninstalled item" msgstr "Vị trí đích cho hàng hóa bị gỡ bỏ" -#: stock/serializers.py:884 +#: stock/serializers.py:900 +#, fuzzy +#| msgid "Unsupported file type" +msgid "Unsupported statistic type: " +msgstr "Loại tệp tin không được hỗ trợ" + +#: stock/serializers.py:914 msgid "Select part to convert stock item into" msgstr "Chọn sản phẩm để chuyển đổi mặt hàng vào bên trong" -#: stock/serializers.py:897 +#: stock/serializers.py:927 msgid "Selected part is not a valid option for conversion" msgstr "Sản phẩm đã chọn không phải là tùy chọn hợp lệ để chuyển đổi" -#: stock/serializers.py:914 +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "Không thể chuyển đổi hàng hóa với sản phẩm nhà cung cấp đã gán" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "Vị trí đích dành cho hàng hóa trả lại" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "Chọn mặt hàng để đổi trạng thái" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "Không có mặt hàng nào được chọn" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Kho phụ" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "Sản phẩm phải có thể bán được" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "Hàng hóa được phân bổ đến một đơn hàng bán" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "Hàng hóa được phân bổ đến một đơn đặt bản dựng" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "Khách hàng được gán vào các mặt hàng" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "Công ty đã chọn không phải là khách hàng" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "Ghi chú phân bổ kho" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "Phải cung cấp danh sách mặt hàng" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "Ghi chú gộp kho" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "Cho phép nhiều nhà cung không khớp" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "Cho phép mặt hàng cùng sản phẩm nhà cung cấp khác phải được gộp" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "Cho phép trạng thái không khớp" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "Cho phép mặt hàng với mã trạng thái khác nhau để gộp lại" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "Cần cung cấp ít nhất hai mặt hàng" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "Giá trị khóa chính mặt hàng" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "Mã trạng thái mặt hàng" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "Ghi chú giao dịch kho" @@ -10024,7 +10086,7 @@ msgstr "Đã cách ly" msgid "Legacy stock tracking entry" msgstr "Mục theo dõi kho cổ điển" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Kho hàng đã được khởi tạo" @@ -10080,7 +10142,7 @@ msgstr "Tách từ mục cha" msgid "Split child item" msgstr "Tách mục con" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Kho hàng đã được gộp" @@ -10100,7 +10162,7 @@ msgstr "Đầu ra đơn đặt bản dựng đã hoàn thành" msgid "Build order output rejected" msgstr "Đầu ra đơn đặt bản dựng bị từ chối" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Tiêu hao bởi đơn đặt bản dựng" @@ -10161,7 +10223,7 @@ msgstr "Ghi chú tại kho hàng" msgid "Installed Stock Items" msgstr "Hàng hóa đã lắp đặt" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "Lắp đặt hàng hóa trong kho" @@ -10169,7 +10231,7 @@ msgstr "Lắp đặt hàng hóa trong kho" msgid "Delete all test results for this stock item" msgstr "Xóa toàn bộ kết quả kiểm thử cho kho hàng này" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10183,7 +10245,7 @@ msgstr "Quét vào điểm bán" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "Chức năng in" @@ -10192,17 +10254,17 @@ msgid "Stock adjustment actions" msgstr "Chức năng điều chỉnh kho" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "Đếm hàng" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "Thêm hàng" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "Xóa hàng hóa" @@ -10211,12 +10273,12 @@ msgid "Serialize stock" msgstr "Sắp xếp hàng hóa" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "Chuyển giao hàng" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "Chỉ định cho khách hàng" @@ -10342,7 +10404,7 @@ msgid "No stocktake performed" msgstr "Chưa thực hiện kiểm kê" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10451,7 +10513,7 @@ msgid "New Location" msgstr "Vị trí mới" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" @@ -10839,7 +10901,7 @@ msgstr "Đường dẫn cài đặt" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "Gắn liền" @@ -10849,7 +10911,7 @@ msgstr "Đây là phần bổ sung có sẵn nên không thể tắt được" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "Mẫu" @@ -10954,7 +11016,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "Xóa" @@ -11811,7 +11873,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12124,13 +12186,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12391,7 +12453,7 @@ msgstr "" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" @@ -12399,7 +12461,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" @@ -12468,7 +12530,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" @@ -12722,45 +12784,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -13000,8 +13062,8 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" @@ -13126,7 +13188,7 @@ msgid "Copy Bill of Materials" msgstr "" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" @@ -13256,7 +13318,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" @@ -13268,7 +13330,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" @@ -13550,7 +13612,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13949,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13945,513 +14007,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "Thêm" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14486,12 +14556,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14533,7 +14603,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14634,56 +14704,68 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +#, fuzzy +#| msgid "Internal Part" +msgid "Interval start" +msgstr "Sản phẩm nội bộ" + +#: templates/js/translated/table_filters.js:475 +#, fuzzy +#| msgid "Internal Price" +msgid "Interval end" +msgstr "Giá nội bộ" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14956,6 +15038,18 @@ msgstr "Thiết lập email" msgid "Email settings not configured" msgstr "Chưa cấu hình thiết lập email" +#: templates/test_statistics_table.html:13 +#, fuzzy +#| msgid "Pass" +msgid "Passed" +msgstr "Đạt" + +#: templates/test_statistics_table.html:16 +#, fuzzy +#| msgid "Fail" +msgid "Failed" +msgstr "Không đạt" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "Có" @@ -15059,4 +15153,3 @@ msgstr "Quyển để sửa mục" #: users/models.py:408 msgid "Permission to delete items" msgstr "Quyền để xóa mục" - diff --git a/src/backend/InvenTree/locale/zh/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/zh/LC_MESSAGES/django.po index 2c214897e3..56329ccfee 100644 --- a/src/backend/InvenTree/locale/zh/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/zh/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-26 00:28+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2024-07-26 18:36\n" "Last-Translator: \n" "Language-Team: Chinese Traditional\n" @@ -57,7 +57,7 @@ msgid "Enter date" msgstr "" #: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -65,12 +65,13 @@ msgstr "" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3291 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2371 stock/models.py:2498 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1084 @@ -78,7 +79,7 @@ msgstr "" #: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1615 templates/js/translated/stock.js:2507 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "" @@ -91,47 +92,51 @@ msgstr "" msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "" -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "" @@ -417,7 +422,7 @@ msgstr "" #: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 #: part/models.py:983 part/models.py:3758 plugin/models.py:51 -#: report/models.py:150 stock/models.py:75 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 @@ -430,7 +435,7 @@ msgstr "" #: templates/js/translated/company.js:1165 #: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 #: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 -#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2795 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "" @@ -446,7 +451,7 @@ msgstr "" #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:81 stock/templates/stock/location.html:122 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -466,17 +471,17 @@ msgstr "" #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1594 templates/js/translated/stock.js:2137 -#: templates/js/translated/stock.js:2826 templates/js/translated/stock.js:2909 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "" -#: InvenTree/models.py:777 stock/models.py:82 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "" #: InvenTree/models.py:792 templates/js/translated/part.js:2809 -#: templates/js/translated/stock.js:2835 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" @@ -573,10 +578,10 @@ msgstr "" #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -730,7 +735,7 @@ msgstr "" #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" @@ -739,19 +744,19 @@ msgstr "" #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" #: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 #: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" @@ -765,7 +770,7 @@ msgstr "" #: templates/js/translated/part.js:692 templates/js/translated/part.js:694 #: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" @@ -774,7 +779,7 @@ msgstr "" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2970 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" @@ -854,7 +859,7 @@ msgstr "" #: part/models.py:3264 part/models.py:3412 part/models.py:3433 #: part/models.py:3455 part/models.py:3591 part/models.py:3931 #: part/models.py:4094 part/models.py:4225 part/models.py:4584 -#: part/serializers.py:1190 part/serializers.py:1820 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,7 +871,7 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 @@ -891,10 +896,10 @@ msgstr "" #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:676 templates/js/translated/stock.js:842 -#: templates/js/translated/stock.js:1059 templates/js/translated/stock.js:2076 -#: templates/js/translated/stock.js:2935 templates/js/translated/stock.js:3168 -#: templates/js/translated/stock.js:3313 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "" @@ -953,9 +958,9 @@ msgid "Build status code" msgstr "" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:857 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1193 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" @@ -1006,7 +1011,7 @@ msgstr "" #: templates/js/translated/build.js:2391 #: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" @@ -1020,14 +1025,14 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:853 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" #: build/models.py:376 common/models.py:3265 part/models.py:1058 -#: stock/models.py:853 +#: stock/models.py:855 msgid "Link to external URL" msgstr "" @@ -1082,8 +1087,8 @@ msgstr "" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1561 part/serializers.py:1983 -#: stock/models.py:698 stock/models.py:1518 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "" @@ -1146,9 +1151,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:564 templates/js/translated/stock.js:702 -#: templates/js/translated/stock.js:873 templates/js/translated/stock.js:3099 -#: templates/js/translated/stock.js:3182 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" @@ -1182,8 +1187,8 @@ msgid "Selected stock item does not match BOM line" msgstr "" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:374 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 @@ -1194,8 +1199,8 @@ msgstr "" #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:3055 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" @@ -1260,7 +1265,7 @@ msgstr "" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" @@ -1271,8 +1276,8 @@ msgstr "" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 #: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 #: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 #: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 @@ -1282,9 +1287,9 @@ msgstr "" #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2280 -#: templates/js/translated/stock.js:2949 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" @@ -1335,15 +1340,15 @@ msgstr "" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 #: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2255 templates/js/translated/stock.js:3073 -#: templates/js/translated/stock.js:3198 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" @@ -1443,7 +1448,7 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "" @@ -1537,7 +1542,7 @@ msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:843 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 #: templates/js/translated/build.js:2527 @@ -1547,7 +1552,7 @@ msgstr "" #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:596 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "" @@ -1576,7 +1581,7 @@ msgstr "" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 #: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" @@ -1601,7 +1606,7 @@ msgid "Allocated Stock" msgstr "" #: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 -#: part/serializers.py:897 part/serializers.py:1579 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 #: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 #: templates/js/translated/part.js:2152 @@ -1609,13 +1614,13 @@ msgstr "" msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1581 +#: build/serializers.py:1261 part/serializers.py:1602 #: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1606 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1639,7 +1644,7 @@ msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "" @@ -1685,7 +1690,7 @@ msgstr "" #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 #: stock/templates/stock/location.html:52 -#: templates/js/translated/filters.js:335 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1812,9 +1817,9 @@ msgstr "" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" @@ -1835,7 +1840,7 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3002 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" @@ -1893,8 +1898,8 @@ msgstr "" #: templates/js/translated/build.js:1553 #: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1133 templates/js/translated/stock.js:1234 -#: templates/js/translated/stock.js:2269 templates/js/translated/stock.js:3205 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -1914,7 +1919,7 @@ msgstr "" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +1992,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2006,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,6 +2046,11 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + #: common/api.py:692 msgid "Is Link" msgstr "" @@ -2470,7 +2484,7 @@ msgstr "" #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" @@ -2479,9 +2493,9 @@ msgid "Parts are templates by default" msgstr "" #: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 -#: templates/js/translated/bom.js:1639 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" @@ -2490,7 +2504,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:1495 part/admin.py:95 part/models.py:1160 -#: templates/js/translated/table_filters.js:734 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" @@ -2507,7 +2521,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:1507 part/admin.py:104 part/models.py:1178 -#: templates/js/translated/table_filters.js:760 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" @@ -2522,7 +2536,7 @@ msgstr "" #: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" @@ -3615,7 +3629,7 @@ msgstr "" #: part/models.py:3301 part/models.py:3388 part/models.py:3462 #: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3114 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "" @@ -3812,7 +3826,7 @@ msgstr "" msgid "Unit definition" msgstr "" -#: common/models.py:3198 common/models.py:3255 stock/models.py:2493 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" @@ -4243,7 +4257,7 @@ msgstr "" msgid "Manufacturer Part" msgstr "" -#: company/models.py:487 company/models.py:779 stock/models.py:785 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4261,7 +4275,7 @@ msgstr "" #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" @@ -4297,9 +4311,9 @@ msgid "Parameter name" msgstr "" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2485 templates/js/translated/company.js:1166 +#: stock/models.py:2548 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 -#: templates/js/translated/stock.js:1601 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" @@ -4321,12 +4335,12 @@ msgstr "" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:796 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2359 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" @@ -4354,7 +4368,7 @@ msgstr "" #: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 #: templates/js/translated/purchase_order.js:1759 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" @@ -4404,13 +4418,13 @@ msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:816 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1208 templates/js/translated/stock.js:1240 -#: templates/js/translated/stock.js:2503 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "" @@ -4536,15 +4550,15 @@ msgstr "" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:838 -#: stock/models.py:839 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3037 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4594,7 +4608,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4607,7 +4621,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4621,7 +4635,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4644,7 +4658,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4716,7 +4730,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4751,12 +4765,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4799,7 +4813,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4852,7 +4866,7 @@ msgstr "" #: company/templates/company/supplier_part.html:210 #: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 -#: templates/js/translated/stock.js:537 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4890,13 +4904,13 @@ msgstr "" #: part/serializers.py:900 part/stocktake.py:224 #: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 +#: stock/serializers.py:1011 stock/serializers.py:1189 #: stock/templates/stock/location.html:167 #: stock/templates/stock/location.html:188 #: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2844 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5224,7 +5238,7 @@ msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5257,7 +5271,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 #: templates/js/translated/purchase_order.js:1743 -#: templates/js/translated/stock.js:2339 templates/js/translated/stock.js:2985 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" @@ -5266,7 +5280,7 @@ msgstr "" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3019 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5459,7 +5473,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:2239 #: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" @@ -5467,9 +5481,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1455 stock/models.py:957 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2390 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" @@ -5757,7 +5771,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1194 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6069,7 +6083,7 @@ msgstr "" #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:714 templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6250,7 +6264,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:71 #: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6283,7 +6297,7 @@ msgstr "" #: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 #: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 -#: templates/js/translated/stock.js:2115 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" @@ -6531,8 +6545,8 @@ msgstr "" msgid "Default location for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:185 templates/js/translated/part.js:2825 -#: templates/js/translated/stock.js:2850 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" @@ -6550,13 +6564,13 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:132 stock/models.py:88 stock/models.py:167 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 #: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" #: part/models.py:133 part/serializers.py:143 part/serializers.py:161 -#: stock/models.py:168 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" @@ -6732,7 +6746,7 @@ msgid "Is this part active?" msgstr "" #: part/models.py:1188 templates/js/translated/part.js:818 -#: templates/js/translated/table_filters.js:721 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" @@ -6934,7 +6948,7 @@ msgstr "" #: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 #: templates/js/translated/purchase_order.js:1801 -#: templates/js/translated/stock.js:2899 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" @@ -7036,7 +7050,7 @@ msgstr "" #: part/models.py:3617 report/models.py:209 #: templates/js/translated/part.js:2916 -#: templates/js/translated/table_filters.js:481 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" @@ -7045,7 +7059,7 @@ msgid "Is this test enabled?" msgstr "" #: part/models.py:3622 templates/js/translated/part.js:2924 -#: templates/js/translated/table_filters.js:477 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" @@ -7106,7 +7120,7 @@ msgid "Parameter description" msgstr "" #: part/models.py:3780 templates/js/translated/part.js:1631 -#: templates/js/translated/table_filters.js:830 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" @@ -7254,7 +7268,7 @@ msgstr "" msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4393 stock/models.py:683 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -7352,7 +7366,7 @@ msgstr "" msgid "Copy image from original part" msgstr "" -#: part/serializers.py:478 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" @@ -7554,80 +7568,100 @@ msgstr "" msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1583 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1829 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1830 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1835 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1836 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1841 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1842 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1847 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1848 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1885 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1886 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1918 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1962 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1965 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1968 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1985 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2008 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" @@ -7785,7 +7819,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2295 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7797,101 +7831,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:656 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:664 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:749 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8134,8 +8172,8 @@ msgstr "" #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 #: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 -#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1060 -#: templates/js/translated/stock.js:2149 templates/navbar.html:31 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8181,7 +8219,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2325 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8815,7 +8853,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -9228,6 +9266,8 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:72 #: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9244,11 +9284,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1574 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2479 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9274,8 +9314,8 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:700 templates/js/translated/stock.js:871 -#: templates/js/translated/stock.js:3188 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" @@ -9332,7 +9372,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:823 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9357,9 +9397,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:917 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2309 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9375,7 +9415,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 msgid "Parent Location" msgstr "" @@ -9425,316 +9465,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:62 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:63 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:89 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:129 stock/models.py:805 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:130 stock/templates/stock/location.html:183 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:178 stock/models.py:966 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:179 stock/models.py:967 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:187 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:194 templates/js/translated/stock.js:2859 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:195 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:201 templates/js/translated/stock.js:2868 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:205 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:277 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:662 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:689 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:706 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:716 stock/models.py:729 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:719 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:741 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:746 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:759 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:775 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:787 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:797 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:809 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:817 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:828 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:847 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:861 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:866 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:876 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:879 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:886 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:889 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:898 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:902 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:908 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:919 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:937 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:938 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:958 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:989 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1515 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1523 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1529 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1534 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1542 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1639 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1661 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1667 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1670 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1673 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1680 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1684 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1692 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1697 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1958 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2339 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2372 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2412 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2455 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2479 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2486 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2498 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2506 templates/js/translated/stock.js:1627 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2507 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2513 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2514 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2520 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2521 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9844,7 +9884,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "" @@ -9868,8 +9908,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "" @@ -9893,106 +9933,110 @@ msgstr "" msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 -msgid "Select part to convert stock item into" -msgstr "" - -#: stock/serializers.py:897 -msgid "Selected part is not a valid option for conversion" +#: stock/serializers.py:900 +msgid "Unsupported statistic type: " msgstr "" #: stock/serializers.py:914 +msgid "Select part to convert stock item into" +msgstr "" + +#: stock/serializers.py:927 +msgid "Selected part is not a valid option for conversion" +msgstr "" + +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 +#: stock/serializers.py:1114 stock/serializers.py:1191 #: stock/templates/stock/location.html:162 #: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:154 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "" @@ -10024,7 +10068,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:544 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10080,7 +10124,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1937 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10100,7 +10144,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1843 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10161,7 +10205,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3348 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10169,7 +10213,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1780 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10183,7 +10227,7 @@ msgstr "" #: stock/templates/stock/item_base.html:59 #: stock/templates/stock/location.html:67 -#: templates/js/translated/filters.js:431 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10192,17 +10236,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1903 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1885 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1894 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10211,12 +10255,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1912 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1966 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10342,7 +10386,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10451,7 +10495,7 @@ msgid "New Location" msgstr "" #: stock/templates/stock/location.html:298 -#: templates/js/translated/stock.js:2651 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" @@ -10839,7 +10883,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10849,7 +10893,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10954,7 +10998,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -11811,7 +11855,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1182 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12124,13 +12168,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:121 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:123 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12391,7 +12435,7 @@ msgstr "" #: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 #: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 -#: templates/js/translated/stock.js:2062 templates/js/translated/stock.js:2789 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" @@ -12399,7 +12443,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3120 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" @@ -12468,7 +12512,7 @@ msgstr "" msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1947 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" @@ -12722,45 +12766,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -13000,8 +13044,8 @@ msgstr "" msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:331 templates/js/translated/stock.js:141 -#: templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" @@ -13126,7 +13170,7 @@ msgid "Copy Bill of Materials" msgstr "" #: templates/js/translated/part.js:685 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" @@ -13256,7 +13300,7 @@ msgid "No category" msgstr "" #: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 -#: templates/js/translated/stock.js:2748 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" @@ -13268,7 +13312,7 @@ msgstr "" msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2768 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" @@ -13550,7 +13594,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1209 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13887,7 +13931,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1855 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13945,513 +13989,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:100 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:131 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:362 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:368 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:459 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:475 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:480 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:501 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:543 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:568 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:593 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:597 templates/js/translated/stock.js:598 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:614 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:634 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:643 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:751 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:829 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:832 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:927 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:928 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1026 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1033 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1037 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1038 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1042 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1043 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1047 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1146 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1172 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1250 templates/js/translated/stock.js:3376 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1297 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1442 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1449 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1529 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1532 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1535 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1536 templates/js/translated/stock.js:1810 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1555 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1619 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1632 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1641 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1795 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1815 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1847 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1851 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1859 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1865 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1921 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1930 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1979 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2032 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2037 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2048 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2092 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2170 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2178 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2181 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2188 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2194 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2201 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2209 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2374 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2421 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2549 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2652 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2807 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2924 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2928 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2940 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2962 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2979 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2994 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3011 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3028 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3047 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3065 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3083 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3091 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3163 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3217 templates/js/translated/stock.js:3253 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3274 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3295 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3296 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3298 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3301 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3314 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3377 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3390 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14486,12 +14538,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14533,7 +14585,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14634,56 +14686,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14956,6 +15016,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" @@ -15059,4 +15127,3 @@ msgstr "" #: users/models.py:408 msgid "Permission to delete items" 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 52b1833fe7..afcd463580 100644 --- a/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-22 10:29+0000\n" +"POT-Creation-Date: 2024-08-01 05:45+0000\n" "PO-Revision-Date: 2023-02-28 22:38\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" @@ -62,8 +62,8 @@ msgstr "在管理面板中可以找到错误详细信息" msgid "Enter date" msgstr "输入日期" -#: InvenTree/fields.py:205 InvenTree/models.py:919 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:462 +#: build/serializers.py:540 build/templates/build/sidebar.html:29 #: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 @@ -71,20 +71,21 @@ msgstr "输入日期" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3264 part/templates/part/part_sidebar.html:63 +#: part/models.py:3291 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2361 stock/models.py:2488 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:979 +#: stock/serializers.py:1029 stock/serializers.py:1340 +#: stock/serializers.py:1429 stock/serializers.py:1594 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 #: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "备注" @@ -97,47 +98,51 @@ msgstr "值 '{name}' 没有以模式格式显示" msgid "Provided value does not match required pattern: " msgstr "提供的值与所需模式不匹配: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "输入密码" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "输入新密码" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "确认密码" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "确认新密码" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "旧密码" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "Email (再次)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Email 地址确认" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "您必须输入相同的 Email 。" -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "所提供的主要电子邮件地址无效。" -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "提供的电子邮件域未被核准。" -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "" @@ -425,120 +430,120 @@ msgstr "引用必须匹配所需的图案" msgid "Reference number is too large" msgstr "参考编号过大" -#: InvenTree/models.py:720 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:737 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "选择无效" -#: InvenTree/models.py:767 common/models.py:2692 common/models.py:3122 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 #: common/serializers.py:412 company/models.py:593 machine/models.py:24 -#: part/models.py:956 part/models.py:3731 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: part/models.py:983 part/models.py:3758 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "名称" -#: InvenTree/models.py:773 build/models.py:249 +#: InvenTree/models.py:776 build/models.py:249 #: build/templates/build/detail.html:24 common/models.py:156 #: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1348 part/admin.py:305 part/admin.py:408 part/models.py:979 -#: part/models.py:3746 part/templates/part/category.html:82 +#: order/models.py:1348 part/admin.py:305 part/admin.py:411 part/models.py:1006 +#: part/models.py:3773 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:298 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "描述信息" -#: InvenTree/models.py:774 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "描述 (可选)" -#: InvenTree/models.py:789 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "路径" -#: InvenTree/models.py:919 +#: InvenTree/models.py:929 #, fuzzy #| msgid "Add transaction note (optional)" msgid "Markdown notes (optional)" msgstr "添加交易备注 (可选)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "条码数据" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "第三方条形码数据" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "条码哈希" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "条码数据的唯一哈希" -#: InvenTree/models.py:1025 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "发现现有条码" -#: InvenTree/models.py:1068 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "服务器错误" -#: InvenTree/models.py:1069 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "服务器记录了一个错误。" -#: InvenTree/serializers.py:63 part/models.py:4354 +#: InvenTree/serializers.py:63 part/models.py:4381 msgid "Must be a valid number" msgstr "必须是有效数字" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3082 +#: company/templates/company/company_base.html:112 part/models.py:3109 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -590,16 +595,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2697 company/models.py:163 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 #: company/models.py:801 machine/models.py:39 part/admin.py:88 -#: part/models.py:1156 plugin/models.py:66 +#: part/models.py:1183 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -691,7 +696,7 @@ msgstr "远程图像文件的 URL" msgid "Downloading images from remote URL is not enabled" msgstr "未启用从远程 URL下载图像" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "后台工作人员检查失败" @@ -757,32 +762,32 @@ msgstr "关于 InventTree" msgid "Build must be cancelled before it can be deleted" msgstr "在删除前必须取消生产" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4232 +#: build/api.py:291 build/serializers.py:1234 part/models.py:4259 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4226 +#: build/api.py:292 build/serializers.py:1235 part/models.py:4253 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "可选项" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" @@ -790,13 +795,13 @@ msgstr "" #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "空闲" @@ -805,7 +810,7 @@ msgstr "空闲" #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "生产订单" @@ -858,16 +863,16 @@ msgstr "相关生产订单" #: build/models.py:241 build/serializers.py:1233 order/models.py:468 #: order/models.py:945 order/models.py:1308 order/models.py:2070 -#: part/admin.py:411 part/models.py:4247 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4274 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 #: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "引用" @@ -891,11 +896,11 @@ msgstr "此次生产匹配的订单" #: build/templates/build/build_base.html:97 #: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:759 #: order/models.py:1438 order/models.py:1593 order/models.py:1594 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3093 -#: part/models.py:3237 part/models.py:3385 part/models.py:3406 -#: part/models.py:3428 part/models.py:3564 part/models.py:3904 -#: part/models.py:4067 part/models.py:4198 part/models.py:4557 -#: part/serializers.py:1182 part/serializers.py:1812 +#: part/api.py:1504 part/api.py:1800 part/models.py:424 part/models.py:3120 +#: part/models.py:3264 part/models.py:3412 part/models.py:3433 +#: part/models.py:3455 part/models.py:3591 part/models.py:3931 +#: part/models.py:4094 part/models.py:4225 part/models.py:4584 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -907,35 +912,35 @@ msgstr "此次生产匹配的订单" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:913 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "商品" @@ -952,7 +957,7 @@ msgid "SalesOrder to which this build is allocated" msgstr "此次生产匹配的销售订单" #: build/models.py:288 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "来源地点" @@ -994,9 +999,9 @@ msgid "Build status code" msgstr "生产状态代码" #: build/models.py:331 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:847 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: order/serializers.py:641 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1559 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "批量代码" @@ -1005,7 +1010,7 @@ msgid "Batch code for this build output" msgstr "此生产产出的批量代码" #: build/models.py:338 order/models.py:316 order/serializers.py:127 -#: part/models.py:1196 part/templates/part/part_base.html:319 +#: part/models.py:1223 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" @@ -1020,7 +1025,7 @@ msgid "Target date for build completion. Build will be overdue after this date." msgstr "生产完成的目标日期。生产将在此日期之后逾期。" #: build/models.py:346 order/models.py:526 order/models.py:2115 -#: templates/js/translated/build.js:2422 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "完成日期:" @@ -1028,7 +1033,7 @@ msgstr "完成日期:" msgid "completed by" msgstr "完成人" -#: build/models.py:360 templates/js/translated/build.js:2382 +#: build/models.py:360 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "发布者" @@ -1040,14 +1045,14 @@ msgstr "发布此生产订单的用户" #: build/templates/build/detail.html:122 common/models.py:165 #: order/models.py:334 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1213 +#: order/templates/order/sales_order_base.html:232 part/models.py:1240 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "责任人" @@ -1061,14 +1066,14 @@ msgstr "构建此订单的用户或组" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:843 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "外部链接" -#: build/models.py:376 common/models.py:3263 part/models.py:1031 -#: stock/models.py:843 +#: build/models.py:376 common/models.py:3265 part/models.py:1058 +#: stock/models.py:855 msgid "Link to external URL" msgstr "链接到外部 URL" @@ -1083,8 +1088,8 @@ msgstr "此构建订单的优先级" #: build/models.py:390 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1127,8 +1132,8 @@ msgstr "生产产出与订单不匹配" #: build/models.py:967 build/serializers.py:229 build/serializers.py:278 #: build/serializers.py:876 order/models.py:564 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:688 stock/models.py:1508 stock/serializers.py:666 +#: order/serializers.py:636 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:666 msgid "Quantity must be greater than zero" msgstr "数量必须大于0" @@ -1158,10 +1163,10 @@ msgstr "生产备注" #: build/models.py:1412 build/models.py:1668 build/serializers.py:216 #: build/serializers.py:263 build/serializers.py:1240 #: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2569 +#: build/templates/build/detail.html:34 common/models.py:2571 #: order/models.py:1291 order/models.py:1976 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3251 part/models.py:4220 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3278 part/models.py:4247 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1178,28 +1183,28 @@ msgstr "生产备注" #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:304 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "数量" @@ -1237,20 +1242,20 @@ msgid "Selected stock item does not match BOM line" msgstr "在BOM中找不到选定的库存项" #: build/models.py:1655 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:364 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: order/serializers.py:1278 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:760 stock/serializers.py:1278 stock/serializers.py:1390 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "库存项" @@ -1271,7 +1276,7 @@ msgid "Destination stock item" msgstr "目标库存项" #: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4069 part/stocktake.py:220 +#: part/admin.py:41 part/admin.py:408 part/models.py:4096 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" @@ -1283,7 +1288,7 @@ msgid "Project Code Label" msgstr "商品二维码" #: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "生产产出" @@ -1317,7 +1322,7 @@ msgstr "需要整数型数值,因为BOM包含可追踪的部件" #: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 #: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "序列号" @@ -1327,21 +1332,21 @@ msgstr "输入生产产出的序列号" #: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 #: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:688 +#: stock/serializers.py:848 stock/serializers.py:974 stock/serializers.py:1422 +#: stock/serializers.py:1678 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "地点" @@ -1402,15 +1407,15 @@ msgstr "已完成生产产出的仓储地点" #: build/serializers.py:529 build/templates/build/build_base.html:151 #: build/templates/build/detail.html:62 order/models.py:969 #: order/models.py:2094 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: stock/serializers.py:1025 stock/serializers.py:1566 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "状态" @@ -1518,7 +1523,7 @@ msgstr "删除参数" msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part 必须与生产订单指向相同的部件" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:862 stock/serializers.py:1291 msgid "Item must be in stock" msgstr "项目必须在库存中" @@ -1607,34 +1612,34 @@ msgid "BOM Reference" msgstr "引用" #: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4068 part/stocktake.py:219 stock/admin.py:152 +#: part/models.py:4095 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "商品ID" #: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4070 +#: part/models.py:4097 msgid "Part IPN" msgstr "" #: build/serializers.py:1146 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:833 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "序列号" #: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 #, fuzzy #| msgid "Allocated Parts" msgid "Allocated Quantity" @@ -1661,9 +1666,9 @@ msgid "Part Category Name" msgstr "商品类别" #: build/serializers.py:1236 common/models.py:1513 part/admin.py:113 -#: part/models.py:1139 templates/js/translated/table_filters.js:147 +#: part/models.py:1166 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "可追踪" @@ -1671,13 +1676,13 @@ msgstr "可追踪" msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4280 +#: build/serializers.py:1238 part/models.py:4307 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4077 part/models.py:4549 +#: build/serializers.py:1242 part/models.py:4104 part/models.py:4576 #: stock/api.py:796 msgid "BOM Item" msgstr "BOM项" @@ -1687,22 +1692,22 @@ msgstr "BOM项" msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1256 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1261 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "正在生产" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1266 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" @@ -1726,7 +1731,7 @@ msgstr "可用库存" msgid "Total Available Stock" msgstr "可用库存" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1273 part/serializers.py:904 #, fuzzy #| msgid "External Link" msgid "External Stock" @@ -1734,7 +1739,7 @@ msgstr "外部链接" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 #: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "待定" @@ -1781,8 +1786,8 @@ msgstr "商品名称" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1793,7 +1798,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1804,7 +1809,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1817,7 +1822,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1888,11 +1893,11 @@ msgstr "库存尚未被完全分配到此构建订单" #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:196 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" @@ -1909,9 +1914,9 @@ msgstr "此次生产的截止日期为 %(target)s" #: order/templates/order/return_order_base.html:117 #: order/templates/order/sales_order_base.html:126 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "逾期" @@ -1932,7 +1937,7 @@ msgstr "已完成输出" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "销售订单" @@ -1944,7 +1949,7 @@ msgid "Issued By" msgstr "发布者" #: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "优先级" @@ -1977,7 +1982,7 @@ msgid "Stock can be taken from any available location." msgstr "库存可以从任何可用的地点获得。" #: build/templates/build/detail.html:49 order/models.py:1467 -#: templates/js/translated/purchase_order.js:2260 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "目的地" @@ -1991,11 +1996,11 @@ msgstr "已分配的部件" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" @@ -2005,7 +2010,7 @@ msgstr "批量" #: order/templates/order/order_base.html:173 #: order/templates/order/return_order_base.html:151 #: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "已创建" @@ -2015,7 +2020,7 @@ msgstr "无预计日期" #: build/templates/build/detail.html:149 #: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "已完成" @@ -2098,7 +2103,13 @@ msgstr "最低库存" msgid "Completed Build Outputs" msgstr "已完成构建输出" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +#, fuzzy +#| msgid "Build status" +msgid "Build test statistics" +msgstr "生产状态" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -2108,27 +2119,27 @@ msgstr "已完成构建输出" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "附件" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "生产备注" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "分配完成" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 #, fuzzy #| msgid "Required stock has not been fully allocated" msgid "All lines have been fully allocated" msgstr "所需库存尚未完全分配" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "新建生产订单" @@ -2150,19 +2161,26 @@ msgstr "" msgid "Incomplete Outputs" msgstr "未完成输出" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +#, fuzzy +#| msgid "Destination" +msgid "Test Statistics" +msgstr "目的地" + +#: common/api.py:692 #, fuzzy #| msgid "Link" msgid "Is Link" msgstr "链接" -#: common/api.py:698 +#: common/api.py:700 #, fuzzy #| msgid "File" msgid "Is File" msgstr "文件" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2371,8 +2389,8 @@ msgstr "" #: common/models.py:1295 common/models.py:1351 common/models.py:1364 #: common/models.py:1372 common/models.py:1381 common/models.py:1390 -#: common/models.py:1626 common/models.py:1648 common/models.py:1763 -#: common/models.py:2136 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "天" @@ -2612,11 +2630,11 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1483 part/admin.py:108 part/models.py:3912 +#: common/models.py:1483 part/admin.py:108 part/models.py:3939 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "模板" @@ -2624,10 +2642,10 @@ msgstr "模板" msgid "Parts are templates by default" msgstr "" -#: common/models.py:1489 part/admin.py:91 part/admin.py:425 part/models.py:1127 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1154 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "组装" @@ -2635,8 +2653,8 @@ msgstr "组装" msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1495 part/admin.py:95 part/models.py:1133 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1160 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "组件" @@ -2644,7 +2662,7 @@ msgstr "组件" msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1501 part/admin.py:100 part/models.py:1145 +#: common/models.py:1501 part/admin.py:100 part/models.py:1172 msgid "Purchaseable" msgstr "可购买" @@ -2652,8 +2670,8 @@ msgstr "可购买" msgid "Parts are purchaseable by default" msgstr "商品默认可购买" -#: common/models.py:1507 part/admin.py:104 part/models.py:1151 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1178 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "可销售" @@ -2665,10 +2683,10 @@ msgstr "商品默认可销售" msgid "Parts are trackable by default" msgstr "商品默认可跟踪" -#: common/models.py:1519 part/admin.py:117 part/models.py:1167 +#: common/models.py:1519 part/admin.py:117 part/models.py:1194 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "虚拟" @@ -2700,7 +2718,7 @@ msgstr "" msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1543 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" @@ -2724,1229 +2742,1229 @@ msgstr "" msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1563 +#: common/models.py:1564 #, fuzzy #| msgid "Parameter units" msgid "Enforce Parameter Units" msgstr "参数单位" -#: common/models.py:1565 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1571 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1573 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1584 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1586 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1597 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1599 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1605 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1607 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1613 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1615 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1621 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1623 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1630 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1631 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1636 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1638 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1644 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1646 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1653 +#: common/models.py:1654 msgid "Internal Prices" msgstr "内部价格" -#: common/models.py:1654 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "启用内部商品价格" -#: common/models.py:1659 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1661 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1667 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1668 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1673 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1675 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1681 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1682 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1687 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "调试模式" -#: common/models.py:1688 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "在调试模式生成报告(HTML输出)" -#: common/models.py:1693 +#: common/models.py:1694 #, fuzzy #| msgid "No Reports Found" msgid "Log Report Errors" msgstr "没有找到报表" -#: common/models.py:1694 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1699 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "页面大小" -#: common/models.py:1700 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "PDF 报表默认页面大小" -#: common/models.py:1705 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1706 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "启用生成测试报表" -#: common/models.py:1711 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1713 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1719 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1720 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1725 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1726 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1731 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1733 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1739 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1741 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1746 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "库存到期" -#: common/models.py:1747 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "启用库存到期功能" -#: common/models.py:1752 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "销售过期库存" -#: common/models.py:1753 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "允许销售过期库存" -#: common/models.py:1758 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1760 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1767 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1768 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1773 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "库存所有权控制" -#: common/models.py:1774 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1779 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1780 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1784 +#: common/models.py:1786 #, fuzzy #| msgid "Select Stock Items" msgid "Show Installed Stock Items" msgstr "选择库存项" -#: common/models.py:1785 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1790 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1792 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1798 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1800 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1806 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1808 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1814 common/models.py:1862 common/models.py:1884 -#: common/models.py:1920 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 #, fuzzy #| msgid "Responsible" msgid "Require Responsible Owner" msgstr "责任人" -#: common/models.py:1815 common/models.py:1863 common/models.py:1885 -#: common/models.py:1921 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1820 +#: common/models.py:1822 #, fuzzy #| msgid "Build to allocate parts" msgid "Require Active Part" msgstr "生产以分配部件" -#: common/models.py:1821 +#: common/models.py:1823 #, fuzzy #| msgid "Print build order report" msgid "Prevent build order creation for inactive parts" msgstr "打印构建订单报告" -#: common/models.py:1826 +#: common/models.py:1828 #, fuzzy #| msgid "Build to allocate parts" msgid "Require Locked Part" msgstr "生产以分配部件" -#: common/models.py:1827 +#: common/models.py:1829 #, fuzzy #| msgid "Print build order report" msgid "Prevent build order creation for unlocked parts" msgstr "打印构建订单报告" -#: common/models.py:1832 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1834 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1840 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1842 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1848 +#: common/models.py:1850 #, fuzzy #| msgid "Sales Orders" msgid "Enable Return Orders" msgstr "销售订单" -#: common/models.py:1849 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1854 +#: common/models.py:1856 #, fuzzy #| msgid "Build Order Reference" msgid "Return Order Reference Pattern" msgstr "相关生产订单" -#: common/models.py:1856 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1868 +#: common/models.py:1870 #, fuzzy #| msgid "Complete Build Order" msgid "Edit Completed Return Orders" msgstr "生产订单完成" -#: common/models.py:1870 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1876 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1878 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1890 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1891 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1896 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1898 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1904 +#: common/models.py:1906 #, fuzzy #| msgid "Build Order is incomplete" msgid "Mark Shipped Orders as Complete" msgstr "生产订单未完成" -#: common/models.py:1906 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1912 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1914 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1926 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1928 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1934 +#: common/models.py:1936 #, fuzzy #| msgid "Create Purchase Order" msgid "Auto Complete Purchase Orders" msgstr "创建采购订单" -#: common/models.py:1936 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1943 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1944 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1949 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1950 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1955 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1956 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1961 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1963 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1969 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1971 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1977 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1979 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1985 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1987 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1993 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1995 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:2001 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:2002 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:2007 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:2009 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:2015 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:2016 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2021 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2022 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2027 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2029 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2035 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2037 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2043 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2044 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2049 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2051 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2059 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2060 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2066 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2067 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2073 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2074 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2080 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2081 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2087 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2088 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2094 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2095 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2101 +#: common/models.py:2103 #, fuzzy #| msgid "Sales Orders" msgid "Enable project codes" msgstr "销售订单" -#: common/models.py:2102 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2107 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2109 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2115 +#: common/models.py:2117 #, fuzzy #| msgid "Exclude Location" msgid "Exclude External Locations" msgstr "排除地点" -#: common/models.py:2117 +#: common/models.py:2119 #, fuzzy #| msgid "Exclude stock items from this selected location" msgid "Exclude stock items in external locations from stocktake calculations" msgstr "从该选定的仓储地点排除库存项" -#: common/models.py:2123 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2125 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2131 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2133 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2140 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2141 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2146 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2147 +#: common/models.py:2149 #, fuzzy #| msgid "Enable generation of test reports" msgid "Enable test station data collection for test results" msgstr "启用生成测试报表" -#: common/models.py:2159 common/models.py:2539 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2202 +#: common/models.py:2204 #, fuzzy #| msgid "Build to allocate parts" msgid "Hide inactive parts" msgstr "生产以分配部件" -#: common/models.py:2204 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2210 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2211 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2216 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2217 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2222 +#: common/models.py:2224 msgid "Show latest parts" msgstr "显示最近商品" -#: common/models.py:2223 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "在主页上显示最近商品" -#: common/models.py:2228 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2229 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2234 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2235 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2240 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2241 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2246 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2247 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2252 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2253 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2258 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2259 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2264 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2265 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2270 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2271 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2276 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "显示逾期生产" -#: common/models.py:2277 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "在主页上显示逾期的生产" -#: common/models.py:2282 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2283 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2288 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2289 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2294 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2295 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2300 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2301 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2306 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2307 +#: common/models.py:2309 #, fuzzy #| msgid "Show latest parts on the homepage" msgid "Show pending SO shipments on the homepage" msgstr "在主页上显示最近商品" -#: common/models.py:2312 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2313 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2318 +#: common/models.py:2320 msgid "Inline label display" msgstr "内嵌标签显示" -#: common/models.py:2320 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "在浏览器中显示 PDF 标签,而不是以文件形式下载" -#: common/models.py:2326 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2328 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2334 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2336 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "在浏览器中显示 PDF 报告,而不是以文件形式下载" -#: common/models.py:2342 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2343 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2348 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2349 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2354 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2355 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2360 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2361 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2366 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2367 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2372 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2373 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2378 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2380 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2386 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2387 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2392 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2393 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2398 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2399 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2404 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2405 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2410 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2412 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2418 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2419 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2424 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2426 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2432 +#: common/models.py:2434 #, fuzzy #| msgid "Purchase Orders" msgid "Search Return Orders" msgstr "采购订单" -#: common/models.py:2433 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2438 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2440 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2446 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "搜索预览结果" -#: common/models.py:2448 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2454 +#: common/models.py:2456 #, fuzzy #| msgid "Search" msgid "Regex Search" msgstr "搜索" -#: common/models.py:2455 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2460 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2461 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2466 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "在表格中显示数量" -#: common/models.py:2467 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "在某些表格中显示可用的商品数量" -#: common/models.py:2472 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2473 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2478 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2479 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2484 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2485 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2498 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2499 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2504 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2506 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2512 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2514 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2520 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2521 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2526 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2527 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2547 common/models.py:2548 common/models.py:2705 -#: common/models.py:2706 common/models.py:2951 common/models.py:2952 -#: common/models.py:3278 common/models.py:3279 importer/models.py:88 -#: part/models.py:3274 part/models.py:3361 part/models.py:3435 -#: part/models.py:3463 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3301 part/models.py:3388 part/models.py:3462 +#: part/models.py:3490 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "用户" -#: common/models.py:2570 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2577 company/serializers.py:508 order/admin.py:42 +#: common/models.py:2579 company/serializers.py:508 order/admin.py:42 #: order/models.py:1365 order/models.py:2316 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "价格" -#: common/models.py:2578 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2682 common/models.py:2867 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2683 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2693 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2697 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2713 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "令牌" -#: common/models.py:2714 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2722 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2723 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2831 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2832 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2840 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2841 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2849 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2850 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2857 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2858 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2868 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2873 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2874 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3000 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:3002 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3004 common/models.py:3262 company/models.py:149 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 #: company/models.py:446 company/models.py:512 company/models.py:818 #: order/models.py:303 order/models.py:1320 order/models.py:1752 -#: part/admin.py:55 part/models.py:1030 +#: part/admin.py:55 part/models.py:1057 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 #: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "链接" -#: common/models.py:3006 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3008 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3010 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3013 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:3013 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3030 company/models.py:159 part/models.py:1040 +#: common/models.py:3032 company/models.py:159 part/models.py:1067 #: 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 @@ -3956,120 +3974,120 @@ msgstr "" msgid "Image" msgstr "图片" -#: common/models.py:3030 +#: common/models.py:3032 #, fuzzy #| msgid "Image" msgid "Image file" msgstr "图片" -#: common/models.py:3042 common/models.py:3246 +#: common/models.py:3044 common/models.py:3248 #, fuzzy #| msgid "Part Parameter Templates" msgid "Target model type for this image" msgstr "商品参数模板" -#: common/models.py:3046 +#: common/models.py:3048 #, fuzzy #| msgid "Part Parameter Templates" msgid "Target model ID for this image" msgstr "商品参数模板" -#: common/models.py:3068 +#: common/models.py:3070 #, fuzzy #| msgid "New Customer" msgid "Custom Unit" msgstr "新建客户" -#: common/models.py:3089 +#: common/models.py:3091 #, fuzzy #| msgid "Key string must be unique" msgid "Unit symbol must be unique" msgstr "关键字必须是唯一的" -#: common/models.py:3104 +#: common/models.py:3106 #, fuzzy #| msgid "Must be a valid number" msgid "Unit name must be a valid identifier" msgstr "必须是有效数字" -#: common/models.py:3123 +#: common/models.py:3125 #, fuzzy #| msgid "Part name" msgid "Unit name" msgstr "商品名称" -#: common/models.py:3130 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3131 +#: common/models.py:3133 #, fuzzy #| msgid "Optional Items" msgid "Optional unit symbol" msgstr "可选项目" -#: common/models.py:3137 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 #, fuzzy #| msgid "Destination" msgid "Definition" msgstr "目的地" -#: common/models.py:3138 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3196 common/models.py:3253 stock/models.py:2483 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "附件" -#: common/models.py:3208 +#: common/models.py:3210 msgid "Missing file" msgstr "缺少文件" -#: common/models.py:3209 +#: common/models.py:3211 msgid "Missing external link" msgstr "缺少外部链接" -#: common/models.py:3254 +#: common/models.py:3256 msgid "Select file to attach" msgstr "选择附件" -#: common/models.py:3269 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "注释" -#: common/models.py:3270 +#: common/models.py:3272 #, fuzzy #| msgid "Attachments" msgid "Attachment comment" msgstr "附件" -#: common/models.py:3286 +#: common/models.py:3288 #, fuzzy #| msgid "upload date" msgid "Upload date" msgstr "上传日期" -#: common/models.py:3287 +#: common/models.py:3289 #, fuzzy #| msgid "Select file to upload" msgid "Date the file was uploaded" msgstr "选择要上传的文件" -#: common/models.py:3291 +#: common/models.py:3293 #, fuzzy #| msgid "File Fields" msgid "File size" msgstr "文件字段" -#: common/models.py:3291 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3329 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -4195,31 +4213,31 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 #, fuzzy #| msgid "No data rows provided" msgid "No attachment model type provided" msgstr "没有提供数据行" -#: common/validators.py:39 +#: common/validators.py:41 #, fuzzy #| msgid "Invalid attachment directory" msgid "Invalid attachment model type" msgstr "非法的附件目录" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "不允许空域。" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "无效的域名: {domain}" @@ -4515,7 +4533,7 @@ msgstr "描述 (可选)" msgid "Manufacturer Part" msgstr "制造商商品" -#: company/models.py:487 company/models.py:779 stock/models.py:775 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" @@ -4527,13 +4545,13 @@ msgstr "选择商品" #: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "制造商" @@ -4543,12 +4561,12 @@ msgstr "选择制造商" #: company/models.py:505 company/templates/company/manufacturer_part.html:101 #: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" @@ -4571,9 +4589,9 @@ msgid "Parameter name" msgstr "参数名称" #: company/models.py:600 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2475 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "数值" @@ -4582,10 +4600,10 @@ msgid "Parameter value" msgstr "参数值" #: company/models.py:608 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1120 part/models.py:3738 +#: part/admin.py:57 part/models.py:1147 part/models.py:3765 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "单位" @@ -4595,12 +4613,12 @@ msgstr "参数单位" #: company/models.py:662 company/templates/company/supplier_part.html:7 #: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:786 +#: order/serializers.py:462 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "供应商商品" @@ -4620,17 +4638,17 @@ msgstr "" #: company/models.py:789 company/templates/company/company_base.html:87 #: company/templates/company/supplier_part.html:129 order/models.py:491 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: order/templates/order/order_base.html:136 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "供应商" @@ -4638,7 +4656,7 @@ msgstr "供应商" msgid "Select supplier" msgstr "选择供应商" -#: company/models.py:796 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" @@ -4661,7 +4679,7 @@ msgid "Supplier part description" msgstr "供应商商品描述" #: company/models.py:835 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4255 +#: order/serializers.py:669 part/admin.py:415 part/models.py:4282 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4673,22 +4691,22 @@ msgstr "供应商商品描述" msgid "Note" msgstr "备注" -#: company/models.py:844 part/models.py:2084 +#: company/models.py:844 part/models.py:2111 msgid "base cost" msgstr "" -#: company/models.py:845 part/models.py:2085 +#: company/models.py:845 part/models.py:2112 msgid "Minimum charge (e.g. stocking fee)" msgstr "最低收费(例如库存费)" #: company/models.py:852 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:806 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 +#: order/serializers.py:661 stock/admin.py:228 stock/models.py:818 +#: stock/serializers.py:1576 stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1646 #: templates/js/translated/purchase_order.js:1169 #: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 msgid "Packaging" msgstr "打包" @@ -4697,12 +4715,12 @@ msgid "Part packaging" msgstr "商品打包" #: company/models.py:858 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" @@ -4710,7 +4728,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:879 part/models.py:2091 +#: company/models.py:879 part/models.py:2118 msgid "multiple" msgstr "" @@ -4746,7 +4764,7 @@ msgstr "该公司使用的默认货币" msgid "Company Name" msgstr "公司名称" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:388 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4757,8 +4775,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4820,15 +4838,15 @@ msgstr "" #: company/templates/company/company_base.html:92 order/models.py:957 #: order/models.py:2082 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:828 -#: stock/models.py:829 stock/serializers.py:1296 +#: order/templates/order/sales_order_base.html:148 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1326 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "客户" @@ -4878,7 +4896,7 @@ msgstr "创建新的供应商商品" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "新建供应商商品" @@ -4891,7 +4909,7 @@ msgstr "制造商商品" msgid "Create new manufacturer part" msgstr "新建制造商商品" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "新建制造商商品" @@ -4905,7 +4923,7 @@ msgstr "供货商库存" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4928,7 +4946,7 @@ msgstr "新建采购订单" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -5014,7 +5032,7 @@ msgstr "制造商" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "订购商品" @@ -5040,7 +5058,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -5049,12 +5067,12 @@ msgstr "供应商" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "参数" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -5067,7 +5085,7 @@ msgid "Manufacturer Part Notes" msgstr "制造商商品" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "添加参数" @@ -5101,7 +5119,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "订购商品" @@ -5135,11 +5153,11 @@ msgid "No supplier information available" msgstr "" #: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -5148,13 +5166,13 @@ msgid "Supplier Part Stock" msgstr "供货商商品库存" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -5191,16 +5209,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1011 stock/serializers.py:1189 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "库存项" @@ -5332,7 +5350,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3918 +#: importer/models.py:503 part/models.py:3945 msgid "Data" msgstr "" @@ -5571,7 +5589,7 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" @@ -5584,7 +5602,7 @@ msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5617,11 +5635,11 @@ msgstr "待定" #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" @@ -5630,7 +5648,7 @@ msgstr "" #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 #, fuzzy #| msgid "Returned" msgid "Return Order" @@ -5711,7 +5729,7 @@ msgid "Company from which the items are being ordered" msgstr "订购该商品的公司" #: order/models.py:503 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" @@ -5844,12 +5862,12 @@ msgid "Supplier part" msgstr "供应商商品" #: order/models.py:1446 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" @@ -5857,9 +5875,9 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1455 stock/models.py:947 stock/serializers.py:607 +#: order/models.py:1455 stock/models.py:959 stock/serializers.py:607 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "采购价格" @@ -5938,7 +5956,7 @@ msgid "User who checked this shipment" msgstr "" #: order/models.py:1730 order/models.py:1953 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/serializers.py:1538 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" @@ -6019,7 +6037,7 @@ msgid "Sales order shipment reference" msgstr "" #: order/models.py:1967 order/models.py:2290 -#: templates/js/translated/return_order.js:721 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" @@ -6071,7 +6089,7 @@ msgstr "" msgid "The date this this return item was received" msgstr "" -#: order/models.py:2309 templates/js/translated/return_order.js:732 +#: order/models.py:2309 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" @@ -6136,7 +6154,7 @@ msgstr "选择库存项" msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1006 +#: order/serializers.py:531 part/models.py:1033 msgid "Internal Part Number" msgstr "内部商品编号" @@ -6175,7 +6193,7 @@ msgid "Select destination location for received items" msgstr "" #: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" @@ -6506,12 +6524,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "移除行" @@ -6627,8 +6645,8 @@ msgstr "" #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" @@ -6707,8 +6725,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6738,21 +6756,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1005 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1032 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1014 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1041 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:987 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1014 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "关键词" @@ -6766,7 +6784,7 @@ msgstr "商品名称" msgid "Category ID" msgstr "类别 ID" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6779,11 +6797,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:973 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:1000 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1111 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1138 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "最低库存" @@ -6791,19 +6809,19 @@ msgstr "最低库存" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3169 part/models.py:3183 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3196 part/models.py:3210 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3176 part/models.py:3190 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3203 part/models.py:3217 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6815,19 +6833,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "类别路径" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:425 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "商品" @@ -6844,13 +6862,19 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +#, fuzzy +#| msgid "Part description" +msgid "Part Revision" +msgstr "商品描述" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" @@ -6892,7 +6916,7 @@ msgstr "" msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:180 templates/js/translated/part.js:308 #, fuzzy #| msgid "parent" msgid "Parent" @@ -6960,12 +6984,12 @@ msgstr "商品描述" msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:997 part/models.py:3456 part/models.py:4013 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1518 part/models.py:1024 part/models.py:3483 part/models.py:4040 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "类别" @@ -6973,13 +6997,13 @@ msgstr "类别" msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1050 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:108 part/models.py:1077 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "默认仓储地点" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6988,823 +7012,824 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4014 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4041 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "商品类别" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:90 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "商品类别" -#: part/models.py:106 +#: part/models.py:109 msgid "Default location for parts in this category" msgstr "此类别商品的默认仓储地点" -#: part/models.py:111 stock/models.py:180 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:114 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:116 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:125 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:126 msgid "Default keywords for parts in this category" msgstr "此类别商品的默认关键字" -#: part/models.py:129 stock/models.py:87 stock/models.py:163 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:132 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:164 +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:179 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:492 +#: part/models.py:519 #, fuzzy #| msgid "Print actions" msgid "Cannot delete this part as it is locked" msgstr "打印操作" -#: part/models.py:495 +#: part/models.py:522 #, fuzzy #| msgid "Print actions" msgid "Cannot delete this part as it is still active" msgstr "打印操作" -#: part/models.py:500 +#: part/models.py:527 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:538 +#: part/models.py:565 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:586 part/models.py:593 +#: part/models.py:613 part/models.py:620 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:605 +#: part/models.py:632 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:668 +#: part/models.py:695 #, fuzzy, python-brace-format #| msgid "IPN must match regex pattern {pat}" msgid "IPN must match regex pattern {pattern}" msgstr "IPN 必须匹配正则表达式 {pat}" -#: part/models.py:676 +#: part/models.py:703 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:683 +#: part/models.py:710 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:690 +#: part/models.py:717 #, fuzzy #| msgid "Destination location not specified" msgid "Revision code must be specified" msgstr "目标位置未指定" -#: part/models.py:697 +#: part/models.py:724 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:704 +#: part/models.py:731 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:710 +#: part/models.py:737 #, fuzzy #| msgid "Build output must point to the same build" msgid "Parent part must point to the same template" msgstr "生产产出必须指向相同的生产" -#: part/models.py:789 +#: part/models.py:816 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:890 +#: part/models.py:917 msgid "Duplicate IPN not allowed in part settings" msgstr "在商品设置中不允许重复的IPN" -#: part/models.py:899 +#: part/models.py:926 #, fuzzy #| msgid "Attachment with this filename already exists" msgid "Duplicate part revision already exists." msgstr "使用此文件名的附件已存在" -#: part/models.py:909 +#: part/models.py:936 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:924 +#: part/models.py:951 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:956 part/models.py:4069 +#: part/models.py:983 part/models.py:4096 msgid "Part name" msgstr "商品名称" -#: part/models.py:961 +#: part/models.py:988 msgid "Is Template" msgstr "" -#: part/models.py:962 +#: part/models.py:989 msgid "Is this part a template part?" msgstr "" -#: part/models.py:972 +#: part/models.py:999 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:980 +#: part/models.py:1007 #, fuzzy #| msgid "Description (optional)" msgid "Part description (optional)" msgstr "描述 (可选)" -#: part/models.py:988 +#: part/models.py:1015 msgid "Part keywords to improve visibility in search results" msgstr "提高搜索结果可见性的关键字" -#: part/models.py:998 +#: part/models.py:1025 msgid "Part category" msgstr "商品类别" -#: part/models.py:1013 +#: part/models.py:1040 msgid "Part revision or version number" msgstr "商品版本号" -#: part/models.py:1023 +#: part/models.py:1050 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1024 part/templates/part/part_base.html:277 +#: part/models.py:1051 part/templates/part/part_base.html:277 #, fuzzy #| msgid "Part description" msgid "Revision Of" msgstr "商品描述" -#: part/models.py:1048 +#: part/models.py:1075 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1094 part/templates/part/part_base.html:385 +#: part/models.py:1121 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1095 +#: part/models.py:1122 msgid "Default supplier part" msgstr "默认供应商商品" -#: part/models.py:1102 +#: part/models.py:1129 msgid "Default Expiry" msgstr "" -#: part/models.py:1103 +#: part/models.py:1130 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1112 +#: part/models.py:1139 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1121 +#: part/models.py:1148 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1128 +#: part/models.py:1155 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1134 +#: part/models.py:1161 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1140 +#: part/models.py:1167 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1146 +#: part/models.py:1173 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1152 +#: part/models.py:1179 msgid "Can this part be sold to customers?" msgstr "此商品可以销售给客户吗?" -#: part/models.py:1156 +#: part/models.py:1183 msgid "Is this part active?" msgstr "" -#: part/models.py:1161 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1188 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 #, fuzzy #| msgid "Stock Item" msgid "Locked" msgstr "库存项" -#: part/models.py:1162 +#: part/models.py:1189 #, fuzzy #| msgid "Order cannot be cancelled" msgid "Locked parts cannot be edited" msgstr "无法取消订单" -#: part/models.py:1168 +#: part/models.py:1195 msgid "Is this a virtual part, such as a software product or license?" msgstr "这是一个虚拟商品,如软件产品或许可证吗?" -#: part/models.py:1174 +#: part/models.py:1201 msgid "BOM checksum" msgstr "" -#: part/models.py:1175 +#: part/models.py:1202 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1183 +#: part/models.py:1210 msgid "BOM checked by" msgstr "" -#: part/models.py:1188 +#: part/models.py:1215 msgid "BOM checked date" msgstr "" -#: part/models.py:1204 +#: part/models.py:1231 msgid "Creation User" msgstr "新建用户" -#: part/models.py:1214 +#: part/models.py:1241 #, fuzzy #| msgid "User or group responsible for this order" msgid "Owner responsible for this part" msgstr "负责此订单的用户或群组" -#: part/models.py:1219 part/templates/part/part_base.html:348 +#: part/models.py:1246 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2092 +#: part/models.py:2119 msgid "Sell multiple" msgstr "" -#: part/models.py:3083 +#: part/models.py:3110 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3099 +#: part/models.py:3126 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3100 +#: part/models.py:3127 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3106 +#: part/models.py:3133 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3107 +#: part/models.py:3134 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3113 +#: part/models.py:3140 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3114 +#: part/models.py:3141 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3120 +#: part/models.py:3147 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3121 +#: part/models.py:3148 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3127 +#: part/models.py:3154 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3128 +#: part/models.py:3155 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3134 +#: part/models.py:3161 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3135 +#: part/models.py:3162 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3141 +#: part/models.py:3168 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3142 +#: part/models.py:3169 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3148 +#: part/models.py:3175 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3149 +#: part/models.py:3176 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3155 +#: part/models.py:3182 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3156 +#: part/models.py:3183 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3162 +#: part/models.py:3189 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3163 +#: part/models.py:3190 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3170 +#: part/models.py:3197 msgid "Override minimum cost" msgstr "" -#: part/models.py:3177 +#: part/models.py:3204 msgid "Override maximum cost" msgstr "" -#: part/models.py:3184 +#: part/models.py:3211 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3191 +#: part/models.py:3218 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3197 +#: part/models.py:3224 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3198 +#: part/models.py:3225 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3204 +#: part/models.py:3231 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3205 +#: part/models.py:3232 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3211 +#: part/models.py:3238 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3212 +#: part/models.py:3239 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3218 +#: part/models.py:3245 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3219 +#: part/models.py:3246 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3238 +#: part/models.py:3265 msgid "Part for stocktake" msgstr "" -#: part/models.py:3243 +#: part/models.py:3270 msgid "Item Count" msgstr "" -#: part/models.py:3244 +#: part/models.py:3271 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3252 +#: part/models.py:3279 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3256 part/models.py:3339 +#: part/models.py:3283 part/models.py:3366 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" -#: part/models.py:3257 +#: part/models.py:3284 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3265 +#: part/models.py:3292 msgid "Additional notes" msgstr "" -#: part/models.py:3275 +#: part/models.py:3302 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3281 +#: part/models.py:3308 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3282 +#: part/models.py:3309 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3288 +#: part/models.py:3315 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3289 +#: part/models.py:3316 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3345 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3372 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3346 +#: part/models.py:3373 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3351 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3378 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3352 +#: part/models.py:3379 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3362 +#: part/models.py:3389 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3372 +#: part/models.py:3399 #, fuzzy #| msgid "Sale Price" msgid "Part Sale Price Break" msgstr "销售价格" -#: part/models.py:3484 +#: part/models.py:3511 #, fuzzy #| msgid "Parameter Template" msgid "Part Test Template" msgstr "参数模板" -#: part/models.py:3510 +#: part/models.py:3537 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3531 part/models.py:3700 +#: part/models.py:3558 part/models.py:3727 #, fuzzy #| msgid "Key string must be unique" msgid "Choices must be unique" msgstr "关键字必须是唯一的" -#: part/models.py:3542 +#: part/models.py:3569 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3553 +#: part/models.py:3580 #, fuzzy #| msgid "Attachment with this filename already exists" msgid "Test template with the same key already exists for part" msgstr "使用此文件名的附件已存在" -#: part/models.py:3570 templates/js/translated/part.js:2899 +#: part/models.py:3597 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3571 +#: part/models.py:3598 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3577 +#: part/models.py:3604 msgid "Test Key" msgstr "" -#: part/models.py:3578 +#: part/models.py:3605 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3585 +#: part/models.py:3612 msgid "Test Description" msgstr "" -#: part/models.py:3586 +#: part/models.py:3613 msgid "Enter description for this test" msgstr "" -#: part/models.py:3590 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3617 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "已启用" -#: part/models.py:3590 +#: part/models.py:3617 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3595 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3622 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" -#: part/models.py:3596 +#: part/models.py:3623 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3601 templates/js/translated/part.js:2936 +#: part/models.py:3628 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3602 +#: part/models.py:3629 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3607 templates/js/translated/part.js:2943 +#: part/models.py:3634 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3609 +#: part/models.py:3636 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3615 part/models.py:3759 templates/js/translated/part.js:1642 +#: part/models.py:3642 part/models.py:3786 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3616 +#: part/models.py:3643 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3648 +#: part/models.py:3675 #, fuzzy #| msgid "Part Parameter Templates" msgid "Part Parameter Template" msgstr "商品参数模板" -#: part/models.py:3675 +#: part/models.py:3702 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3680 +#: part/models.py:3707 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3717 +#: part/models.py:3744 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3732 +#: part/models.py:3759 msgid "Parameter Name" msgstr "" -#: part/models.py:3739 +#: part/models.py:3766 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3747 +#: part/models.py:3774 msgid "Parameter description" msgstr "" -#: part/models.py:3753 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3780 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3754 +#: part/models.py:3781 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3760 +#: part/models.py:3787 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3794 +#: part/models.py:3821 #, fuzzy #| msgid "Part Parameters" msgid "Part Parameter" msgstr "商品参数" -#: part/models.py:3820 +#: part/models.py:3847 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3856 +#: part/models.py:3883 #, fuzzy #| msgid "Invalid choice for parent build" msgid "Invalid choice for parameter value" msgstr "上级生产选项无效" -#: part/models.py:3905 +#: part/models.py:3932 msgid "Parent Part" msgstr "" -#: part/models.py:3913 part/models.py:4021 part/models.py:4022 +#: part/models.py:3940 part/models.py:4048 part/models.py:4049 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "参数模板" -#: part/models.py:3919 +#: part/models.py:3946 msgid "Parameter Value" msgstr "" -#: part/models.py:3969 +#: part/models.py:3996 #, fuzzy #| msgid "Create Category Parameter Template" msgid "Part Category Parameter Template" msgstr "创建类别参数模板" -#: part/models.py:4028 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4055 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "默认值" -#: part/models.py:4029 +#: part/models.py:4056 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4067 +#: part/models.py:4094 msgid "Part ID or part name" msgstr "" -#: part/models.py:4068 +#: part/models.py:4095 msgid "Unique part ID value" msgstr "" -#: part/models.py:4070 +#: part/models.py:4097 msgid "Part IPN value" msgstr "" -#: part/models.py:4071 +#: part/models.py:4098 msgid "Level" msgstr "" -#: part/models.py:4071 +#: part/models.py:4098 msgid "BOM level" msgstr "" -#: part/models.py:4182 +#: part/models.py:4209 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4189 +#: part/models.py:4216 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4199 +#: part/models.py:4226 msgid "Select parent part" msgstr "" -#: part/models.py:4209 +#: part/models.py:4236 msgid "Sub part" msgstr "" -#: part/models.py:4210 +#: part/models.py:4237 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4221 +#: part/models.py:4248 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4227 +#: part/models.py:4254 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4233 +#: part/models.py:4260 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4240 part/templates/part/upload_bom.html:55 +#: part/models.py:4267 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4241 +#: part/models.py:4268 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4248 +#: part/models.py:4275 msgid "BOM item reference" msgstr "" -#: part/models.py:4256 +#: part/models.py:4283 msgid "BOM item notes" msgstr "" -#: part/models.py:4262 +#: part/models.py:4289 msgid "Checksum" msgstr "" -#: part/models.py:4263 +#: part/models.py:4290 msgid "BOM line checksum" msgstr "" -#: part/models.py:4268 templates/js/translated/table_filters.js:174 +#: part/models.py:4295 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4269 +#: part/models.py:4296 #, fuzzy #| msgid "Some stock items have been overallocated" msgid "This BOM item has been validated" msgstr "一些库存项已被过度分配" -#: part/models.py:4274 part/templates/part/upload_bom.html:57 +#: part/models.py:4301 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4275 +#: part/models.py:4302 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4281 +#: part/models.py:4308 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4366 stock/models.py:673 +#: part/models.py:4393 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4376 part/models.py:4378 +#: part/models.py:4403 part/models.py:4405 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4516 +#: part/models.py:4543 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4537 +#: part/models.py:4564 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4550 +#: part/models.py:4577 msgid "Parent BOM item" msgstr "" -#: part/models.py:4558 +#: part/models.py:4585 msgid "Substitute part" msgstr "" -#: part/models.py:4574 +#: part/models.py:4601 msgid "Part 1" msgstr "" -#: part/models.py:4582 +#: part/models.py:4609 msgid "Part 2" msgstr "" -#: part/models.py:4583 +#: part/models.py:4610 msgid "Select Related Part" msgstr "" -#: part/models.py:4602 +#: part/models.py:4629 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4607 +#: part/models.py:4634 msgid "Duplicate relationship already exists" msgstr "" @@ -7814,360 +7839,390 @@ msgstr "" msgid "Parent Category" msgstr "商品类别" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "子类别" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:613 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 #, fuzzy #| msgid "Rejected" msgid "No parts selected" msgstr "已拒绝" -#: part/serializers.py:422 +#: part/serializers.py:430 #, fuzzy #| msgid "Set category" msgid "Select category" msgstr "设置类别" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 #, fuzzy #| msgid "Company Notes" msgid "Copy Notes" msgstr "公司备注" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 #, fuzzy #| msgid "Part description" msgid "Revisions" msgstr "商品描述" -#: part/serializers.py:898 +#: part/serializers.py:906 #, fuzzy #| msgid "Unallocate Stock" msgid "Unallocated Stock" msgstr "未分配库存" -#: part/serializers.py:901 +#: part/serializers.py:909 #, fuzzy #| msgid "Part Stock" msgid "Variant Stock" msgstr "商品库存" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "复制部件" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "复制类别参数" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 #, fuzzy #| msgid "Existing barcode found" msgid "Existing Image" msgstr "发现现有条码" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 #, fuzzy #| msgid "Part image not found" msgid "Image file does not exist" msgstr "未找到商品图像" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 #, fuzzy #| msgid "Exclude stock items from this selected location" msgid "Exclude stock items in external locations" msgstr "从该选定的仓储地点排除库存项" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 #, fuzzy #| msgid "Uses default currency" msgid "Minimum price currency" msgstr "使用默认货币" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 #, fuzzy #| msgid "Uses default currency" msgid "Maximum price currency" msgstr "使用默认货币" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +#, fuzzy +#| msgid "Select Label Template" +msgid "Select the parent assembly" +msgstr "选择标签模板" + +#: part/serializers.py:1583 +#, fuzzy +#| msgid "Component" +msgid "Component Name" +msgstr "组件" + +#: part/serializers.py:1586 +#, fuzzy +#| msgid "Component" +msgid "Component IPN" +msgstr "组件" + +#: part/serializers.py:1589 +#, fuzzy +#| msgid "Company description" +msgid "Component Description" +msgstr "公司简介" + +#: part/serializers.py:1595 +#, fuzzy +#| msgid "Select Label Template" +msgid "Select the component part" +msgstr "选择标签模板" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -8217,65 +8272,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "一些库存项已被过度分配" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "商品 (包括子类别)" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "新建商品" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "新商品" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "商品参数" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "新建商品类别" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -8323,7 +8378,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -8335,101 +8390,107 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +#, fuzzy +#| msgid "Parameter Template" +msgid "Part Test Statistics" +msgstr "参数模板" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "商品供应商" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "商品制造商" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8488,7 +8549,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "打印标签" @@ -8498,7 +8559,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -8510,7 +8571,7 @@ msgstr "清点商品库存" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8580,7 +8641,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8669,13 +8730,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "库存" @@ -8713,7 +8774,7 @@ msgstr "商品价格" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8723,7 +8784,7 @@ msgstr "编辑" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8799,9 +8860,9 @@ msgid "Update Pricing" msgstr "商品价格" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8911,7 +8972,7 @@ msgid "Model instance not found" msgstr "未找到商品图像" #: plugin/base/barcodes/api.py:197 -#: templates/js/translated/purchase_order.js:1469 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" @@ -8973,7 +9034,7 @@ msgstr "" msgid "Stock item does not match line item" msgstr "在BOM中找不到选定的库存项" -#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" @@ -9460,7 +9521,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -9636,7 +9697,7 @@ msgid "No valid objects provided to template" msgstr "没有为模板提供有效对象" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9792,7 +9853,7 @@ msgstr "要生产的项目数量" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9914,7 +9975,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "单价" @@ -9929,8 +9990,10 @@ msgstr "额外的生产备注" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9949,11 +10012,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2469 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9981,26 +10044,26 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:231 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 #, fuzzy #| msgid "Part image not found" msgid "Image file not found" msgstr "未找到商品图像" -#: report/templatetags/report.py:256 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:297 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -10008,8 +10071,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -10045,7 +10108,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:813 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -10072,9 +10135,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "删除模板" -#: stock/admin.py:260 stock/models.py:907 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -10094,7 +10157,7 @@ msgstr "删除仓储地" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1183 #, fuzzy #| msgid "Print actions" msgid "Parent Location" @@ -10150,344 +10213,344 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 #, fuzzy #| msgid "Stock Location" msgid "Stock Location type" msgstr "仓储地点" -#: stock/models.py:62 +#: stock/models.py:65 #, fuzzy #| msgid "Stock Locations" msgid "Stock Location types" msgstr "仓储地点" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:795 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "仓储地点" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "仓储地点" -#: stock/models.py:173 stock/models.py:956 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:174 stock/models.py:957 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:182 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:189 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:190 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:196 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 #, fuzzy #| msgid "Location" msgid "Location type" msgstr "地点" -#: stock/models.py:200 +#: stock/models.py:207 #, fuzzy #| msgid "Stock item created" msgid "Stock location type of this location" msgstr "库存项已创建" -#: stock/models.py:267 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:652 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:679 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:696 +#: stock/models.py:708 #, fuzzy, python-brace-format #| msgid "Part type ('{pf}') must be {pe}" msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "商品类型 ('{pf}') 必须是 {pe}" -#: stock/models.py:706 stock/models.py:719 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:709 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:731 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:736 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:749 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:765 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:777 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:787 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:799 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:807 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1577 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:818 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:837 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:851 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1560 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:856 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:866 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:869 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:876 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 #, fuzzy #| msgid "Issued By" msgid "Consumed By" msgstr "发布者" -#: stock/models.py:879 +#: stock/models.py:891 #, fuzzy #| msgid "BuildOrder to which this build is allocated" msgid "Build order which consumed this stock item" msgstr "此次生产匹配的订单" -#: stock/models.py:888 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:892 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:898 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:909 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:927 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:928 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:948 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:979 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1499 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1505 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1513 +#: stock/models.py:1525 #, fuzzy, python-brace-format #| msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "分配数量 ({q}) 不得超过可用库存数量 ({a})" -#: stock/models.py:1519 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1524 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1532 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:723 msgid "Serial numbers already exist" msgstr "序列号已存在" -#: stock/models.py:1629 +#: stock/models.py:1641 #, fuzzy #| msgid "Part image not found" msgid "Test template does not exist" msgstr "未找到商品图像" -#: stock/models.py:1647 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1651 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1654 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1657 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1660 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1663 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1670 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1466 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1674 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1682 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1687 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1948 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2329 +#: stock/models.py:2341 #, fuzzy #| msgid "Stock Item" msgid "Stock Item Tracking" msgstr "库存项" -#: stock/models.py:2362 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2402 +#: stock/models.py:2414 #, fuzzy #| msgid "Stock Items" msgid "Stock Item Test Result" msgstr "库存项" -#: stock/models.py:2435 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2440 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2457 #, fuzzy #| msgid "Invalid value for overage" msgid "Invalid value for this test" msgstr "无效的备损值" -#: stock/models.py:2469 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2476 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2484 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2488 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2496 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 #, fuzzy #| msgid "Destination" msgid "Test station" msgstr "目的地" -#: stock/models.py:2497 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2503 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2504 +#: stock/models.py:2577 #, fuzzy #| msgid "Timestamp of last update" msgid "The timestamp of the test start" msgstr "最后一次更新时间" -#: stock/models.py:2510 +#: stock/models.py:2583 #, fuzzy #| msgid "Danish" msgid "Finished" msgstr "丹麦语" -#: stock/models.py:2511 +#: stock/models.py:2584 #, fuzzy #| msgid "Timestamp of last update" msgid "The timestamp of the test finish" @@ -10629,7 +10692,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "输入新项目的序列号" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:689 stock/serializers.py:1423 stock/serializers.py:1679 msgid "Destination stock location" msgstr "目标库存位置" @@ -10655,8 +10718,8 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "输入生产产出数量" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:980 +#: stock/serializers.py:1030 msgid "Add transaction note (optional)" msgstr "添加交易备注 (可选)" @@ -10684,114 +10747,120 @@ msgstr "分配数量 ({q}) 不得超过可用库存数量 ({a})" msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:900 +#, fuzzy +#| msgid "Unsupported file type" +msgid "Unsupported statistic type: " +msgstr "不支持的文件类型" + +#: stock/serializers.py:914 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:927 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:944 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:975 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1012 #, fuzzy #| msgid "Selected stock item not found in BOM" msgid "Select stock items to change status" msgstr "在BOM中找不到选定的库存项" -#: stock/serializers.py:988 +#: stock/serializers.py:1018 #, fuzzy #| msgid "Stock item created" msgid "No stock items selected" msgstr "库存项已创建" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1114 stock/serializers.py:1191 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1184 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1295 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1299 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1303 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1327 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1333 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1341 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1351 stock/serializers.py:1605 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1430 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1435 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1436 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1441 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1442 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1452 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1519 #, fuzzy #| msgid "Change" msgid "No Change" msgstr "更改" -#: stock/serializers.py:1518 +#: stock/serializers.py:1548 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1567 #, fuzzy #| msgid "Stock item created" msgid "Stock item status code" msgstr "库存项已创建" -#: stock/serializers.py:1565 +#: stock/serializers.py:1595 msgid "Stock transaction notes" msgstr "" @@ -10823,7 +10892,7 @@ msgstr "隔离" msgid "Legacy stock tracking entry" msgstr "旧库存跟踪条目" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "库存项已创建" @@ -10881,7 +10950,7 @@ msgstr "从父项拆分" msgid "Split child item" msgstr "拆分子项" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "合并的库存项目" @@ -10903,7 +10972,7 @@ msgstr "生产订单输出已完成" msgid "Build order output rejected" msgstr "已创建生产订单输出" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "被生产订单消耗" @@ -10970,7 +11039,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10978,7 +11047,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10991,8 +11060,8 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -11001,17 +11070,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -11020,12 +11089,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -11066,7 +11135,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "生产" @@ -11079,7 +11148,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -11126,7 +11195,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "未设置仓储地点" @@ -11153,7 +11222,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 #, fuzzy #| msgid "Stock Item" msgid "stock item" @@ -11187,7 +11256,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -11199,90 +11268,90 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 #, fuzzy #| msgid "Print Order Reports" msgid "Print Location Report" msgstr "打印订单报表" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "仓储地操作" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "编辑仓储地" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "删除仓储地" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "您不在此仓储地的所有者列表中,无法编辑此仓储地。" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 #, fuzzy #| msgid "Location" msgid "Location Type" msgstr "地点" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "新建仓储地点" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "新建仓储地点" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 #, fuzzy #| msgid "Stock Location" msgid "stock location" msgstr "仓储地点" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -11664,7 +11733,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -11674,7 +11743,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -11785,9 +11854,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "删除" @@ -11816,7 +11885,7 @@ msgid "No project codes found" msgstr "无指定参数" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -11839,12 +11908,12 @@ msgid "No category parameter templates found" msgstr "未找到类别参数模板" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "编辑模板" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "删除模板" @@ -11854,50 +11923,50 @@ msgstr "删除模板" msgid "Edit Category Parameter Template" msgstr "删除类别参数模板" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "删除类别参数模板" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "创建类别参数模板" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 #, fuzzy #| msgid "No stock location set" msgid "No stock location types found" msgstr "未设置仓储地点" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 #, fuzzy #| msgid "Location actions" msgid "Location count" msgstr "仓储地操作" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 #, fuzzy #| msgid "Edit location" msgid "Edit Location Type" msgstr "编辑仓储地" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 #, fuzzy #| msgid "Delete location" msgid "Delete Location type" msgstr "删除仓储地" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 #, fuzzy #| msgid "Delete location" msgid "Delete Location Type" msgstr "删除仓储地" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 #, fuzzy #| msgid "New Location" @@ -12244,7 +12313,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -12501,7 +12570,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -12515,7 +12584,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -12686,7 +12755,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12878,7 +12947,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -12898,32 +12967,32 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 #, fuzzy #| msgid "External Link" msgid "External stock" msgstr "外部链接" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12955,7 +13024,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -13003,13 +13072,13 @@ msgstr "生产订单未完成" msgid "Complete Build Order" msgstr "生产订单完成" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -13069,13 +13138,13 @@ msgstr "是否确定取消生产?" msgid "Deallocate Stock Items" msgstr "选择库存项" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -13085,340 +13154,340 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "删除所有未完成的生产产出" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 #, fuzzy #| msgid "Delete any build outputs which have not been completed" msgid "Selected build outputs will be marked as scrapped" msgstr "删除所有未完成的生产产出" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 #, fuzzy #| msgid "Delete any build outputs which have not been completed" msgid "Scrapped output are marked as rejected" msgstr "删除所有未完成的生产产出" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 #, fuzzy #| msgid "Stock item is over-allocated" msgid "Allocated stock items will no longer be available" msgstr "库存物品分配过度!" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 #, fuzzy #| msgid "Create Build Output" msgid "Scrap Build Outputs" msgstr "创建创建生产产出" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 #, fuzzy #| msgid "All selected supplier parts will be deleted" msgid "Selected build outputs will be deleted" msgstr "删除所有选定的供应商商品" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 #, fuzzy #| msgid "Build output is already completed" msgid "Build output data will be permanently deleted" msgstr "生产产出已完成" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 #, fuzzy #| msgid "All selected supplier parts will be deleted" msgid "Allocated stock items will be returned to stock" msgstr "删除所有选定的供应商商品" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 #, fuzzy #| msgid "Delete location" msgid "Delete allocations" msgstr "删除仓储地" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 #, fuzzy #| msgid "Delete Stock Location" msgid "Delete Stock Allocations" msgstr "删除仓储地点" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 #, fuzzy #| msgid "Unallocate stock" msgid "No allocated stock" msgstr "未分配库存" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 #, fuzzy #| msgid "Stock Item" msgid "Stock item" msgstr "库存项" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 #, fuzzy #| msgid "Edit location" msgid "Edit build allocation" msgstr "编辑仓储地" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 #, fuzzy #| msgid "Delete location" msgid "Delete build allocation" msgstr "删除仓储地" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 #, fuzzy #| msgid "Edit location" msgid "Edit Build Allocation" msgstr "编辑仓储地" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 #, fuzzy #| msgid "Delete location" msgid "Delete Build Allocation" msgstr "删除仓储地" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "未指定仓储地点" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "已完成输出" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 #, fuzzy #| msgid "Complete outputs" msgid "Scrap outputs" msgstr "已完成输出" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "删除输出" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 #, fuzzy #| msgid "Build output" msgid "build output" msgstr "生产产出" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 #, fuzzy #| msgid "Build output" msgid "build outputs" msgstr "生产产出" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 #, fuzzy #| msgid "Build actions" msgid "Build output actions" msgstr "生产操作" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 #, fuzzy #| msgid "Allocated Parts" msgid "Allocated Lines" msgstr "已分配的部件" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "选择商品" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "没有用户信息" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 #, fuzzy #| msgid "Build actions" msgid "build line" msgstr "生产操作" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 #, fuzzy #| msgid "Build actions" msgid "build lines" msgstr "生产操作" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 #, fuzzy #| msgid "Subcategories" msgid "No build lines found" msgstr "子类别" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "可追溯商品" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 #, fuzzy #| msgid "Quantity" msgid "Unit Quantity" msgstr "数量" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 #, fuzzy #| msgid "Minimum Stock" msgid "Consumable Item" msgstr "最低库存" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 #, fuzzy #| msgid "Stock Item" msgid "Tracked item" msgstr "库存项" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 #, fuzzy #| msgid "Confirm stock allocation" msgid "Remove stock allocation" @@ -13599,7 +13668,7 @@ msgid "Delete Parameters" msgstr "删除参数" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "订购商品" @@ -13618,34 +13687,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "无指定参数" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "编辑参数" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "删除参数" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "编辑参数" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "删除参数" @@ -13701,49 +13770,49 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "选择筛选项" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "打印标签" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 #, fuzzy #| msgid "Print Order Reports" msgid "Print Reports" msgstr "打印订单报表" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 #, fuzzy #| msgid "Download Image" msgid "Download table data" msgstr "下载图片" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -13785,39 +13854,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -13908,7 +13977,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -13957,7 +14026,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" @@ -13973,372 +14042,373 @@ msgstr "" msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "商品属性" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "商品创建选项" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "商品重复选项" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "增加商品类别" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "创建商品类别" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 #, fuzzy #| msgid "Create new part category" msgid "Create new category after this one" msgstr "新建商品类别" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 #, fuzzy #| msgid "Part category" msgid "Part category created" msgstr "商品类别" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "编辑商品类别" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "删除商品类别" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "创建商品" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "编辑商品" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "虚拟商品" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "可销售商品" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "未找到商品参数模板" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "设置商品类别" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "设置类别" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 #, fuzzy #| msgid "Edit part" msgid "part" msgstr "编辑商品" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 #, fuzzy #| msgid "Parts" msgid "parts" msgstr "商品" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "没有分类" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 #, fuzzy #| msgid "Subcategories" msgid "No subcategories found" msgstr "子类别" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 #, fuzzy #| msgid "Edit Template" msgid "Edit test template" msgstr "编辑模板" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 #, fuzzy #| msgid "Delete Template" msgid "Delete test template" msgstr "删除模板" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -14568,7 +14638,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 #, fuzzy #| msgid "Select Stock Items" msgid "Specify packaging for incoming stock items" @@ -14630,81 +14700,81 @@ msgstr "订单编码" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 #, fuzzy #| msgid "Scan Barcode" msgid "Scan Item Barcode" msgstr "扫描条形码" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 #, fuzzy #| msgid "Enter barcode data" msgid "Invalid barcode data" msgstr "输入条形码数据" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 #, fuzzy #| msgid "All selected supplier parts will be deleted" msgid "All selected Line items will be deleted" msgstr "删除所有选定的供应商商品" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 #, fuzzy #| msgid "Allocate selected items" msgid "Delete selected Line items?" msgstr "分配选定项目" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -14775,16 +14845,16 @@ msgstr "无指定参数" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -14949,7 +15019,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -15007,553 +15077,557 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 #, fuzzy #| msgid "Location" msgid "Add Location type" msgstr "地点" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "编辑仓储地点" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 #, fuzzy #| msgid "Stock item created" msgid "Stock location created" msgstr "库存项已创建" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "确实要删除此仓储地点吗?" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "删除仓储地点" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "添加" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 #, fuzzy #| msgid "Barcode" msgid "Adjust batch code" msgstr "条形码" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 #, fuzzy #| msgid "Part packaging" msgid "Adjust packaging" msgstr "商品打包" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "选择库存项" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "正在生产" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "未设置仓储地点" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 #, fuzzy #| msgid "Stock Items" msgid "stock items" msgstr "库存项" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 #, fuzzy #| msgid "Stock Location" msgid "Scan to location" msgstr "仓储地点" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 #, fuzzy #| msgid "Stock Locations" msgid "Stock Actions" msgstr "仓储地点" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 #, fuzzy #| msgid "Installed into assembly" msgid "Load installed items" msgstr "安装到组装中" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "库存品正在生产" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 #, fuzzy #| msgid "Accept as consumed by this build order" msgid "Stock item has been consumed by a build order" msgstr "接受此构建订单所消耗的内容" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 #, fuzzy #| msgid "Stock Source" msgid "Stock Value" msgstr "库存来源" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 #, fuzzy #| msgid "Stock Locations" msgid "stock locations" msgstr "仓储地点" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 #, fuzzy #| msgid "Stock Locations" msgid "Load Sublocations" msgstr "仓储地点" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "详情" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 #, fuzzy #| msgid "Change" msgid "No changes" msgstr "更改" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 #, fuzzy #| msgid "Sales Order Settings" msgid "Build order no longer exists" msgstr "销售订单设置" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 #, fuzzy #| msgid "Sales Order Settings" msgid "Sales Order no longer exists" msgstr "销售订单设置" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 #, fuzzy #| msgid "Select Stock Items" msgid "Select one or more stock items" msgstr "选择库存项" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 #, fuzzy #| msgid "Select Stock Items" msgid "Selected stock items" msgstr "选择库存项" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 #, fuzzy #| msgid "Stock Settings" msgid "Change Stock Status" msgstr "库存设置" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -15590,12 +15664,12 @@ msgstr "未设置仓储地点" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -15637,7 +15711,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -15738,62 +15812,74 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +#, fuzzy +#| msgid "Internal Part" +msgid "Interval start" +msgstr "内部商品" + +#: templates/js/translated/table_filters.js:475 +#, fuzzy +#| msgid "Internal Prices" +msgid "Interval end" +msgstr "内部价格" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "生产状态" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 #, fuzzy #| msgid "Show related parts" msgid "Show locked parts" msgstr "显示相关商品" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 #, fuzzy #| msgid "Units" msgid "Has Units" msgstr "单位" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 #, fuzzy #| msgid "Parameter units" msgid "Part has defined units" msgstr "参数单位" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "商品有内部编号" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 #, fuzzy #| msgid "Units" msgid "Has Choices" @@ -16072,6 +16158,14 @@ msgstr "电子邮件设置" msgid "Email settings not configured" msgstr "电子邮件设置未配置" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "确定" diff --git a/src/frontend/src/locales/ar/messages.po b/src/frontend/src/locales/ar/messages.po index 202e7084a5..8ee5f97e4f 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: 2024-07-24 18:23\n" +"PO-Revision-Date: 2024-08-01 19:29\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" @@ -150,7 +150,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "" @@ -403,16 +403,16 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -865,7 +865,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" @@ -1366,16 +1365,16 @@ msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "" @@ -1440,7 +1439,7 @@ msgstr "" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "" @@ -1545,7 +1544,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "" @@ -1607,8 +1606,8 @@ msgstr "" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "" @@ -1690,7 +1689,7 @@ msgstr "" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "" @@ -1704,7 +1703,7 @@ msgstr "" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2886,15 +2887,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2902,82 +2903,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "" @@ -3900,25 +3901,25 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "" msgid "Description" msgstr "" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3985,21 +3986,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4007,6 +4004,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4152,8 +4165,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4382,118 +4395,118 @@ msgstr "" msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4502,98 +4515,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4910,40 +4925,40 @@ msgstr "" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5683,6 +5701,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7360,16 +7391,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7469,6 +7491,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "" diff --git a/src/frontend/src/locales/bg/messages.po b/src/frontend/src/locales/bg/messages.po index 67745b6996..9ada6dcace 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: 2024-07-24 18:22\n" +"PO-Revision-Date: 2024-08-01 19:28\n" "Last-Translator: \n" "Language-Team: Bulgarian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -150,7 +150,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "" @@ -403,16 +403,16 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -865,7 +865,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" @@ -1366,16 +1365,16 @@ msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "" @@ -1440,7 +1439,7 @@ msgstr "" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "" @@ -1545,7 +1544,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "" @@ -1607,8 +1606,8 @@ msgstr "" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "" @@ -1690,7 +1689,7 @@ msgstr "" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "" @@ -1704,7 +1703,7 @@ msgstr "" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2886,15 +2887,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2902,82 +2903,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "" @@ -3900,25 +3901,25 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "" msgid "Description" msgstr "" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3985,21 +3986,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4007,6 +4004,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4152,8 +4165,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4382,118 +4395,118 @@ msgstr "" msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4502,98 +4515,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4910,40 +4925,40 @@ msgstr "" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5683,6 +5701,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7360,16 +7391,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7469,6 +7491,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "" diff --git a/src/frontend/src/locales/cs/messages.po b/src/frontend/src/locales/cs/messages.po index 9a0eca8e56..a3cf3418cd 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: 2024-07-24 18:22\n" +"PO-Revision-Date: 2024-08-01 19:28\n" "Last-Translator: \n" "Language-Team: Czech\n" "Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n" @@ -150,7 +150,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:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "Vymazat" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "Nahrání obrázku se nezdařilo" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "Dokončeno" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "Chyba formuláře" @@ -403,16 +403,16 @@ msgstr "Chyba formuláře" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "Aktualizovat" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "Server" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -865,7 +865,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "Akce čárového kódu" @@ -1366,16 +1365,16 @@ msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "Díl" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "Díly" @@ -1440,7 +1439,7 @@ msgstr "" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "" @@ -1545,7 +1544,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "" @@ -1607,8 +1606,8 @@ msgstr "Adresy" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "Kontakt" @@ -1690,7 +1689,7 @@ msgstr "" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "Neaktivní" @@ -1704,7 +1703,7 @@ msgstr "" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "Sériové číslo" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "Nákup" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "Prodej" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2886,15 +2887,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2902,82 +2903,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "Na skladě" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "Přesunout" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "Přidat" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "Počet" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "" @@ -3900,25 +3901,25 @@ msgstr "Označit jako nepřečtenou" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "Reference" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "Reference" msgid "Description" msgstr "Popis" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3985,21 +3986,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4007,6 +4004,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4152,8 +4165,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4382,118 +4395,118 @@ msgstr "" msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4502,98 +4515,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4910,40 +4925,40 @@ msgstr "" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5683,6 +5701,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7360,16 +7391,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7469,6 +7491,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "" diff --git a/src/frontend/src/locales/da/messages.po b/src/frontend/src/locales/da/messages.po index fc2a320625..605bc01126 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: 2024-07-24 18:22\n" +"PO-Revision-Date: 2024-08-01 19:28\n" "Last-Translator: \n" "Language-Team: Danish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -150,7 +150,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "" @@ -403,16 +403,16 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -865,7 +865,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" @@ -1366,16 +1365,16 @@ msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "" @@ -1440,7 +1439,7 @@ msgstr "" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "" @@ -1545,7 +1544,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "" @@ -1607,8 +1606,8 @@ msgstr "" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "" @@ -1690,7 +1689,7 @@ msgstr "" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "" @@ -1704,7 +1703,7 @@ msgstr "" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2886,15 +2887,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2902,82 +2903,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "" @@ -3900,25 +3901,25 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "" msgid "Description" msgstr "" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3985,21 +3986,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4007,6 +4004,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4152,8 +4165,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4382,118 +4395,118 @@ msgstr "" msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4502,98 +4515,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4910,40 +4925,40 @@ msgstr "" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5683,6 +5701,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7360,16 +7391,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7469,6 +7491,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "" diff --git a/src/frontend/src/locales/de/messages.po b/src/frontend/src/locales/de/messages.po index 842f1328c6..856b7de15f 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: 2024-07-24 18:22\n" +"PO-Revision-Date: 2024-08-01 19:28\n" "Last-Translator: \n" "Language-Team: German\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -150,7 +150,7 @@ msgid "Remove the associated image from this item?" msgstr "Verknüpftes Bild von diesem Teil entfernen?" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "Leeren" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "Das Bild konnte nicht hochgeladen werden" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "Abgeschlossen" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "Formularfehler" @@ -403,16 +403,16 @@ msgstr "Formularfehler" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "Aktualisieren" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "Adresse" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -865,7 +865,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "Barcode-Aktionen" @@ -1366,16 +1365,16 @@ msgstr "Unbekanntes Modell: {model}" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "Teil" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "Teile" @@ -1440,7 +1439,7 @@ msgstr "Teilkategorie" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "Teil-Kategorien" @@ -1545,7 +1544,7 @@ msgstr "Einkaufsbestellung" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Nachbestellungen" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "Bestellpositionen" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "Verkaufsauftrag" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Aufträge" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "Versand der Bestellungen" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "Rückgabe Auftrag" @@ -1607,8 +1606,8 @@ msgstr "Adressen" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "Kontakt" @@ -1690,7 +1689,7 @@ msgstr "Sendung" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "Inaktiv" @@ -1704,7 +1703,7 @@ msgstr "Kein Bestand" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "Seriennummer" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "Einkauf" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "Verkäufe" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "Batch-Code{0} zuweisen" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "Artikel aus Liste entfernen" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "Bei bereits vorhandenen Lagerbestand einbuchen" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "Losnummer" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "Verpackung" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "Erhalten" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "Positionen empfangen" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "Angegebene Menge als Packungen anstatt einzelner Artikel hinzufügen" @@ -2886,15 +2887,15 @@ msgstr "Angegebene Menge als Packungen anstatt einzelner Artikel hinzufügen" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "Ausgangsmenge für diesen Lagerartikel eingeben" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "Seriennummern" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Seriennummern für neue Lagerartikel eingeben (oder leer lassen)" @@ -2902,82 +2903,82 @@ msgstr "Seriennummern für neue Lagerartikel eingeben (oder leer lassen)" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "Lagerartikel hinzufügen" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "Lade..." -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "Zum Standard-Lagerort verschieben" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "Auf Lager" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "Verschieben" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "Hinzufügen" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "Anzahl" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "Bestand hinzufügen" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "Bestand entfernen" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "Bestand verschieben" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "Bestand zählen" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "Bestandsstatus ändern" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "Bestand zusammenführen" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "Bestand löschen" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "Übergeordneter Lagerort" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "Berichte" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "Inventur" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "Bauaufträge" @@ -3900,25 +3901,25 @@ msgstr "Als ungelesen markieren" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "Referenz" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "Referenz" msgid "Description" msgstr "Beschreibung" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "Übergeordneter Bauauftrag" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "Bauauftrag Anzahl" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "Fertiggestellte Endprodukte" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "Aufgegeben von" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "Aufgegeben von" msgid "Responsible" msgstr "Verantwortlich" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "Erstellt" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "Zieldatum" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "Abgeschlossen" @@ -3985,28 +3986,28 @@ msgstr "Abgeschlossen" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "Quell Lagerort" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "Beliebiger Lagerort" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" -msgstr "Ziel Lagerort" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "Quell Lagerort" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" +msgstr "Beliebiger Lagerort" #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "Ziel Lagerort" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "Ziel Lagerort" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "Bauauftrag Details" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "Positionen" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "Unvollständige Endprodukte" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "Verbrauchte Bestände" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "Unter-Bauaufträge" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "Testergebnisse" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "Anhänge" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "Notizen" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "Bauauftrag bearbeiten" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "Bauauftrag abbrechen" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "Neuer Bauauftrag" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "Bauauftrag abbrechen" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "Neuer Bauauftrag" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "Bauauftrag-Aktionen" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "Bestellung stornieren" @@ -4152,8 +4165,8 @@ msgstr "Hersteller" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "Herstellerteil Details" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "Parameter" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "Lieferanten" @@ -4382,118 +4395,118 @@ msgstr "Kategorieaktionen" msgid "Category Details" msgstr "Kategorie-Details" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "Variante von" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "Version" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "Kategorie" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "Standard Lagerort" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "Standard-Lagerort der Kategorie" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "IPN" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "Einheiten" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "Schlüsselwörter" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "Link" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "Verfügbarer Bestand" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "Minimaler Bestand" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "Bestellt" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "Bauaufträgen zugeordnet" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "Aufträgen zugeordnet" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "Herstellbar" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "Gebäude" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "Gesperrt" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "Vorlagenteil" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "Baugruppe" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "Komponente" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "Nachverfolgbares Teil" @@ -4502,98 +4515,98 @@ msgstr "Nachverfolgbares Teil" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "Käufliches Teil" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "Verkäufliches Teil" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "Virtuelles Teil" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "Virtuelles Teil" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "Erstelldatum" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "Erstellt von" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "Standard Zulieferer" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "Preisspanne" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "Letzte Inventur" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "Inventur durch" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "Teil-Details" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "Varianten" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "Ferienguthaben/Freitage" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "Stückliste" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "Verwendet in" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "Teilbepreisung" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "Hersteller" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "Terminierung" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "Testvorlagen" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "Zugehörige Teile" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "Zugehörige Teile" msgid "Available" msgstr "Verfügbar" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "Kein Bestand" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "In Bestellung" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "In Produktion" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "Teil bearbeiten" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "Teil hinzufügen" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "Teil löschen" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "Das Löschen dieses Teils kann nicht rückgängig gemacht werden" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "Lager-Aktionen" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "Bestand zählen" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "Bestand übertragen" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "Teile-Aktionen" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "Lade Preisdaten" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "Datum" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "Lieferanten-Referenz" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "Abgeschlossene Positionen" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "Bestellwährung" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "Gesamtkosten" @@ -4910,40 +4925,40 @@ msgstr "Gesamtkosten" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "Erstellt am" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "Bestelldetails" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "Bestellaktionen" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "Kundenreferenz" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "Abgeschlossene Sendungen" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "Rücksendeauftrag bearbeiten" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "Neuer Rücksendeauftrag" msgid "Customers" msgstr "Kunden" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "Auftrag bearbeiten" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "Auftrag hinzufügen" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "Ausstehende Sendungen" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "Filter" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "Diese Aktion kann nicht rückgängig gemacht werden!" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "Barcode-Aktionen" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "Ausgewählte Datensätze löschen" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "Daten aktualisieren" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "Tabellenfilter" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "Bauprodukt" @@ -5683,6 +5701,28 @@ msgstr "Filtern nach Benutzer, der diese Bestellung ausgestellt hat" msgid "Filter by responsible owner" msgstr "Nach verantwortlichem Besitzer filtern" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "Testergebnis hinzufügen" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "Testergebnis hinzugefügt" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "Kein Ergebnis" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "Zugewiesene Positionen" msgid "Required Tests" msgstr "Erforderliche Tests" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "Testergebnisse" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "Testergebnis für installierten Lagerbestand" msgid "Result" msgstr "Ergebnis" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "Kein Ergebnis" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "Anhang" @@ -7360,16 +7391,6 @@ msgstr "Teststation" msgid "Finished" msgstr "Fertiggestellt" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "Testergebnis hinzufügen" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "Testergebnis hinzugefügt" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "Zeige Ergebnisse für installierte Lagerartikel" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "Bestanden" @@ -7469,6 +7491,15 @@ msgstr "Entfernt" msgid "No user information" msgstr "Keine Benutzerinformation" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "Mobiler Viewport erkannt" diff --git a/src/frontend/src/locales/el/messages.po b/src/frontend/src/locales/el/messages.po index 5ed0f0aeed..e48893c6b6 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: 2024-07-24 18:22\n" +"PO-Revision-Date: 2024-08-01 19:28\n" "Last-Translator: \n" "Language-Team: Greek\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -150,7 +150,7 @@ msgid "Remove the associated image from this item?" msgstr "Αφαίρεση της σχετικής εικόνας από αυτό το στοιχείο;" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "Εκκαθάριση" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "Επιτυχία" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "Σφάλμα Φόρμας" @@ -403,16 +403,16 @@ msgstr "Σφάλμα Φόρμας" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "Ενημέρωση" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -865,7 +865,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" @@ -1366,16 +1365,16 @@ msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "" @@ -1440,7 +1439,7 @@ msgstr "" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "" @@ -1545,7 +1544,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "" @@ -1607,8 +1606,8 @@ msgstr "" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "" @@ -1690,7 +1689,7 @@ msgstr "" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "Ανενεργό" @@ -1704,7 +1703,7 @@ msgstr "" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2886,15 +2887,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2902,82 +2903,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "" @@ -3900,25 +3901,25 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "" msgid "Description" msgstr "" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3985,21 +3986,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4007,6 +4004,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4152,8 +4165,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4382,118 +4395,118 @@ msgstr "" msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4502,98 +4515,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4910,40 +4925,40 @@ msgstr "" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5683,6 +5701,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7360,16 +7391,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7469,6 +7491,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "" diff --git a/src/frontend/src/locales/en/messages.po b/src/frontend/src/locales/en/messages.po index 5e00818b64..2ed0680723 100644 --- a/src/frontend/src/locales/en/messages.po +++ b/src/frontend/src/locales/en/messages.po @@ -57,7 +57,7 @@ msgstr "Label printing completed successfully" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:313 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 @@ -145,7 +145,7 @@ msgid "Remove the associated image from this item?" msgstr "Remove the associated image from this item?" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -176,7 +176,7 @@ msgid "Clear" msgstr "Clear" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -235,7 +235,7 @@ msgid "Image upload failed" msgstr "Image upload failed" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "Success" @@ -285,7 +285,7 @@ msgid "Error saving template" msgstr "Error saving template" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "Save & Reload Preview" @@ -313,19 +313,19 @@ msgstr "Preview updated" msgid "The preview has been updated successfully." msgstr "The preview has been updated successfully." -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "Reload preview" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "Use the currently stored template from the server" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "Save & Reload preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "Reload preview" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "Use the currently stored template from the server" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "Save the current template and reload the preview" @@ -333,11 +333,11 @@ msgstr "Save the current template and reload the preview" #~ msgid "to preview" #~ msgstr "to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "Select instance to preview" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "Error rendering template" @@ -390,7 +390,7 @@ msgid "A server error occurred" msgstr "A server error occurred" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "Form Error" @@ -398,16 +398,16 @@ msgstr "Form Error" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "Errors exist for one or more form fields" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "Update" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -584,9 +584,9 @@ msgstr "Host" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 -#: src/pages/part/CategoryDetail.tsx:80 -#: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/part/CategoryDetail.tsx:81 +#: src/pages/part/PartDetail.tsx:129 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -596,7 +596,7 @@ msgstr "Host" #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "Name" @@ -636,6 +636,32 @@ msgstr "Name: {0}" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "State: <0>worker ({0}), <1>plugins{1}" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "No icon selected" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "Uncategorized" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "Search..." + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "Select category" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "Select pack" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "{0} icons" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -834,7 +860,6 @@ msgid "Imported rows" msgstr "Imported rows" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "Barcode Actions" @@ -1189,11 +1214,6 @@ msgstr "Version" msgid "Server Version" msgstr "Server Version" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:192 -msgid "Search..." -msgstr "Search..." - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "Nothing found..." @@ -1333,23 +1353,23 @@ msgstr "No results" msgid "No results available for search query" msgstr "No results available for search query" -#: src/components/render/Instance.tsx:210 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "Unknown model: {model}" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1361,10 +1381,10 @@ msgstr "Part" #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 #: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "Parts" @@ -1407,14 +1427,14 @@ msgid "Manufacturer Parts" msgstr "Manufacturer Parts" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "Part Category" #: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "Part Categories" @@ -1426,9 +1446,9 @@ msgstr "Stock Item" #: src/components/render/ModelType.tsx:73 #: src/pages/company/CompanyDetail.tsx:200 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "Stock Items" @@ -1437,8 +1457,8 @@ msgid "Stock Location" msgstr "Stock Location" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:371 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 #: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "Stock Locations" @@ -1519,7 +1539,7 @@ msgstr "Purchase Order" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Purchase Orders" @@ -1533,8 +1553,8 @@ msgid "Purchase Order Lines" msgstr "Purchase Order Lines" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1543,7 +1563,7 @@ msgstr "Sales Order" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Sales Orders" @@ -1557,7 +1577,7 @@ msgid "Sales Order Shipments" msgstr "Sales Order Shipments" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "Return Order" @@ -1581,8 +1601,8 @@ msgstr "Addresses" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "Contact" @@ -1660,39 +1680,39 @@ msgstr "Plugin Configurations" msgid "Shipment" msgstr "Shipment" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "Inactive" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "No stock" -#: src/components/render/Part.tsx:29 +#: src/components/render/Part.tsx:30 #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/part/PartDetail.tsx:517 +#: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "Stock" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 #: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "Serial Number" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 #: src/forms/PurchaseOrderForms.tsx:636 #: src/pages/part/pricing/BomPricingPanel.tsx:104 @@ -1700,6 +1720,7 @@ msgstr "Serial Number" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2456,9 +2477,9 @@ msgstr "Purchasing" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "Sales" @@ -2732,7 +2753,7 @@ msgid "Assign Batch Code{0}" msgstr "Assign Batch Code{0}" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "Adjust Packaging" @@ -2745,19 +2766,19 @@ msgid "Add Note" msgstr "Add Note" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "Remove item from list" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2777,10 +2798,11 @@ msgid "Store with already received stock" msgstr "Store with already received stock" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "Batch Code" @@ -2789,7 +2811,7 @@ msgid "Serial numbers" msgstr "Serial numbers" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2798,10 +2820,10 @@ msgid "Packaging" msgstr "Packaging" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2831,14 +2853,14 @@ msgid "Received" msgstr "Received" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2852,7 +2874,7 @@ msgstr "Receive Line Items" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "Add given quantity as packs instead of individual items" @@ -2860,15 +2882,15 @@ msgstr "Add given quantity as packs instead of individual items" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "Enter initial quantity for this stock item" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "Serial Numbers" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Enter serial numbers for new stock (or leave blank)" @@ -2876,82 +2898,82 @@ msgstr "Enter serial numbers for new stock (or leave blank)" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "Add Stock Item" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "Loading..." -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "Move to default location" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "In Stock" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "Move" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "Add" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "Count" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "Add Stock" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "Remove Stock" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "Transfer Stock" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "Count Stock" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "Change Stock Status" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "Merge Stock" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "Delete Stock Items" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "Parent stock location" @@ -3534,7 +3556,7 @@ msgid "No tokens configured" msgstr "No tokens configured" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3630,7 +3652,7 @@ msgid "Custom Units" msgstr "Custom Units" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "Part Parameters" @@ -3806,15 +3828,15 @@ msgid "Reporting" msgstr "Reporting" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "Stocktake" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "Build Orders" @@ -3874,26 +3896,26 @@ msgstr "Mark as unread" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "Reference" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 -#: src/pages/part/CategoryDetail.tsx:94 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3902,33 +3924,33 @@ msgstr "Reference" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "Description" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "Parent Build" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "Build Quantity" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "Completed Outputs" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "Issued By" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3936,20 +3958,20 @@ msgstr "Issued By" msgid "Responsible" msgstr "Responsible" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "Created" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "Target Date" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "Completed" @@ -3959,28 +3981,28 @@ msgstr "Completed" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "Source Location" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "Any location" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" -msgstr "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "Source Location" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" +msgstr "Any location" #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "Destination Location" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -3997,88 +4019,100 @@ msgstr "Destination Location" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "Build Details" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "Line Items" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "Incomplete Outputs" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "Allocated Stock" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "Consumed Stock" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "Child Build Orders" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "Test Results" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "Test Statistics" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "Attachments" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "Notes" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "Edit Build Order" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "Cancel Build Order" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "Add Build Order" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "Cancel Build Order" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "Add Build Order" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "Build Order Actions" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "Cancel order" @@ -4126,8 +4160,8 @@ msgstr "Manufacturer" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4196,12 +4230,12 @@ msgid "Manufacturer Part Details" msgstr "Manufacturer Part Details" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "Parameters" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "Suppliers" @@ -4283,191 +4317,191 @@ msgstr "Delete Supplier Part" msgid "Add Supplier Part" msgstr "Add Supplier Part" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "Path" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "Parent Category" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "Subcategories" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "Structural" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "Parent default location" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "Default location" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "Top level part category" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:94 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "Edit Part Category" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "Delete items" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "Delete Part Category" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "Parts Action" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "Action for parts in this category" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "Child Categories Action" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "Action for child categories in this category" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "Category Actions" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "Category Details" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "Variant of" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "Revision of" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "Revision" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "Category" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "Default Location" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "Category Default Location" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "IPN" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "Units" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "Keywords" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "Link" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "Available Stock" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "Variant Stock" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "Minimum Stock" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "On order" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "Allocated to Build Orders" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "Allocated to Sales Orders" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "Can Build" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "Building" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "Locked" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "Template Part" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "Assembled Part" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "Component Part" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "Trackable Part" @@ -4476,98 +4510,98 @@ msgstr "Trackable Part" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "Purchaseable Part" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "Saleable Part" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "Virtual Part" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "Virtual Part" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "Creation Date" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "Created By" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "Default Supplier" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "Price Range" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "Last Stocktake" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "Stocktake By" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "Part Details" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "Variants" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "Allocations" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "Bill of Materials" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "Used In" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "Part Pricing" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "Manufacturers" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "Scheduling" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "Test Templates" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "Related Parts" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4577,59 +4611,60 @@ msgstr "Related Parts" msgid "Available" msgstr "Available" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "No Stock" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "On Order" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "In Production" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "Edit Part" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "Add Part" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "Delete Part" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "Deleting this part cannot be reversed" -#: src/pages/part/PartDetail.tsx:911 -#: src/pages/stock/LocationDetail.tsx:309 +#: src/pages/part/PartDetail.tsx:929 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "Stock Actions" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "Count part stock" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "Transfer part stock" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "Part Actions" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "Select Part Revision" @@ -4818,6 +4853,7 @@ msgstr "Loading pricing data" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "Date" @@ -4860,20 +4896,20 @@ msgid "Supplier Reference" msgstr "Supplier Reference" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "Completed Line Items" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "Order Currency" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "Total Cost" @@ -4884,40 +4920,40 @@ msgstr "Total Cost" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "Created On" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "Order Details" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "Order Actions" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "Customer Reference" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "Completed Shipments" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "Edit Return Order" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4927,78 +4963,78 @@ msgstr "Add Return Order" msgid "Customers" msgstr "Customers" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "Edit Sales Order" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "Add Sales Order" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "Pending Shipments" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "Parent Location" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "Sublocations" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "External" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "Location Type" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "Top level stock location" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "Location Details" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "Default Parts" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:336 -#: src/tables/stock/StockLocationTable.tsx:115 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "Edit Stock Location" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:341 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "Delete Stock Location" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "Items Action" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "Action for stock items in this location" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "Child Locations Action" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "Action for child locations in this location" -#: src/pages/stock/LocationDetail.tsx:331 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "Location Actions" @@ -5196,6 +5232,7 @@ msgid "Filter" msgstr "Filter" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5276,20 +5313,20 @@ msgstr "This action cannot be undone!" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "Barcode actions" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "Delete selected records" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "Refresh data" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "Table filters" @@ -5539,6 +5576,8 @@ msgid "Available Quantity" msgstr "Available Quantity" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "Build Output" @@ -5657,6 +5696,28 @@ msgstr "Filter by user who issued this order" msgid "Filter by responsible owner" msgstr "Filter by responsible owner" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "Add Test Result" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "Test result added" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "No Result" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "Show build outputs currently in production" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5722,11 +5783,6 @@ msgstr "Allocated Items" msgid "Required Tests" msgstr "Required Tests" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "Test Results" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -6055,33 +6111,33 @@ msgstr "Assembly" msgid "Show assembly parts" msgstr "Show assembly parts" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "Include Subcategories" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "Include subcategories in results" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "Show structural categories" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "Subscribed" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "Show categories to which the user is subscribed" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "New Part Category" -#: src/tables/part/PartCategoryTable.tsx:104 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "Add Part Category" @@ -7091,20 +7147,20 @@ msgstr "Added user" msgid "Edit user" msgstr "Edit user" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "Add Location Type" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "Edit Location Type" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "Delete Location Type" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "Icon" @@ -7181,7 +7237,7 @@ msgid "Show items which are available" msgstr "Show items which are available" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "Include Sublocations" @@ -7318,10 +7374,6 @@ msgstr "Test result for installed stock item" msgid "Result" msgstr "Result" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "No Result" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "Attachment" @@ -7334,16 +7386,6 @@ msgstr "Test station" msgid "Finished" msgstr "Finished" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "Add Test Result" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "Test result added" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7391,6 +7433,7 @@ msgid "Show results for installed stock items" msgstr "Show results for installed stock items" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "Passed" @@ -7402,32 +7445,32 @@ msgstr "Show only passed tests" #~ msgid "structural" #~ msgstr "structural" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "Include sublocations in results" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "external" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "Include sublocations in results" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "Show structural locations" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "Show external locations" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "Has location type" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "Filter by location type" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:125 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "Add Stock Location" @@ -7443,6 +7486,15 @@ msgstr "Removed" msgid "No user information" msgstr "No user information" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "Total" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "Failed" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "Mobile viewport detected" diff --git a/src/frontend/src/locales/es-mx/messages.po b/src/frontend/src/locales/es-mx/messages.po index 62bfedbb2d..f7f24f6537 100644 --- a/src/frontend/src/locales/es-mx/messages.po +++ b/src/frontend/src/locales/es-mx/messages.po @@ -57,7 +57,7 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:313 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 @@ -145,7 +145,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -176,7 +176,7 @@ msgid "Clear" msgstr "" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -235,7 +235,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -285,7 +285,7 @@ msgid "Error saving template" msgstr "" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "" @@ -313,19 +313,19 @@ msgstr "" msgid "The preview has been updated successfully." msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "" @@ -333,11 +333,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "" @@ -390,7 +390,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "" @@ -398,16 +398,16 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -565,9 +565,9 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 -#: src/pages/part/CategoryDetail.tsx:80 -#: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/part/CategoryDetail.tsx:81 +#: src/pages/part/PartDetail.tsx:129 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -577,7 +577,7 @@ msgstr "" #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -617,6 +617,32 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -815,7 +841,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" @@ -1170,11 +1195,6 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:192 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1306,23 +1326,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:210 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1334,10 +1354,10 @@ msgstr "" #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 #: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "" @@ -1380,14 +1400,14 @@ msgid "Manufacturer Parts" msgstr "" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "" @@ -1399,9 +1419,9 @@ msgstr "" #: src/components/render/ModelType.tsx:73 #: src/pages/company/CompanyDetail.tsx:200 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "" @@ -1410,8 +1430,8 @@ msgid "Stock Location" msgstr "" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:371 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 #: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1492,7 +1512,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1506,8 +1526,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1516,7 +1536,7 @@ msgstr "" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1530,7 +1550,7 @@ msgid "Sales Order Shipments" msgstr "" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "" @@ -1554,8 +1574,8 @@ msgstr "" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "" @@ -1633,39 +1653,39 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 +#: src/components/render/Part.tsx:30 #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/part/PartDetail.tsx:517 +#: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 #: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 #: src/forms/PurchaseOrderForms.tsx:636 #: src/pages/part/pricing/BomPricingPanel.tsx:104 @@ -1673,6 +1693,7 @@ msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2417,9 +2438,9 @@ msgstr "" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "" @@ -2629,7 +2650,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2642,19 +2663,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2674,10 +2695,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2686,7 +2708,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2695,10 +2717,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2728,14 +2750,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2749,7 +2771,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2757,15 +2779,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2773,82 +2795,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3299,7 +3321,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3395,7 +3417,7 @@ msgid "Custom Units" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "" @@ -3571,15 +3593,15 @@ msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "" @@ -3635,26 +3657,26 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 -#: src/pages/part/CategoryDetail.tsx:94 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3663,33 +3685,33 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3697,20 +3719,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3720,21 +3742,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -3742,6 +3760,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "" @@ -3758,88 +3780,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -3887,8 +3921,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -3957,12 +3991,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4044,191 +4078,191 @@ msgstr "" msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:94 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4237,98 +4271,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4338,59 +4372,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 -#: src/pages/stock/LocationDetail.tsx:309 +#: src/pages/part/PartDetail.tsx:929 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4575,6 +4610,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4617,20 +4653,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4641,40 +4677,40 @@ msgstr "" #~ msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4684,78 +4720,78 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:336 -#: src/tables/stock/StockLocationTable.tsx:115 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:341 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:331 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4953,6 +4989,7 @@ msgid "Filter" msgstr "" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5033,20 +5070,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "" @@ -5296,6 +5333,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5414,6 +5453,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5479,11 +5540,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -5812,33 +5868,33 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:104 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6848,20 +6904,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -6938,7 +6994,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7075,10 +7131,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7091,16 +7143,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7148,6 +7190,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7159,32 +7202,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:125 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" @@ -7200,6 +7243,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "" diff --git a/src/frontend/src/locales/es/messages.po b/src/frontend/src/locales/es/messages.po index 3df30cc563..de0e5074e7 100644 --- a/src/frontend/src/locales/es/messages.po +++ b/src/frontend/src/locales/es/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: es_MX\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-07-24 18:24\n" +"PO-Revision-Date: 2024-08-01 19:28\n" "Last-Translator: \n" "Language-Team: Spanish, Mexico\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -150,7 +150,7 @@ msgid "Remove the associated image from this item?" msgstr "¿Eliminar imagen asociada al artículo?" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "Borrar" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "" @@ -403,16 +403,16 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -865,7 +865,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" @@ -1366,16 +1365,16 @@ msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "" @@ -1440,7 +1439,7 @@ msgstr "" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "" @@ -1545,7 +1544,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Órdenes de compra" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "" @@ -1607,8 +1606,8 @@ msgstr "" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "" @@ -1690,7 +1689,7 @@ msgstr "" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "Inactivo" @@ -1704,7 +1703,7 @@ msgstr "" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2886,15 +2887,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2902,82 +2903,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "En Stock" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "Agregar" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "Informes" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "Ordenes de Producción" @@ -3900,25 +3901,25 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "" msgid "Description" msgstr "" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3985,21 +3986,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4007,6 +4004,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4152,8 +4165,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "Parámetros" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "Proveedores" @@ -4382,118 +4395,118 @@ msgstr "" msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4502,98 +4515,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "En producción" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4910,40 +4925,40 @@ msgstr "" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5683,6 +5701,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7360,16 +7391,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7469,6 +7491,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "" diff --git a/src/frontend/src/locales/et/messages.po b/src/frontend/src/locales/et/messages.po index b7d5ae4b24..ed903c5cf1 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: 2024-07-24 18:24\n" +"PO-Revision-Date: 2024-08-01 19:29\n" "Last-Translator: \n" "Language-Team: Estonian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -150,7 +150,7 @@ msgid "Remove the associated image from this item?" msgstr "Kas soovite eemaldada seotud pildi sellest üksusest?" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "Puhasta" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "Pildi üleslaadimine ebaõnnestus" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "Edu" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "Tekkis serveri viga" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "Vormiviga" @@ -403,16 +403,16 @@ msgstr "Vormiviga" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "Värskenda" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -865,7 +865,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" @@ -1366,16 +1365,16 @@ msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "" @@ -1440,7 +1439,7 @@ msgstr "" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "" @@ -1545,7 +1544,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "" @@ -1607,8 +1606,8 @@ msgstr "" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "" @@ -1690,7 +1689,7 @@ msgstr "" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "" @@ -1704,7 +1703,7 @@ msgstr "" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "Müük" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2886,15 +2887,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2902,82 +2903,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "" @@ -3900,25 +3901,25 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "" msgid "Description" msgstr "Kirjeldus" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3985,21 +3986,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4007,6 +4004,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4152,8 +4165,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4382,118 +4395,118 @@ msgstr "" msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4502,98 +4515,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "Kuupäev" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4910,40 +4925,40 @@ msgstr "" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5683,6 +5701,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "Lisa testi tulemus" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "Testi tulemus lisatud" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "Tulemus puudub" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "Paigaldatud varuüksuse testi tulemus" msgid "Result" msgstr "Tulemus" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "Tulemus puudub" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "Manus" @@ -7360,16 +7391,6 @@ msgstr "Testijaam" msgid "Finished" msgstr "Lõpetatud" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "Lisa testi tulemus" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "Testi tulemus lisatud" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "Näita paigaldatud varude tulemusi" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "Läbitud" @@ -7469,6 +7491,15 @@ msgstr "Eemaldatud" msgid "No user information" msgstr "Kasutajateave puudub" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "Mobiilivaade tuvastatud" diff --git a/src/frontend/src/locales/fa/messages.po b/src/frontend/src/locales/fa/messages.po index 1c678ee1a0..b8a0cd8d55 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: 2024-07-24 18:24\n" +"PO-Revision-Date: 2024-08-01 19:28\n" "Last-Translator: \n" "Language-Team: Persian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -150,7 +150,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "" @@ -403,16 +403,16 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -865,7 +865,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" @@ -1366,16 +1365,16 @@ msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "" @@ -1440,7 +1439,7 @@ msgstr "" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "" @@ -1545,7 +1544,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "" @@ -1607,8 +1606,8 @@ msgstr "" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "" @@ -1690,7 +1689,7 @@ msgstr "" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "" @@ -1704,7 +1703,7 @@ msgstr "" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2886,15 +2887,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2902,82 +2903,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "" @@ -3900,25 +3901,25 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "" msgid "Description" msgstr "" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3985,21 +3986,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4007,6 +4004,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4152,8 +4165,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4382,118 +4395,118 @@ msgstr "" msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4502,98 +4515,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4910,40 +4925,40 @@ msgstr "" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5683,6 +5701,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7360,16 +7391,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7469,6 +7491,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "" diff --git a/src/frontend/src/locales/fi/messages.po b/src/frontend/src/locales/fi/messages.po index f707c240fd..36a8e2cc47 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: 2024-07-24 18:22\n" +"PO-Revision-Date: 2024-08-01 19:28\n" "Last-Translator: \n" "Language-Team: Finnish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -150,7 +150,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "" @@ -403,16 +403,16 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -865,7 +865,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" @@ -1366,16 +1365,16 @@ msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "" @@ -1440,7 +1439,7 @@ msgstr "" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "" @@ -1545,7 +1544,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "" @@ -1607,8 +1606,8 @@ msgstr "" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "" @@ -1690,7 +1689,7 @@ msgstr "" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "" @@ -1704,7 +1703,7 @@ msgstr "" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2886,15 +2887,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2902,82 +2903,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "" @@ -3900,25 +3901,25 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "" msgid "Description" msgstr "" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3985,21 +3986,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4007,6 +4004,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4152,8 +4165,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4382,118 +4395,118 @@ msgstr "" msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4502,98 +4515,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4910,40 +4925,40 @@ msgstr "" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5683,6 +5701,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7360,16 +7391,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7469,6 +7491,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "" diff --git a/src/frontend/src/locales/fr/messages.po b/src/frontend/src/locales/fr/messages.po index d08d74cab8..743b1ad16d 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: 2024-07-25 18:20\n" +"PO-Revision-Date: 2024-08-01 19:28\n" "Last-Translator: \n" "Language-Team: French\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" @@ -150,7 +150,7 @@ msgid "Remove the associated image from this item?" msgstr "Supprimer l'image associée de cet élément ?" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "Effacer" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "Le téléchargement de l'image a échoué" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "Succès" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "Une erreur serveur s'est produite" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "Erreur de formulaire" @@ -403,16 +403,16 @@ msgstr "Erreur de formulaire" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "Il existe des erreurs pour un ou plusieurs champs du formulaire" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "Mise à jour" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "Serveur" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -865,7 +865,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "Actions de code-barres" @@ -1366,16 +1365,16 @@ msgstr "Modèle inconnu : {model}" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "Pièce" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "Composants" @@ -1440,7 +1439,7 @@ msgstr "Catégorie de composant" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "Catégories de composants" @@ -1545,7 +1544,7 @@ msgstr "Commande d’achat" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Ordres d'achat" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "Lignes de commande d'achat" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "Ventes" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Ordres de vente" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "Expéditions de la commande" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "Retour de commande" @@ -1607,8 +1606,8 @@ msgstr "Adresses" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "Contact" @@ -1690,7 +1689,7 @@ msgstr "" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "Inactif" @@ -1704,7 +1703,7 @@ msgstr "Aucun stock" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "Numéro de série" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "Achat en cours" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "Ventes" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "Ajouter une quantité en paquet au lieu de pièces individuelles" @@ -2886,15 +2887,15 @@ msgstr "Ajouter une quantité en paquet au lieu de pièces individuelles" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "Entrez la quantité initiale pour cet article en stock" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "Numéros de Série" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 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)" @@ -2902,82 +2903,82 @@ msgstr "Entrez les numéros de série pour le nouveau stock (ou laisser vide)" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "Ajouter un article en stock" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "Ordres de fabrication" @@ -3900,25 +3901,25 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "" msgid "Description" msgstr "" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "" msgid "Responsible" msgstr "Responsable" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "Date cible" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3985,21 +3986,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4007,6 +4004,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4152,8 +4165,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4382,118 +4395,118 @@ msgstr "" msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "Révision" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "Catégorie" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "Emplacement par défaut" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "Unités" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "Mots-clés" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "Lien" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "Stock Minimum" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "Sur commande" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "Alloué à l'ordre de construction" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "Alloué aux ordres de ventes" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "Peut être construit" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "Construire" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4502,98 +4515,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "Date de création" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "Fournisseur par Défaut" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "Échelle des prix" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "Dernier inventaire" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "Variants" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "Allocations" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "" msgid "Available" msgstr "Disponible" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4910,40 +4925,40 @@ msgstr "" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "Filtrer" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "Cette action ne peut pas être annulée !" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "Actions de code-barres" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "Supprimer les enregistrements sélectionnés" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "Actualiser les données" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "Filtres de tableau" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5683,6 +5701,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7360,16 +7391,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7469,6 +7491,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "" diff --git a/src/frontend/src/locales/he/messages.po b/src/frontend/src/locales/he/messages.po index 2369193887..64431598fd 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: 2024-07-24 18:23\n" +"PO-Revision-Date: 2024-08-01 19: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" @@ -150,7 +150,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "" @@ -403,16 +403,16 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -865,7 +865,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" @@ -1366,16 +1365,16 @@ msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "" @@ -1440,7 +1439,7 @@ msgstr "" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "" @@ -1545,7 +1544,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "" @@ -1607,8 +1606,8 @@ msgstr "" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "" @@ -1690,7 +1689,7 @@ msgstr "" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "" @@ -1704,7 +1703,7 @@ msgstr "" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2886,15 +2887,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2902,82 +2903,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "" @@ -3900,25 +3901,25 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "" msgid "Description" msgstr "" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3985,21 +3986,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4007,6 +4004,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4152,8 +4165,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4382,118 +4395,118 @@ msgstr "" msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4502,98 +4515,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4910,40 +4925,40 @@ msgstr "" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5683,6 +5701,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7360,16 +7391,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7469,6 +7491,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "" diff --git a/src/frontend/src/locales/hi/messages.po b/src/frontend/src/locales/hi/messages.po index 66f8423e2c..c56a5fa3ff 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: 2024-07-24 18:24\n" +"PO-Revision-Date: 2024-08-01 19:29\n" "Last-Translator: \n" "Language-Team: Hindi\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -150,7 +150,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "" @@ -403,16 +403,16 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -865,7 +865,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" @@ -1366,16 +1365,16 @@ msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "" @@ -1440,7 +1439,7 @@ msgstr "" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "" @@ -1545,7 +1544,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "" @@ -1607,8 +1606,8 @@ msgstr "" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "" @@ -1690,7 +1689,7 @@ msgstr "" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "" @@ -1704,7 +1703,7 @@ msgstr "" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2886,15 +2887,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2902,82 +2903,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "" @@ -3900,25 +3901,25 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "" msgid "Description" msgstr "" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3985,21 +3986,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4007,6 +4004,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4152,8 +4165,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4382,118 +4395,118 @@ msgstr "" msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4502,98 +4515,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4910,40 +4925,40 @@ msgstr "" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5683,6 +5701,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7360,16 +7391,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7469,6 +7491,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "" diff --git a/src/frontend/src/locales/hu/messages.po b/src/frontend/src/locales/hu/messages.po index 79d7c37e30..22f4e885c5 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: 2024-07-26 18:36\n" +"PO-Revision-Date: 2024-08-01 19:28\n" "Last-Translator: \n" "Language-Team: Hungarian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -150,7 +150,7 @@ msgid "Remove the associated image from this item?" msgstr "Tételhez rendelt kép eltávolítása?" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "Törlés" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "Siker" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "Form hiba" @@ -403,16 +403,16 @@ msgstr "Form hiba" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "Frissítés" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "Kiszolgáló" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -1365,16 +1365,16 @@ msgstr "Ismeretlen model: {model}" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:88 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1389,7 +1389,7 @@ msgstr "Alkatrész" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "Alkatrészek" @@ -1439,7 +1439,7 @@ msgstr "Alkatrész kategória" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "Alkatrész kategóriák" @@ -1544,7 +1544,7 @@ msgstr "Beszerzési rendelés" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Beszerzési rendelések" @@ -1558,7 +1558,7 @@ msgid "Purchase Order Lines" msgstr "Beszerzési rendelés tételei" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:136 +#: src/pages/build/BuildDetail.tsx:140 #: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 @@ -1568,7 +1568,7 @@ msgstr "Vevői rendelés" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Vevői rendelések" @@ -1689,7 +1689,7 @@ msgstr "Szállítmány" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "Inaktív" @@ -1703,7 +1703,7 @@ msgstr "Nincs készlet" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1725,6 +1725,7 @@ msgstr "Sorozatszám" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2757,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2770,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2802,10 +2803,11 @@ msgid "Store with already received stock" msgstr "Tárolás a már megérkezett készlettel" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:202 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2814,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2823,7 +2825,7 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:94 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 #: src/pages/sales/ReturnOrderDetail.tsx:103 #: src/pages/sales/SalesOrderDetail.tsx:107 @@ -2856,14 +2858,14 @@ msgid "Received" msgstr "Fogadott" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2877,7 +2879,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 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" @@ -2885,15 +2887,15 @@ msgstr "Mennyiség hozzáadása csomagolási egységenként egyedi tételek hely #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 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:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "Sorozatszámok" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 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)" @@ -2901,82 +2903,82 @@ msgstr "Add meg az új készlet tételhez tartozó sorozatszámokat (vagy hagyd #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "Új készlet tétel" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "Mozgatás az alapértelmezett helyre" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "Készleten" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "Áthelyezés" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "Hozzáadás" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "Mennyiség" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "Készlethez ad" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "Készlet csökkentése" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "Készlet áthelyezése" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "Leltározás" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "Készlet állapot módosítása" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "Készlet összevonása" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "Készlet tétel törlése" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "Szülő készlet hely" @@ -3559,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3831,14 +3833,14 @@ msgid "Reporting" msgstr "Riportolás" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "Leltár" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:437 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 +#: src/pages/part/PartDetail.tsx:554 #: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "Gyártási utasítások" @@ -3899,7 +3901,7 @@ msgstr "Megjelölés olvasatlanként" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:100 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 #: src/pages/sales/ReturnOrderDetail.tsx:77 #: src/pages/sales/SalesOrderDetail.tsx:81 @@ -3909,12 +3911,12 @@ msgstr "Megjelölés olvasatlanként" msgid "Reference" msgstr "Hivatkozás" -#: src/pages/build/BuildDetail.tsx:105 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 #: src/pages/sales/ReturnOrderDetail.tsx:97 #: src/pages/sales/SalesOrderDetail.tsx:101 @@ -3931,26 +3933,26 @@ msgstr "Hivatkozás" msgid "Description" msgstr "Leírás" -#: src/pages/build/BuildDetail.tsx:112 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "Szülő gyártás" -#: src/pages/build/BuildDetail.tsx:123 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "Gyártási mennyiség" -#: src/pages/build/BuildDetail.tsx:131 -#: src/pages/build/BuildDetail.tsx:261 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "Befejezett kimenetek" -#: src/pages/build/BuildDetail.tsx:148 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:155 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 #: src/pages/sales/ReturnOrderDetail.tsx:190 #: src/pages/sales/SalesOrderDetail.tsx:188 @@ -3961,12 +3963,12 @@ msgstr "" msgid "Responsible" msgstr "Felelős" -#: src/pages/build/BuildDetail.tsx:162 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:169 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 #: src/pages/sales/ReturnOrderDetail.tsx:183 #: src/pages/sales/SalesOrderDetail.tsx:181 @@ -3974,7 +3976,7 @@ msgstr "" msgid "Target Date" msgstr "Cél dátum" -#: src/pages/build/BuildDetail.tsx:176 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3984,21 +3986,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:188 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:189 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:196 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4006,6 +4004,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4022,11 +4024,11 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:234 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "Gyártás részletei" -#: src/pages/build/BuildDetail.tsx:240 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 #: src/pages/sales/ReturnOrderDetail.tsx:112 #: src/pages/sales/ReturnOrderDetail.tsx:228 @@ -4034,26 +4036,37 @@ msgstr "Gyártás részletei" msgid "Line Items" msgstr "Sortételek" -#: src/pages/build/BuildDetail.tsx:254 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "Befejezetlen kimenetek" -#: src/pages/build/BuildDetail.tsx:276 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:286 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "Felhasznált készlet" -#: src/pages/build/BuildDetail.tsx:300 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "Alárendelt gyártások" -#: src/pages/build/BuildDetail.tsx:310 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "Teszt eredmények" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 #: src/pages/sales/ReturnOrderDetail.tsx:234 #: src/pages/sales/SalesOrderDetail.tsx:278 @@ -4061,46 +4074,47 @@ msgstr "Alárendelt gyártások" msgid "Attachments" msgstr "Mellékletek" -#: src/pages/build/BuildDetail.tsx:318 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 #: src/pages/sales/ReturnOrderDetail.tsx:245 #: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "Megjegyzések" -#: src/pages/build/BuildDetail.tsx:336 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "Gyártási utasítás szerkesztése" -#: src/pages/build/BuildDetail.tsx:345 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:357 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "Gyártási utasítás létrehozása" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:390 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "Gyártási utasítás létrehozása" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "Gyártáshoz foglalások" -#: src/pages/build/BuildDetail.tsx:398 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 #: src/pages/sales/ReturnOrderDetail.tsx:327 #: src/pages/sales/SalesOrderDetail.tsx:333 @@ -4221,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "Paraméterek" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "Beszállítók" @@ -4381,118 +4395,118 @@ msgstr "" msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "Kategória" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "IPN" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "Mértékegységek" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 #: src/pages/sales/ReturnOrderDetail.tsx:156 #: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "Link" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "Rendelve" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "Gyártható" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "Gyártásban" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "Gyártmány alkatrész" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4501,98 +4515,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "Létrehozás dátuma" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "Készítette" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "Alapértelmezett beszállító" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "Ártartomány" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "Utolsó leltár" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "Leltárazta" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "Alkatrész részletei" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "Változatok" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "Foglalások" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "Alkatrészjegyzék" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "Felhasználva ebben" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "Alkatrész árak" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "Gyártók" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "Ütemezés" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "Teszt sablonok" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "Kapcsolódó alkatrészek" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4602,59 +4616,60 @@ msgstr "Kapcsolódó alkatrészek" msgid "Available" msgstr "Elérhető" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "Nincs készlet" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "Rendelve" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "Gyártásban" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "Alkatrész szerkesztése" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "Alkatrész hozzáadása" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "Készlet műveletek" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "Készlet számolása" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "Készlet áthelyezése" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "Alkatrész műveletek" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4843,6 +4858,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "Dátum" @@ -5221,6 +5237,7 @@ msgid "Filter" msgstr "Szűrő" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5301,20 +5318,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "Vonalkód műveletek" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "Adatok frissítése" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "Táblaszűrők" @@ -5564,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "Gyártás kimenet" @@ -5682,6 +5701,28 @@ msgstr "Szűrés a rendelést rögzítő felhasználóra" msgid "Filter by responsible owner" msgstr "Szűrés a felelős tulajdonosra" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5747,11 +5788,6 @@ msgstr "Lefoglalt sorok" msgid "Required Tests" msgstr "Szükséges tesztek" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "Teszt eredmények" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7343,10 +7379,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7359,16 +7391,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7416,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7468,6 +7491,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "Mobil kijelző érzékelve" diff --git a/src/frontend/src/locales/id/messages.po b/src/frontend/src/locales/id/messages.po index 220c02e85e..4a62cd5144 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: 2024-07-24 18:24\n" +"PO-Revision-Date: 2024-08-01 19:28\n" "Last-Translator: \n" "Language-Team: Indonesian\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -150,7 +150,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "" @@ -403,16 +403,16 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -865,7 +865,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" @@ -1366,16 +1365,16 @@ msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "" @@ -1440,7 +1439,7 @@ msgstr "" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "" @@ -1545,7 +1544,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "" @@ -1607,8 +1606,8 @@ msgstr "" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "" @@ -1690,7 +1689,7 @@ msgstr "" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "" @@ -1704,7 +1703,7 @@ msgstr "" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2886,15 +2887,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2902,82 +2903,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "" @@ -3900,25 +3901,25 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "" msgid "Description" msgstr "" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3985,21 +3986,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4007,6 +4004,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4152,8 +4165,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4382,118 +4395,118 @@ msgstr "" msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4502,98 +4515,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4910,40 +4925,40 @@ msgstr "" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5683,6 +5701,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7360,16 +7391,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7469,6 +7491,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "" diff --git a/src/frontend/src/locales/it/messages.po b/src/frontend/src/locales/it/messages.po index 4fd8c13839..d79274853f 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: 2024-07-24 18:23\n" +"PO-Revision-Date: 2024-08-01 19:28\n" "Last-Translator: \n" "Language-Team: Italian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -150,7 +150,7 @@ msgid "Remove the associated image from this item?" msgstr "Rimuovi l'immagine associata all'articolo?" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "Elimina" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "Il caricamento della foto è fallito" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "Operazione completata" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "" @@ -403,16 +403,16 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -865,7 +865,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" @@ -1366,16 +1365,16 @@ msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "" @@ -1440,7 +1439,7 @@ msgstr "" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "" @@ -1545,7 +1544,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "" @@ -1607,8 +1606,8 @@ msgstr "" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "" @@ -1690,7 +1689,7 @@ msgstr "" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "" @@ -1704,7 +1703,7 @@ msgstr "" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2886,15 +2887,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2902,82 +2903,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "" @@ -3900,25 +3901,25 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "" msgid "Description" msgstr "" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3985,21 +3986,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4007,6 +4004,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4152,8 +4165,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4382,118 +4395,118 @@ msgstr "" msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4502,98 +4515,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4910,40 +4925,40 @@ msgstr "" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5683,6 +5701,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7360,16 +7391,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7469,6 +7491,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "" diff --git a/src/frontend/src/locales/ja/messages.po b/src/frontend/src/locales/ja/messages.po index bdd3211460..7f5c49c796 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: 2024-07-24 18:23\n" +"PO-Revision-Date: 2024-08-01 19:28\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -150,7 +150,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "" @@ -403,16 +403,16 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -865,7 +865,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" @@ -1366,16 +1365,16 @@ msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "パーツ" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "パーツ" @@ -1440,7 +1439,7 @@ msgstr "" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "" @@ -1545,7 +1544,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "" @@ -1607,8 +1606,8 @@ msgstr "" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "" @@ -1690,7 +1689,7 @@ msgstr "" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "" @@ -1704,7 +1703,7 @@ msgstr "" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2886,15 +2887,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "この商品の初期数量を入力" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2902,82 +2903,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "" @@ -3900,25 +3901,25 @@ msgstr "未読にする" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "" msgid "Description" msgstr "説明" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3985,21 +3986,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4007,6 +4004,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "添付ファイル" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "メモ" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4152,8 +4165,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4382,118 +4395,118 @@ msgstr "" msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4502,98 +4515,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4910,40 +4925,40 @@ msgstr "" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "フィルタ" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "表フィルタ" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5683,6 +5701,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7360,16 +7391,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7469,6 +7491,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "" diff --git a/src/frontend/src/locales/ko/messages.po b/src/frontend/src/locales/ko/messages.po index e43876ba49..8a1887ede8 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: 2024-07-24 18:23\n" +"PO-Revision-Date: 2024-08-01 19:28\n" "Last-Translator: \n" "Language-Team: Korean\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -150,7 +150,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "" @@ -403,16 +403,16 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -865,7 +865,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" @@ -1366,16 +1365,16 @@ msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "" @@ -1440,7 +1439,7 @@ msgstr "" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "" @@ -1545,7 +1544,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "" @@ -1607,8 +1606,8 @@ msgstr "" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "" @@ -1690,7 +1689,7 @@ msgstr "" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "" @@ -1704,7 +1703,7 @@ msgstr "" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2886,15 +2887,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2902,82 +2903,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "" @@ -3900,25 +3901,25 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "" msgid "Description" msgstr "" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3985,21 +3986,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4007,6 +4004,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4152,8 +4165,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4382,118 +4395,118 @@ msgstr "" msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4502,98 +4515,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4910,40 +4925,40 @@ msgstr "" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5683,6 +5701,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7360,16 +7391,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7469,6 +7491,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "" diff --git a/src/frontend/src/locales/lv/messages.po b/src/frontend/src/locales/lv/messages.po index dc5ea56411..6fd51d3476 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: 2024-07-24 18:24\n" +"PO-Revision-Date: 2024-08-01 19: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" @@ -150,7 +150,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "" @@ -403,16 +403,16 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -865,7 +865,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" @@ -1366,16 +1365,16 @@ msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "" @@ -1440,7 +1439,7 @@ msgstr "" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "" @@ -1545,7 +1544,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "" @@ -1607,8 +1606,8 @@ msgstr "" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "" @@ -1690,7 +1689,7 @@ msgstr "" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "" @@ -1704,7 +1703,7 @@ msgstr "" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2886,15 +2887,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2902,82 +2903,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "" @@ -3900,25 +3901,25 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "" msgid "Description" msgstr "" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3985,21 +3986,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4007,6 +4004,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4152,8 +4165,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4382,118 +4395,118 @@ msgstr "" msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4502,98 +4515,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4910,40 +4925,40 @@ msgstr "" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5683,6 +5701,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7360,16 +7391,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7469,6 +7491,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "" diff --git a/src/frontend/src/locales/nl/messages.po b/src/frontend/src/locales/nl/messages.po index 14c2136cdb..9eb6a23df4 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: 2024-07-24 18:23\n" +"PO-Revision-Date: 2024-08-01 19:28\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -150,7 +150,7 @@ msgid "Remove the associated image from this item?" msgstr "De bijbehorende afbeelding van dit item verwijderen?" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "Wis" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "" @@ -403,16 +403,16 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -865,7 +865,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" @@ -1366,16 +1365,16 @@ msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "" @@ -1440,7 +1439,7 @@ msgstr "" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "" @@ -1545,7 +1544,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "Verkooporder" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Verkooporders" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "Verzendingen verkooporders" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "Retourorder" @@ -1607,8 +1606,8 @@ msgstr "" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "" @@ -1690,7 +1689,7 @@ msgstr "" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "Inactief" @@ -1704,7 +1703,7 @@ msgstr "" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "Verkoop" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2886,15 +2887,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2902,82 +2903,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "Productieorders" @@ -3900,25 +3901,25 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "" msgid "Description" msgstr "" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3985,21 +3986,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4007,6 +4004,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "Regelitems" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "Bijlagen" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "Opmerkingen" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4152,8 +4165,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4382,118 +4395,118 @@ msgstr "" msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4502,98 +4515,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4910,40 +4925,40 @@ msgstr "" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "Order Details" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "Klantreferentie" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "Voltooide Verzendingen" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "Retourorder toevoegen" msgid "Customers" msgstr "Klanten" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "Voeg Verkooporder toe" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "In afwachting van verzending" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5683,6 +5701,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7360,16 +7391,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7469,6 +7491,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "" diff --git a/src/frontend/src/locales/no/messages.po b/src/frontend/src/locales/no/messages.po index 1a78c6be78..074d3ba1a6 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: 2024-07-24 18:23\n" +"PO-Revision-Date: 2024-08-01 19:28\n" "Last-Translator: \n" "Language-Team: Norwegian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -150,7 +150,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "Suksess" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "Skjemafeil" @@ -403,16 +403,16 @@ msgstr "Skjemafeil" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "Oppdater" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "Vert" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -865,7 +865,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "Strekkodehandlinger" @@ -1366,16 +1365,16 @@ msgstr "Ukjent modell: {model}" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "Del" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "Deler" @@ -1440,7 +1439,7 @@ msgstr "Delkategori" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "Delkategorier" @@ -1545,7 +1544,7 @@ msgstr "Innkjøpsordre" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Innkjøpsordrer" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "Ordrelinjer for innkjøpsordre" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "Salgsordre" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Salgsordrer" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "Salgsordreforsendelser" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "Returordre" @@ -1607,8 +1606,8 @@ msgstr "Adresser" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "Kontakt" @@ -1690,7 +1689,7 @@ msgstr "Forsendelse" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "" @@ -1704,7 +1703,7 @@ msgstr "Ingen lagerbeholdning" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "Serienummer" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "Innkjøp" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "Salg" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "Mottatt" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "Legg til gitt mengde som pakker i stedet for enkeltprodukter" @@ -2886,15 +2887,15 @@ msgstr "Legg til gitt mengde som pakker i stedet for enkeltprodukter" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "Angi innledende antall for denne lagervaren" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "Serienumre" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Angi serienumre for ny lagerbeholdning (eller la stå tom)" @@ -2902,82 +2903,82 @@ msgstr "Angi serienumre for ny lagerbeholdning (eller la stå tom)" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "På lager" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "Legg til" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "Tell" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "Overfør lager" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "Tell beholdning" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "Rapportering" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "Lagertelling" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "Produksjonsordrer" @@ -3900,25 +3901,25 @@ msgstr "Marker som ulest" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "" msgid "Description" msgstr "Beskrivelse" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "Fullførte artikler" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "" msgid "Responsible" msgstr "Ansvarlig" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "Opprettet" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "Måldato" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3985,21 +3986,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4007,6 +4004,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "Produksjonsdetaljer" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "Ordrelinjer" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "Ufullstendige artikler" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "Brukt lagerbeholdning" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "Underordnede Produksjonsordrer" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "Vedlegg" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "Notater" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "Rediger produksjonsordre" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "Legg til produksjonsordre" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "Legg til produksjonsordre" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "Produksjonsordre-handlinger" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4152,8 +4165,8 @@ msgstr "Produsent" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "Parametere" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "Leverandører" @@ -4382,118 +4395,118 @@ msgstr "" msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "Kategori" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "IPN" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "Enheter" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "Nøkkelord" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "Lenke" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "I bestilling" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "Kan Produsere" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "Produseres" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "Sammenstilt del" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "Sporbar del" @@ -4502,98 +4515,98 @@ msgstr "Sporbar del" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "Opprettelsesdato" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "Prisområde" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "Varianter" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "Tildelinger" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "Stykkliste (BOM)" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "Brukt i" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "Produsenter" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "Planlegging" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "Testmaler" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "Relaterte Deler" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "Relaterte Deler" msgid "Available" msgstr "Tilgjengelig" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "I bestilling" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "Under produksjon" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "Rediger del" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "Lagerhandlinger" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "Tell delbeholdning" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "Overfør delbeholdning" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "Delhandlinger" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "Dato" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4910,40 +4925,40 @@ msgstr "" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "Ordredetaljer" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "Ordrehandlinger" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "Kundereferanse" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "Fullførte forsendelser" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "" msgid "Customers" msgstr "Kunder" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "Ventende forsendelser" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "Filter" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "Denne handlingen kan ikke angres!" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "Strekkodehandlinger" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "Slett valgte oppføringer" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "Oppdater data" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "Tabellfiltre" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5683,6 +5701,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7360,16 +7391,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7469,6 +7491,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "Mobilvisning oppdaget" diff --git a/src/frontend/src/locales/pl/messages.po b/src/frontend/src/locales/pl/messages.po index 8abbd6dd74..0d5134433b 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: 2024-07-24 18:23\n" +"PO-Revision-Date: 2024-08-01 19: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" @@ -150,7 +150,7 @@ msgid "Remove the associated image from this item?" msgstr "Usunąć powiązany obrazek z tego elementu?" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "Wyczyść" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "Przesłanie obrazu nie powiodło się" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "Sukces" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "Błąd formularza" @@ -403,16 +403,16 @@ msgstr "Błąd formularza" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "Aktualizuj" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -865,7 +865,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" @@ -1366,16 +1365,16 @@ msgstr "Nieznany model: {model}" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "Komponent" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "Komponenty" @@ -1440,7 +1439,7 @@ msgstr "" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "" @@ -1545,7 +1544,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "" @@ -1607,8 +1606,8 @@ msgstr "" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "" @@ -1690,7 +1689,7 @@ msgstr "Wysyłka" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "Nieaktywny" @@ -1704,7 +1703,7 @@ msgstr "" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "Numer seryjny" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "Zakupy" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2886,15 +2887,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2902,82 +2903,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "Ładowanie..." -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "Przenieś" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "Dodaj" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "Raportowanie" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "Zlecenia wykonania" @@ -3900,25 +3901,25 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "" msgid "Description" msgstr "" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3985,21 +3986,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4007,6 +4004,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4152,8 +4165,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4382,118 +4395,118 @@ msgstr "" msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4502,98 +4515,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4910,40 +4925,40 @@ msgstr "" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5683,6 +5701,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7360,16 +7391,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7469,6 +7491,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "" diff --git a/src/frontend/src/locales/pseudo-LOCALE/messages.po b/src/frontend/src/locales/pseudo-LOCALE/messages.po index f2dfcd0f74..ed4a6c21d7 100644 --- a/src/frontend/src/locales/pseudo-LOCALE/messages.po +++ b/src/frontend/src/locales/pseudo-LOCALE/messages.po @@ -97,7 +97,7 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:313 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 @@ -185,7 +185,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -216,7 +216,7 @@ msgid "Clear" msgstr "" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -275,7 +275,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -325,7 +325,7 @@ msgid "Error saving template" msgstr "" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "" @@ -353,19 +353,19 @@ msgstr "" msgid "The preview has been updated successfully." msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "" @@ -373,11 +373,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "" @@ -430,7 +430,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "" @@ -438,16 +438,16 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -624,9 +624,9 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 -#: src/pages/part/CategoryDetail.tsx:80 -#: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/part/CategoryDetail.tsx:81 +#: src/pages/part/PartDetail.tsx:129 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -636,7 +636,7 @@ msgstr "" #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -676,6 +676,32 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -874,7 +900,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" @@ -1233,11 +1258,6 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:192 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1377,23 +1397,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:210 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1405,10 +1425,10 @@ msgstr "" #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 #: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "" @@ -1451,14 +1471,14 @@ msgid "Manufacturer Parts" msgstr "" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "" @@ -1470,9 +1490,9 @@ msgstr "" #: src/components/render/ModelType.tsx:73 #: src/pages/company/CompanyDetail.tsx:200 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "" @@ -1481,8 +1501,8 @@ msgid "Stock Location" msgstr "" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:371 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 #: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1563,7 +1583,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1577,8 +1597,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1587,7 +1607,7 @@ msgstr "" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1601,7 +1621,7 @@ msgid "Sales Order Shipments" msgstr "" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "" @@ -1625,8 +1645,8 @@ msgstr "" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "" @@ -1704,39 +1724,39 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 +#: src/components/render/Part.tsx:30 #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/part/PartDetail.tsx:517 +#: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 #: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 #: src/forms/PurchaseOrderForms.tsx:636 #: src/pages/part/pricing/BomPricingPanel.tsx:104 @@ -1744,6 +1764,7 @@ msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2500,9 +2521,9 @@ msgstr "" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "" @@ -2776,7 +2797,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2789,19 +2810,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2821,10 +2842,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2833,7 +2855,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2842,10 +2864,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2875,14 +2897,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2896,7 +2918,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2904,15 +2926,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2920,82 +2942,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3578,7 +3600,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3674,7 +3696,7 @@ msgid "Custom Units" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "" @@ -3850,15 +3872,15 @@ msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "" @@ -3918,26 +3940,26 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 -#: src/pages/part/CategoryDetail.tsx:94 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3946,33 +3968,33 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3980,20 +4002,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -4003,21 +4025,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4025,6 +4043,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "" @@ -4041,88 +4063,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4170,8 +4204,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4240,12 +4274,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4327,191 +4361,191 @@ msgstr "" msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:94 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4520,98 +4554,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4621,59 +4655,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 -#: src/pages/stock/LocationDetail.tsx:309 +#: src/pages/part/PartDetail.tsx:929 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4862,6 +4897,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4904,20 +4940,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4928,40 +4964,40 @@ msgstr "" #~ msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4971,78 +5007,78 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:336 -#: src/tables/stock/StockLocationTable.tsx:115 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:341 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:331 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -5240,6 +5276,7 @@ msgid "Filter" msgstr "" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5320,20 +5357,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "" @@ -5583,6 +5620,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5701,6 +5740,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5766,11 +5827,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -6099,33 +6155,33 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:104 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -7135,20 +7191,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -7225,7 +7281,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7362,10 +7418,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7378,16 +7430,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7435,6 +7477,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7446,32 +7489,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:125 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" @@ -7487,6 +7530,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "" diff --git a/src/frontend/src/locales/pt-br/messages.po b/src/frontend/src/locales/pt-br/messages.po index 81d422f5ef..2e78e8138a 100644 --- a/src/frontend/src/locales/pt-br/messages.po +++ b/src/frontend/src/locales/pt-br/messages.po @@ -57,7 +57,7 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:313 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 @@ -145,7 +145,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -176,7 +176,7 @@ msgid "Clear" msgstr "" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -235,7 +235,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -285,7 +285,7 @@ msgid "Error saving template" msgstr "" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "" @@ -313,19 +313,19 @@ msgstr "" msgid "The preview has been updated successfully." msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "" @@ -333,11 +333,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "" @@ -390,7 +390,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "" @@ -398,16 +398,16 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -565,9 +565,9 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 -#: src/pages/part/CategoryDetail.tsx:80 -#: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/part/CategoryDetail.tsx:81 +#: src/pages/part/PartDetail.tsx:129 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -577,7 +577,7 @@ msgstr "" #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -617,6 +617,32 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -815,7 +841,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" @@ -1170,11 +1195,6 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:192 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1306,23 +1326,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:210 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1334,10 +1354,10 @@ msgstr "" #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 #: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "" @@ -1380,14 +1400,14 @@ msgid "Manufacturer Parts" msgstr "" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "" @@ -1399,9 +1419,9 @@ msgstr "" #: src/components/render/ModelType.tsx:73 #: src/pages/company/CompanyDetail.tsx:200 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "" @@ -1410,8 +1430,8 @@ msgid "Stock Location" msgstr "" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:371 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 #: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1492,7 +1512,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1506,8 +1526,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1516,7 +1536,7 @@ msgstr "" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1530,7 +1550,7 @@ msgid "Sales Order Shipments" msgstr "" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "" @@ -1554,8 +1574,8 @@ msgstr "" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "" @@ -1633,39 +1653,39 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 +#: src/components/render/Part.tsx:30 #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/part/PartDetail.tsx:517 +#: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 #: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 #: src/forms/PurchaseOrderForms.tsx:636 #: src/pages/part/pricing/BomPricingPanel.tsx:104 @@ -1673,6 +1693,7 @@ msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2417,9 +2438,9 @@ msgstr "" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "" @@ -2629,7 +2650,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2642,19 +2663,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2674,10 +2695,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2686,7 +2708,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2695,10 +2717,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2728,14 +2750,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2749,7 +2771,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2757,15 +2779,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2773,82 +2795,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3299,7 +3321,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3395,7 +3417,7 @@ msgid "Custom Units" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "" @@ -3571,15 +3593,15 @@ msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "" @@ -3635,26 +3657,26 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 -#: src/pages/part/CategoryDetail.tsx:94 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3663,33 +3685,33 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3697,20 +3719,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3720,21 +3742,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -3742,6 +3760,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "" @@ -3758,88 +3780,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -3887,8 +3921,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -3957,12 +3991,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4044,191 +4078,191 @@ msgstr "" msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:94 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4237,98 +4271,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4338,59 +4372,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 -#: src/pages/stock/LocationDetail.tsx:309 +#: src/pages/part/PartDetail.tsx:929 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4575,6 +4610,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4617,20 +4653,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4641,40 +4677,40 @@ msgstr "" #~ msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4684,78 +4720,78 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:336 -#: src/tables/stock/StockLocationTable.tsx:115 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:341 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:331 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4953,6 +4989,7 @@ msgid "Filter" msgstr "" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5033,20 +5070,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "" @@ -5296,6 +5333,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5414,6 +5453,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5479,11 +5540,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -5812,33 +5868,33 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:104 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6848,20 +6904,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -6938,7 +6994,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7075,10 +7131,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7091,16 +7143,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7148,6 +7190,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7159,32 +7202,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:125 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" @@ -7200,6 +7243,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "" diff --git a/src/frontend/src/locales/pt/messages.po b/src/frontend/src/locales/pt/messages.po index 3c177fd141..097256dea7 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: 2024-07-25 18:20\n" +"PO-Revision-Date: 2024-08-01 19:28\n" "Last-Translator: \n" "Language-Team: Portuguese, Brazilian\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -150,7 +150,7 @@ msgid "Remove the associated image from this item?" msgstr "Remover imagem associada a este item?" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "Limpar" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "Upload da imagem falhou" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "Sucesso" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "Erro no formulário" @@ -403,16 +403,16 @@ msgstr "Erro no formulário" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "Atualizar" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "Servidor" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -865,7 +865,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "Ações de código de barras" @@ -1366,16 +1365,16 @@ msgstr "Modelo desconhecido: {model}" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "Peça" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "Peças" @@ -1440,7 +1439,7 @@ msgstr "Categoria da Peça" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "Categorias de Peça" @@ -1545,7 +1544,7 @@ msgstr "Pedido de Compra" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Pedidos de compra" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "Linhas do Pedido de Compra" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "Pedido de Venda" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Pedidos de vendas" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "Envios do Pedido Venda" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "Pedido de Devolução" @@ -1607,8 +1606,8 @@ msgstr "Endereços" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "Contato" @@ -1690,7 +1689,7 @@ msgstr "Remessa" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "Inativo" @@ -1704,7 +1703,7 @@ msgstr "Sem Estoque" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "Número de Série" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "Comprando" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "Vendas" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "Atribuir Código em Lote{0}" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "Remover item da lista" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "Armazenar com estoque já recebido" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "Código de Lote" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "Embalagem" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "Recebido" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "Excluir Itens de Linha" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "Adicionar quantidade dada como pacotes e não itens individuais" @@ -2886,15 +2887,15 @@ msgstr "Adicionar quantidade dada como pacotes e não itens individuais" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "Inserir quantidade inicial deste item de estoque" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "Números de Série" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 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)" @@ -2902,82 +2903,82 @@ msgstr "Insira o número de série para novo estoque (ou deixe em branco)" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "Adicionar Item do Estoque" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "Carregando..." -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "Mover para o local padrão" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "Em Estoque" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "Mover" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "Adicionar" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "Contar" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "Adicionar Estoque" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "Remover Estoque" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "Transferir Estoque" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "Contar Estoque" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "Mudar estado do estoque" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "Mesclar estoque" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "Excluir Item de Estoque" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "Local de estoque pai" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "Relatórios" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "Balanço" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "Ordens de Produções" @@ -3900,25 +3901,25 @@ msgstr "Marcar como não lido" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "Referência" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "Referência" msgid "Description" msgstr "Descrição" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "Produção Pai" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "Quantidade de Produção" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "Saídas Completas" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "Emitido por" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "Emitido por" msgid "Responsible" msgstr "Responsável" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "Criado" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "Data Prevista" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "Concluído" @@ -3985,28 +3986,28 @@ msgstr "Concluído" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "Local de Origem" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "Qualquer local" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" -msgstr "Local de Destino" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "Local de Origem" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" +msgstr "Qualquer local" #: src/pages/build/BuildDetail.tsx:196 #: src/pages/part/PartDetail.tsx:280 #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "Local de Destino" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "Local de Destino" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "Detalhes da Produção" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "Itens de linha" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "Saídas Incompletas" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "Estoque Consumido" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "Pedido de Produção Filhos" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "Anexos" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "Anotações" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "Editar Pedido de Produção" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "Cancelar Pedido de Produção" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "Adicionar Pedido de Produção" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "Cancelar Pedido de Produção" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "Adicionar Pedido de Produção" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "Ações do Pedido de Produção" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "Cancelar pedido" @@ -4152,8 +4165,8 @@ msgstr "Fabricante" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "Detalhes de peça do Fabricante" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "Parâmetros" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "Fornecedores" @@ -4382,118 +4395,118 @@ msgstr "Ações de Categoria" msgid "Category Details" msgstr "Detalhes da categoria" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "Variante de" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "Revisão" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "Categoria" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "Local Padrão" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "Localização padrão da categoria" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "IPN" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "Unidades" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "Palavras-chave" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "Link" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "Estoque Disponível" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "Estoque Mínimo" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "No pedido" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "Alocado para Pedidos de Construção" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "Alocado para Pedidos de Venda" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "Pode Produzir" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "Produzindo" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "Modelo de peça" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "Peça Montada" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "Peça Rastreável" @@ -4502,98 +4515,98 @@ msgstr "Peça Rastreável" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "Criado em" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "Fornecedor Padrão" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "Faixa de Preço" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "Último Balanço" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "Variantes" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "Alocações" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "Lista de Materiais" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "Usado em" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "Fabricantes" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "Agendamento" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "Testar Modelos" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "Peças Relacionadas" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "Peças Relacionadas" msgid "Available" msgstr "Disponível" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "No pedido" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "Em Produção" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "Editar Peça" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "Excluir Peça" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "Excluir esta peça não é reversível" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "Ações de Estoque" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "Contagem do estoque" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "Transferir estoque de peça" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "Ações da Peça" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "Carregando dados de preços" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "Data" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "Referencia do fornecedor" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "Itens de Linha Concluídos" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "Moeda do pedido" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "Custo Total" @@ -4910,40 +4925,40 @@ msgstr "Custo Total" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "Criado em" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "Detalhes do pedido" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "Ações de Pedido" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "Referência do Cliente" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "Envios Concluídos" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "Editar Pedido de Devolução" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "Adicionar Pedido de Devolução" msgid "Customers" msgstr "Clientes" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "Editar Pedido de Venda" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "Adicionar Pedido de Vendas" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "Envios Pendentes" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "Filtro" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "Essa ação não pode ser desfeita!" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "Ações de código de barras" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "Remover registros selecionados" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "Atualizar dados" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "Filtros da Tabela" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5683,6 +5701,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7360,16 +7391,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7469,6 +7491,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "Visualização móvel detectada" diff --git a/src/frontend/src/locales/ro/messages.po b/src/frontend/src/locales/ro/messages.po index a3eaa87703..b98b565a8b 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: 2024-07-24 18:23\n" +"PO-Revision-Date: 2024-08-01 19:29\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" @@ -150,7 +150,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "" @@ -403,16 +403,16 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -865,7 +865,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" @@ -1366,16 +1365,16 @@ msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "" @@ -1440,7 +1439,7 @@ msgstr "" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "" @@ -1545,7 +1544,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "" @@ -1607,8 +1606,8 @@ msgstr "" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "" @@ -1690,7 +1689,7 @@ msgstr "" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "" @@ -1704,7 +1703,7 @@ msgstr "" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2886,15 +2887,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2902,82 +2903,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "" @@ -3900,25 +3901,25 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "" msgid "Description" msgstr "" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3985,21 +3986,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4007,6 +4004,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4152,8 +4165,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4382,118 +4395,118 @@ msgstr "" msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4502,98 +4515,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4910,40 +4925,40 @@ msgstr "" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5683,6 +5701,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7360,16 +7391,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7469,6 +7491,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "" diff --git a/src/frontend/src/locales/ru/messages.po b/src/frontend/src/locales/ru/messages.po index 95d0abaaa3..3417a8e3de 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: 2024-07-24 18:23\n" +"PO-Revision-Date: 2024-08-01 19: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" @@ -150,7 +150,7 @@ msgid "Remove the associated image from this item?" msgstr "Удалить связанное изображение?" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "Очистить" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "Не удалось загрузить изображение" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "Успешно" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "Ошибка формы" @@ -403,16 +403,16 @@ msgstr "Ошибка формы" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "Обновить" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "Узел" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -744,7 +744,7 @@ msgstr "" #: src/components/importer/ImportDataSelector.tsx:361 #: src/tables/build/BuildOutputTable.tsx:205 msgid "Complete" -msgstr "" +msgstr "Готово" #: src/components/importer/ImportDataSelector.tsx:362 msgid "Filter by row completion status" @@ -752,16 +752,16 @@ msgstr "" #: src/components/importer/ImportDataSelector.tsx:379 msgid "Import selected rows" -msgstr "" +msgstr "Импорт выделенных строк" #: src/components/importer/ImportDataSelector.tsx:394 msgid "Processing Data" -msgstr "" +msgstr "Обработка данных" #: src/components/importer/ImporterColumnSelector.tsx:50 #: src/components/importer/ImporterColumnSelector.tsx:176 msgid "An error occurred" -msgstr "" +msgstr "Произошла ошибка" #: src/components/importer/ImporterColumnSelector.tsx:62 msgid "Select column, or leave blank to ignore this field." @@ -865,13 +865,12 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" -msgstr "" +msgstr "Действия со штрихкодом" #: src/components/items/ActionDropdown.tsx:143 msgid "View Barcode" -msgstr "" +msgstr "Показать штрихкод" #: src/components/items/ActionDropdown.tsx:150 msgid "View" @@ -879,7 +878,7 @@ msgstr "" #: src/components/items/ActionDropdown.tsx:151 msgid "View barcode" -msgstr "" +msgstr "Показать штрихкод" #: src/components/items/ActionDropdown.tsx:167 msgid "Link Barcode" @@ -905,12 +904,12 @@ msgstr "Изменить" #: src/components/items/ActionDropdown.tsx:225 msgid "Delete item" -msgstr "" +msgstr "Удалить элемент" #: src/components/items/ActionDropdown.tsx:262 #: src/tables/RowActions.tsx:31 msgid "Duplicate" -msgstr "" +msgstr "Дублировать" #: src/components/items/ActionDropdown.tsx:263 msgid "Duplicate item" @@ -984,7 +983,7 @@ msgstr "" #: src/components/modals/AboutInvenTreeModal.tsx:99 msgid "Version Information" -msgstr "" +msgstr "Информация о версии" #: src/components/modals/AboutInvenTreeModal.tsx:103 msgid "Your InvenTree version status is" @@ -992,40 +991,40 @@ msgstr "" #: src/components/modals/AboutInvenTreeModal.tsx:107 msgid "Development Version" -msgstr "" +msgstr "Версия разработки" #: src/components/modals/AboutInvenTreeModal.tsx:111 msgid "Up to Date" -msgstr "" +msgstr "Последняя версия" #: src/components/modals/AboutInvenTreeModal.tsx:115 msgid "Update Available" -msgstr "" +msgstr "Доступно обновление" #: src/components/modals/AboutInvenTreeModal.tsx:125 msgid "InvenTree Version" -msgstr "" +msgstr "Версия InvenTree" #: src/components/modals/AboutInvenTreeModal.tsx:131 msgid "Commit Hash" -msgstr "" +msgstr "Хеш коммита" #: src/components/modals/AboutInvenTreeModal.tsx:136 msgid "Commit Date" -msgstr "" +msgstr "Дата коммита" #: src/components/modals/AboutInvenTreeModal.tsx:141 msgid "Commit Branch" -msgstr "" +msgstr "Ветка коммита" #: src/components/modals/AboutInvenTreeModal.tsx:146 #: src/components/modals/ServerInfoModal.tsx:133 msgid "API Version" -msgstr "" +msgstr "Версия API" #: src/components/modals/AboutInvenTreeModal.tsx:149 msgid "Python Version" -msgstr "" +msgstr "Версия Python" #: src/components/modals/AboutInvenTreeModal.tsx:152 msgid "Django Version" @@ -1164,15 +1163,15 @@ msgstr "" #: src/components/modals/ServerInfoModal.tsx:57 msgid "Docker Mode" -msgstr "" +msgstr "Режим Docker" #: src/components/modals/ServerInfoModal.tsx:60 msgid "Server is deployed using docker" -msgstr "" +msgstr "Сервер развернут с помощью docker" #: src/components/modals/ServerInfoModal.tsx:66 msgid "Plugin Support" -msgstr "" +msgstr "Поддержка плагина" #: src/components/modals/ServerInfoModal.tsx:71 msgid "Plugin support enabled" @@ -1184,45 +1183,45 @@ msgstr "" #: src/components/modals/ServerInfoModal.tsx:80 msgid "Server status" -msgstr "" +msgstr "Состояние сервера" #: src/components/modals/ServerInfoModal.tsx:86 msgid "Healthy" -msgstr "" +msgstr "Исправен" #: src/components/modals/ServerInfoModal.tsx:88 msgid "Issues detected" -msgstr "" +msgstr "Обнаруженные проблемы" #: src/components/modals/ServerInfoModal.tsx:97 msgid "Background Worker" -msgstr "" +msgstr "Фоновый процесс" #: src/components/modals/ServerInfoModal.tsx:101 msgid "Background worker not running" -msgstr "" +msgstr "Фоновый процесс не запущен" #: src/components/modals/ServerInfoModal.tsx:109 msgid "Email Settings" -msgstr "" +msgstr "Настройки Email" #: src/components/modals/ServerInfoModal.tsx:113 msgid "Email settings not configured" -msgstr "" +msgstr "Параметры электронной почты не настроены" #: src/components/modals/ServerInfoModal.tsx:121 #: src/tables/plugin/PluginListTable.tsx:144 #: src/tables/plugin/PluginListTable.tsx:294 msgid "Version" -msgstr "" +msgstr "Версия" #: src/components/modals/ServerInfoModal.tsx:127 msgid "Server Version" -msgstr "" +msgstr "Версия сервера" #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." -msgstr "" +msgstr "Ничего не найдено..." #: src/components/nav/MainMenu.tsx:40 #: src/pages/Index/Profile/Profile.tsx:15 @@ -1302,7 +1301,7 @@ msgstr "Документация" #: src/components/nav/NavigationDrawer.tsx:78 msgid "About" -msgstr "" +msgstr "О проекте" #: src/components/nav/NotificationDrawer.tsx:79 #: src/pages/Index/Settings/SystemSettings.tsx:109 @@ -1320,7 +1319,7 @@ msgstr "У вас нет непрочитанных уведомлений." #: src/components/nav/NotificationDrawer.tsx:118 #: src/tables/notifications/NotificationsTable.tsx:36 msgid "Notification" -msgstr "" +msgstr "Уведомление" #: src/components/nav/NotificationDrawer.tsx:141 #: src/pages/Notifications.tsx:73 @@ -1366,16 +1365,16 @@ msgstr "Неизвестная модель: {model}" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "Детали" @@ -1440,7 +1439,7 @@ msgstr "Категория детали" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "Категории деталей" @@ -1545,7 +1544,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Заказы на закупку" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Заказы на продажу" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "" @@ -1607,8 +1606,8 @@ msgstr "" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "" @@ -1690,7 +1689,7 @@ msgstr "" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "Неактивный" @@ -1704,7 +1703,7 @@ msgstr "" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "Покупка" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "Продажи" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2886,15 +2887,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2902,82 +2903,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "В наличии" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "Добавить Остатки" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "Удалить запасы" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "Перемещение запасов" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "Подсчет остатков" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "Изменить статус запасов" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "Объединить Запасы" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "Удалить складскую позицию" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "Заказы на сборку" @@ -3900,25 +3901,25 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "" msgid "Description" msgstr "Описание" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3985,21 +3986,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4007,6 +4004,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "Подробности сборки" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4152,8 +4165,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4382,118 +4395,118 @@ msgstr "" msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "Ревизия" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "Категория" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "Ед. изм" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "Ссылка" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "Заблокировано" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4502,98 +4515,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "Ценовой диапазон" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4910,40 +4925,40 @@ msgstr "" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "Отфильтровать" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5683,6 +5701,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7360,16 +7391,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7469,6 +7491,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "" diff --git a/src/frontend/src/locales/sk/messages.po b/src/frontend/src/locales/sk/messages.po index 1318cba46b..ecfb3209fd 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: 2024-07-24 18:23\n" +"PO-Revision-Date: 2024-08-01 19:28\n" "Last-Translator: \n" "Language-Team: Slovak\n" "Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n" @@ -150,7 +150,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "" @@ -403,16 +403,16 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -865,7 +865,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" @@ -1366,16 +1365,16 @@ msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "" @@ -1440,7 +1439,7 @@ msgstr "" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "" @@ -1545,7 +1544,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "" @@ -1607,8 +1606,8 @@ msgstr "" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "" @@ -1690,7 +1689,7 @@ msgstr "" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "" @@ -1704,7 +1703,7 @@ msgstr "" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2886,15 +2887,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2902,82 +2903,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "" @@ -3900,25 +3901,25 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "" msgid "Description" msgstr "" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3985,21 +3986,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4007,6 +4004,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4152,8 +4165,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4382,118 +4395,118 @@ msgstr "" msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4502,98 +4515,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4910,40 +4925,40 @@ msgstr "" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5683,6 +5701,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7360,16 +7391,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7469,6 +7491,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "" diff --git a/src/frontend/src/locales/sl/messages.po b/src/frontend/src/locales/sl/messages.po index 3929fdac5e..3f6cf43f7e 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: 2024-07-24 18:23\n" +"PO-Revision-Date: 2024-08-01 19: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" @@ -150,7 +150,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "" @@ -403,16 +403,16 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -865,7 +865,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" @@ -1366,16 +1365,16 @@ msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "" @@ -1440,7 +1439,7 @@ msgstr "" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "" @@ -1545,7 +1544,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "" @@ -1607,8 +1606,8 @@ msgstr "" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "" @@ -1690,7 +1689,7 @@ msgstr "" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "" @@ -1704,7 +1703,7 @@ msgstr "" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2886,15 +2887,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2902,82 +2903,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "" @@ -3900,25 +3901,25 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "" msgid "Description" msgstr "" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3985,21 +3986,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4007,6 +4004,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4152,8 +4165,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4382,118 +4395,118 @@ msgstr "" msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4502,98 +4515,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4910,40 +4925,40 @@ msgstr "" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5683,6 +5701,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7360,16 +7391,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7469,6 +7491,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "" diff --git a/src/frontend/src/locales/sr/messages.po b/src/frontend/src/locales/sr/messages.po index 00e6455b66..72085a1d37 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: 2024-07-24 18:24\n" +"PO-Revision-Date: 2024-08-01 19:29\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" @@ -150,7 +150,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "Uspešno" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "Greška Obrasca" @@ -403,16 +403,16 @@ msgstr "Greška Obrasca" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "Obnovi" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "Host" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -865,7 +865,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "Akcije Barkoda" @@ -1366,16 +1365,16 @@ msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "" @@ -1440,7 +1439,7 @@ msgstr "" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "" @@ -1545,7 +1544,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "" @@ -1607,8 +1606,8 @@ msgstr "" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "" @@ -1690,7 +1689,7 @@ msgstr "" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "" @@ -1704,7 +1703,7 @@ msgstr "" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2886,15 +2887,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2902,82 +2903,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "" @@ -3900,25 +3901,25 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "" msgid "Description" msgstr "" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3985,21 +3986,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4007,6 +4004,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4152,8 +4165,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4382,118 +4395,118 @@ msgstr "" msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4502,98 +4515,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4910,40 +4925,40 @@ msgstr "" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5683,6 +5701,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7360,16 +7391,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7469,6 +7491,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "" diff --git a/src/frontend/src/locales/sv/messages.po b/src/frontend/src/locales/sv/messages.po index fb47c6ebde..277fa16cfe 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: 2024-07-24 18:23\n" +"PO-Revision-Date: 2024-08-01 19:28\n" "Last-Translator: \n" "Language-Team: Swedish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -150,7 +150,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:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "Rensa" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "Bilduppladdning misslyckades" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "Lyckades" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "Formulär fel" @@ -403,16 +403,16 @@ msgstr "Formulär fel" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "Uppdatera" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "Värd" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -865,7 +865,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "Streckkods åtgärder" @@ -1366,16 +1365,16 @@ msgstr "Okänd modell: {model}" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "Artkel" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "Artiklar" @@ -1440,7 +1439,7 @@ msgstr "" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "Artikelkategorier" @@ -1545,7 +1544,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Inköpsorder" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Försäljningsorder" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "" @@ -1607,8 +1606,8 @@ msgstr "" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "" @@ -1690,7 +1689,7 @@ msgstr "" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "Inaktiv" @@ -1704,7 +1703,7 @@ msgstr "" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2886,15 +2887,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "Serienummer" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2902,82 +2903,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "Byggordrar" @@ -3900,25 +3901,25 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "" msgid "Description" msgstr "Beskrivning" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3985,21 +3986,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4007,6 +4004,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4152,8 +4165,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "Parametrar" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4382,118 +4395,118 @@ msgstr "" msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "Kategori" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "IAN" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "Enheter" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "Länk" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4502,98 +4515,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "Prisintervall" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4910,40 +4925,40 @@ msgstr "" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "Filter" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "Streckkods åtgärder" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "Uppdatera data" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "Tabellfilter" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5683,6 +5701,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7360,16 +7391,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7469,6 +7491,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "Mobil vy upptäckt" diff --git a/src/frontend/src/locales/th/messages.po b/src/frontend/src/locales/th/messages.po index 93e62bdd32..4b4da23e65 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: 2024-07-24 18:24\n" +"PO-Revision-Date: 2024-08-01 19:28\n" "Last-Translator: \n" "Language-Team: Thai\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -150,7 +150,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "" @@ -403,16 +403,16 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -865,7 +865,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" @@ -1366,16 +1365,16 @@ msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "" @@ -1440,7 +1439,7 @@ msgstr "" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "" @@ -1545,7 +1544,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "" @@ -1607,8 +1606,8 @@ msgstr "" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "" @@ -1690,7 +1689,7 @@ msgstr "" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "" @@ -1704,7 +1703,7 @@ msgstr "" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2886,15 +2887,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2902,82 +2903,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "" @@ -3900,25 +3901,25 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "" msgid "Description" msgstr "" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3985,21 +3986,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4007,6 +4004,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4152,8 +4165,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4382,118 +4395,118 @@ msgstr "" msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4502,98 +4515,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4910,40 +4925,40 @@ msgstr "" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5683,6 +5701,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7360,16 +7391,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7469,6 +7491,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "" diff --git a/src/frontend/src/locales/tr/messages.po b/src/frontend/src/locales/tr/messages.po index 32d166736e..4b73243cab 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: 2024-07-24 18:23\n" +"PO-Revision-Date: 2024-08-01 19:28\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -150,7 +150,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "Başarılı" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "" @@ -403,16 +403,16 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "Sunucu" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -865,7 +865,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" @@ -1366,16 +1365,16 @@ msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "Parça" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "Parçalar" @@ -1440,7 +1439,7 @@ msgstr "" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "Parça Kategorileri" @@ -1545,7 +1544,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Satın Alma Emirleri" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Satış Emirleri" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "" @@ -1607,8 +1606,8 @@ msgstr "" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "" @@ -1690,7 +1689,7 @@ msgstr "" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "" @@ -1704,7 +1703,7 @@ msgstr "" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2886,15 +2887,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2902,82 +2903,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "Yapım İşi Emirleri" @@ -3900,25 +3901,25 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "" msgid "Description" msgstr "Açıklama" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3985,21 +3986,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4007,6 +4004,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4152,8 +4165,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4382,118 +4395,118 @@ msgstr "" msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "Kategori" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "DPN" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "Birim" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "Bağlantı" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4502,98 +4515,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "Fiyat Aralığı" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4910,40 +4925,40 @@ msgstr "" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "Filtre" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "Barkod işlemleri" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "Veriyi yenile" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "Tablo filtreleri" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5683,6 +5701,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7360,16 +7391,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7469,6 +7491,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "" diff --git a/src/frontend/src/locales/uk/messages.po b/src/frontend/src/locales/uk/messages.po index 6d548f70f3..4745478bee 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: 2024-07-24 18:23\n" +"PO-Revision-Date: 2024-08-01 19: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" @@ -150,7 +150,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "" @@ -403,16 +403,16 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -865,7 +865,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" @@ -1366,16 +1365,16 @@ msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "" @@ -1440,7 +1439,7 @@ msgstr "" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "" @@ -1545,7 +1544,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "" @@ -1607,8 +1606,8 @@ msgstr "" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "" @@ -1690,7 +1689,7 @@ msgstr "" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "" @@ -1704,7 +1703,7 @@ msgstr "" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2886,15 +2887,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2902,82 +2903,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "" @@ -3900,25 +3901,25 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "" msgid "Description" msgstr "" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3985,21 +3986,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4007,6 +4004,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4152,8 +4165,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4382,118 +4395,118 @@ msgstr "" msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4502,98 +4515,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4910,40 +4925,40 @@ msgstr "" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5683,6 +5701,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7360,16 +7391,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7469,6 +7491,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "" diff --git a/src/frontend/src/locales/vi/messages.po b/src/frontend/src/locales/vi/messages.po index f4e4b8005b..8a9bd8549e 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: 2024-07-24 18:24\n" +"PO-Revision-Date: 2024-08-01 19:28\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -150,7 +150,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "Thành công" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "Lỗi form" @@ -403,16 +403,16 @@ msgstr "Lỗi form" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "Cập nhật" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "Host" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -865,7 +865,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "Chức năng mã vạch" @@ -1366,16 +1365,16 @@ msgstr "Model không rõ: {model}" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "Phụ kiện" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "Phụ tùng" @@ -1440,7 +1439,7 @@ msgstr "Danh mục phụ kiện" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "Danh mục phụ kiện" @@ -1545,7 +1544,7 @@ msgstr "Đơn đặt mua" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "Đơn hàng mua" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "Đơn đặt bán" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "Đơn hàng bán" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "Vận chuyển đơn hàng" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "Đơn hàng trả lại" @@ -1607,8 +1606,8 @@ msgstr "Địa chỉ" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "Liên hệ" @@ -1690,7 +1689,7 @@ msgstr "Lô hàng" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "" @@ -1704,7 +1703,7 @@ msgstr "" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "Mua sắm" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "Bán hàng" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "Đã nhận" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 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ẻ" @@ -2886,15 +2887,15 @@ msgstr "Thêm số lượng đã có theo gói thay vì các mục đơn lẻ" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 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:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "Số sê-ri" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Điền số sê-ri cho kho mới (hoặc để trống)" @@ -2902,82 +2903,82 @@ msgstr "Điền số sê-ri cho kho mới (hoặc để trống)" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "Còn hàng" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "Thêm" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "Đếm" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "Báo cáo" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "Kiểm kê" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "Đơn đặt bản dựng" @@ -3900,25 +3901,25 @@ msgstr "Đánh dấu chưa đọc" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "" msgid "Description" msgstr "Mô tả" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "Đầu ra hoàn thiện" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "" msgid "Responsible" msgstr "Chịu trách nhiệm" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "Ngày mục tiêu" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3985,21 +3986,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4007,6 +4004,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "Chi tiết bản dựng" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "Dòng hàng hóa" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "Đầu ra chưa hoàn hiện" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "Kho tiêu thụ" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "Đơn đặt bản dựng con" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "Đính kèm" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "Ghi chú" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4152,8 +4165,8 @@ msgstr "Nhà sản xuất" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "Thông số" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "Nhà cung cấp" @@ -4382,118 +4395,118 @@ msgstr "" msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "Danh mục" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "IPN" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "Đơn vị" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "Liên kết" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4502,98 +4515,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "Khoảng giá" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "Biến thể" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "Phân bổ" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "Hóa đơn nguyên vật liệu" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "Sử dụng trong" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "Mẫu thử nghiệm" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "Phụ kiện liên quan" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "Phụ kiện liên quan" msgid "Available" msgstr "Có sẵn" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "On Order" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "Sửa phụ kiện" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4910,40 +4925,40 @@ msgstr "" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "Chi tiết đơn đặt" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "Chức năng đơn đặt" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "Bộ lọc" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "Chức năng mã vạch" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "Làm mới dữ liệu" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "Bộ lọc bảng" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5683,6 +5701,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7360,16 +7391,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7469,6 +7491,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "Khung nhìn màn hình di dộng đã được nhận dạng" diff --git a/src/frontend/src/locales/zh-hans/messages.po b/src/frontend/src/locales/zh-hans/messages.po index 5a8e8c6af0..3d59284b54 100644 --- a/src/frontend/src/locales/zh-hans/messages.po +++ b/src/frontend/src/locales/zh-hans/messages.po @@ -57,7 +57,7 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:313 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 @@ -145,7 +145,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -176,7 +176,7 @@ msgid "Clear" msgstr "" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -235,7 +235,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -285,7 +285,7 @@ msgid "Error saving template" msgstr "" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "" @@ -313,19 +313,19 @@ msgstr "" msgid "The preview has been updated successfully." msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "" @@ -333,11 +333,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "" @@ -390,7 +390,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "" @@ -398,16 +398,16 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -565,9 +565,9 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 -#: src/pages/part/CategoryDetail.tsx:80 -#: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/part/CategoryDetail.tsx:81 +#: src/pages/part/PartDetail.tsx:129 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -577,7 +577,7 @@ msgstr "" #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -617,6 +617,32 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -815,7 +841,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" @@ -1170,11 +1195,6 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:192 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1306,23 +1326,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:210 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1334,10 +1354,10 @@ msgstr "" #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 #: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "" @@ -1380,14 +1400,14 @@ msgid "Manufacturer Parts" msgstr "" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "" @@ -1399,9 +1419,9 @@ msgstr "" #: src/components/render/ModelType.tsx:73 #: src/pages/company/CompanyDetail.tsx:200 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "" @@ -1410,8 +1430,8 @@ msgid "Stock Location" msgstr "" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:371 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 #: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1492,7 +1512,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1506,8 +1526,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1516,7 +1536,7 @@ msgstr "" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1530,7 +1550,7 @@ msgid "Sales Order Shipments" msgstr "" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "" @@ -1554,8 +1574,8 @@ msgstr "" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "" @@ -1633,39 +1653,39 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 +#: src/components/render/Part.tsx:30 #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/part/PartDetail.tsx:517 +#: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 #: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 #: src/forms/PurchaseOrderForms.tsx:636 #: src/pages/part/pricing/BomPricingPanel.tsx:104 @@ -1673,6 +1693,7 @@ msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2417,9 +2438,9 @@ msgstr "" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "" @@ -2629,7 +2650,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2642,19 +2663,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2674,10 +2695,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2686,7 +2708,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2695,10 +2717,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2728,14 +2750,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2749,7 +2771,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2757,15 +2779,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2773,82 +2795,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3299,7 +3321,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3395,7 +3417,7 @@ msgid "Custom Units" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "" @@ -3571,15 +3593,15 @@ msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "" @@ -3635,26 +3657,26 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 -#: src/pages/part/CategoryDetail.tsx:94 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3663,33 +3685,33 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3697,20 +3719,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3720,21 +3742,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -3742,6 +3760,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "" @@ -3758,88 +3780,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -3887,8 +3921,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -3957,12 +3991,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4044,191 +4078,191 @@ msgstr "" msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:94 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4237,98 +4271,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4338,59 +4372,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 -#: src/pages/stock/LocationDetail.tsx:309 +#: src/pages/part/PartDetail.tsx:929 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4575,6 +4610,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4617,20 +4653,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4641,40 +4677,40 @@ msgstr "" #~ msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4684,78 +4720,78 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:336 -#: src/tables/stock/StockLocationTable.tsx:115 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:341 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:331 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4953,6 +4989,7 @@ msgid "Filter" msgstr "" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5033,20 +5070,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "" @@ -5296,6 +5333,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5414,6 +5453,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5479,11 +5540,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -5812,33 +5868,33 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:104 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6848,20 +6904,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -6938,7 +6994,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7075,10 +7131,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7091,16 +7143,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7148,6 +7190,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7159,32 +7202,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:125 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" @@ -7200,6 +7243,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "" diff --git a/src/frontend/src/locales/zh-hant/messages.po b/src/frontend/src/locales/zh-hant/messages.po index 61141cc992..50a87ed72c 100644 --- a/src/frontend/src/locales/zh-hant/messages.po +++ b/src/frontend/src/locales/zh-hant/messages.po @@ -57,7 +57,7 @@ msgstr "" #: src/components/buttons/PrintingActions.tsx:144 #: src/components/editors/NotesEditor.tsx:65 #: src/components/editors/NotesEditor.tsx:165 -#: src/components/forms/fields/ApiFormField.tsx:313 +#: src/components/forms/fields/ApiFormField.tsx:319 #: src/components/importer/ImportDataSelector.tsx:183 #: src/components/importer/ImporterColumnSelector.tsx:207 #: src/components/modals/LicenseModal.tsx:75 @@ -145,7 +145,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -176,7 +176,7 @@ msgid "Clear" msgstr "" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -235,7 +235,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -285,7 +285,7 @@ msgid "Error saving template" msgstr "" #: src/components/editors/TemplateEditor/TemplateEditor.tsx:146 -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:270 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:274 msgid "Save & Reload Preview" msgstr "" @@ -313,19 +313,19 @@ msgstr "" msgid "The preview has been updated successfully." msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:262 -msgid "Reload preview" -msgstr "" - -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 -msgid "Use the currently stored template from the server" -msgstr "" - #: src/components/editors/TemplateEditor/TemplateEditor.tsx:263 #~ msgid "Save & Reload preview" #~ msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:271 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:266 +msgid "Reload preview" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:267 +msgid "Use the currently stored template from the server" +msgstr "" + +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:275 msgid "Save the current template and reload the preview" msgstr "" @@ -333,11 +333,11 @@ msgstr "" #~ msgid "to preview" #~ msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:329 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:333 msgid "Select instance to preview" msgstr "" -#: src/components/editors/TemplateEditor/TemplateEditor.tsx:373 +#: src/components/editors/TemplateEditor/TemplateEditor.tsx:377 msgid "Error rendering template" msgstr "" @@ -390,7 +390,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "" @@ -398,16 +398,16 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -565,9 +565,9 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:42 #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 -#: src/pages/part/CategoryDetail.tsx:80 -#: src/pages/part/PartDetail.tsx:127 -#: src/pages/stock/LocationDetail.tsx:87 +#: src/pages/part/CategoryDetail.tsx:81 +#: src/pages/part/PartDetail.tsx:129 +#: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 #: src/tables/machine/MachineTypeTable.tsx:216 @@ -577,7 +577,7 @@ msgstr "" #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:32 #: src/tables/settings/GroupTable.tsx:141 #: src/tables/settings/PendingTasksTable.tsx:26 -#: src/tables/stock/LocationTypesTable.tsx:60 +#: src/tables/stock/LocationTypesTable.tsx:69 msgid "Name" msgstr "" @@ -617,6 +617,32 @@ msgstr "" msgid "State: <0>worker ({0}), <1>plugins{1}" msgstr "" +#: src/components/forms/fields/IconField.tsx:81 +msgid "No icon selected" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:159 +msgid "Uncategorized" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:209 +#: src/components/nav/Layout.tsx:70 +#: src/tables/part/PartThumbTable.tsx:192 +msgid "Search..." +msgstr "" + +#: src/components/forms/fields/IconField.tsx:223 +msgid "Select category" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:232 +msgid "Select pack" +msgstr "" + +#: src/components/forms/fields/IconField.tsx:237 +msgid "{0} icons" +msgstr "" + #: src/components/forms/fields/RelatedModelField.tsx:320 #: src/pages/Index/Settings/UserSettings.tsx:71 #: src/tables/Search.tsx:23 @@ -815,7 +841,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" @@ -1170,11 +1195,6 @@ msgstr "" msgid "Server Version" msgstr "" -#: src/components/nav/Layout.tsx:70 -#: src/tables/part/PartThumbTable.tsx:192 -msgid "Search..." -msgstr "" - #: src/components/nav/Layout.tsx:73 msgid "Nothing found..." msgstr "" @@ -1306,23 +1326,23 @@ msgstr "" msgid "No results available for search query" msgstr "" -#: src/components/render/Instance.tsx:210 +#: src/components/render/Instance.tsx:213 msgid "Unknown model: {model}" msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1334,10 +1354,10 @@ msgstr "" #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:33 #: src/pages/Index/Settings/SystemSettings.tsx:173 -#: src/pages/part/CategoryDetail.tsx:112 -#: src/pages/part/CategoryDetail.tsx:237 -#: src/pages/part/CategoryDetail.tsx:267 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:244 +#: src/pages/part/CategoryDetail.tsx:274 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "" @@ -1380,14 +1400,14 @@ msgid "Manufacturer Parts" msgstr "" #: src/components/render/ModelType.tsx:63 -#: src/pages/part/CategoryDetail.tsx:297 +#: src/pages/part/CategoryDetail.tsx:305 msgid "Part Category" msgstr "" #: src/components/render/ModelType.tsx:64 -#: src/pages/part/CategoryDetail.tsx:251 -#: src/pages/part/CategoryDetail.tsx:288 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/CategoryDetail.tsx:258 +#: src/pages/part/CategoryDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "" @@ -1399,9 +1419,9 @@ msgstr "" #: src/components/render/ModelType.tsx:73 #: src/pages/company/CompanyDetail.tsx:200 -#: src/pages/stock/LocationDetail.tsx:120 -#: src/pages/stock/LocationDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:379 +#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:387 msgid "Stock Items" msgstr "" @@ -1410,8 +1430,8 @@ msgid "Stock Location" msgstr "" #: src/components/render/ModelType.tsx:82 -#: src/pages/stock/LocationDetail.tsx:187 -#: src/pages/stock/LocationDetail.tsx:371 +#: src/pages/stock/LocationDetail.tsx:194 +#: src/pages/stock/LocationDetail.tsx:379 #: src/pages/stock/StockDetail.tsx:564 msgid "Stock Locations" msgstr "" @@ -1492,7 +1512,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1506,8 +1526,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1516,7 +1536,7 @@ msgstr "" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1530,7 +1550,7 @@ msgid "Sales Order Shipments" msgstr "" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "" @@ -1554,8 +1574,8 @@ msgstr "" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "" @@ -1633,39 +1653,39 @@ msgstr "" msgid "Shipment" msgstr "" -#: src/components/render/Part.tsx:24 +#: src/components/render/Part.tsx:25 #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "" -#: src/components/render/Part.tsx:27 +#: src/components/render/Part.tsx:28 #: src/tables/bom/BomTable.tsx:203 #: src/tables/part/PartTable.tsx:134 msgid "No stock" msgstr "" -#: src/components/render/Part.tsx:29 +#: src/components/render/Part.tsx:30 #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 -#: src/pages/stock/LocationDetail.tsx:352 +#: src/pages/part/PartDetail.tsx:517 +#: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 msgid "Stock" msgstr "" -#: src/components/render/Stock.tsx:52 +#: src/components/render/Stock.tsx:54 #: src/pages/stock/StockDetail.tsx:147 #: src/pages/stock/StockDetail.tsx:529 #: src/tables/build/BuildAllocatedStockTable.tsx:64 msgid "Serial Number" msgstr "" -#: src/components/render/Stock.tsx:54 +#: src/components/render/Stock.tsx:56 #: src/forms/BuildForms.tsx:206 #: src/forms/PurchaseOrderForms.tsx:636 #: src/pages/part/pricing/BomPricingPanel.tsx:104 @@ -1673,6 +1693,7 @@ msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2417,9 +2438,9 @@ msgstr "" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "" @@ -2629,7 +2650,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2642,19 +2663,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2674,10 +2695,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2686,7 +2708,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2695,10 +2717,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2728,14 +2750,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2749,7 +2771,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2757,15 +2779,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2773,82 +2795,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3299,7 +3321,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3395,7 +3417,7 @@ msgid "Custom Units" msgstr "" #: src/pages/Index/Settings/AdminCenter/Index.tsx:146 -#: src/pages/part/CategoryDetail.tsx:257 +#: src/pages/part/CategoryDetail.tsx:264 msgid "Part Parameters" msgstr "" @@ -3571,15 +3593,15 @@ msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "" @@ -3635,26 +3657,26 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 -#: src/pages/part/CategoryDetail.tsx:94 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/CategoryDetail.tsx:101 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 -#: src/pages/stock/LocationDetail.tsx:101 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 +#: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 #: src/tables/machine/MachineTypeTable.tsx:112 @@ -3663,33 +3685,33 @@ msgstr "" #: src/tables/part/RelatedPartTable.tsx:64 #: src/tables/plugin/PluginListTable.tsx:129 #: src/tables/plugin/PluginListTable.tsx:276 -#: src/tables/stock/LocationTypesTable.tsx:65 +#: src/tables/stock/LocationTypesTable.tsx:74 msgid "Description" msgstr "" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3697,20 +3719,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3720,21 +3742,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -3742,6 +3760,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "" @@ -3758,88 +3780,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -3887,8 +3921,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -3957,12 +3991,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4044,191 +4078,191 @@ msgstr "" msgid "Add Supplier Part" msgstr "" -#: src/pages/part/CategoryDetail.tsx:86 -#: src/pages/stock/LocationDetail.tsx:93 +#: src/pages/part/CategoryDetail.tsx:93 +#: src/pages/stock/LocationDetail.tsx:100 #: src/tables/settings/ErrorTable.tsx:34 msgid "Path" msgstr "" -#: src/pages/part/CategoryDetail.tsx:102 +#: src/pages/part/CategoryDetail.tsx:109 msgid "Parent Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:119 +#: src/pages/part/CategoryDetail.tsx:126 msgid "Subcategories" msgstr "" -#: src/pages/part/CategoryDetail.tsx:126 -#: src/pages/stock/LocationDetail.tsx:133 -#: src/tables/part/PartCategoryTable.tsx:65 -#: src/tables/stock/StockLocationTable.tsx:47 +#: src/pages/part/CategoryDetail.tsx:133 +#: src/pages/stock/LocationDetail.tsx:140 +#: src/tables/part/PartCategoryTable.tsx:73 +#: src/tables/stock/StockLocationTable.tsx:49 msgid "Structural" msgstr "" -#: src/pages/part/CategoryDetail.tsx:132 +#: src/pages/part/CategoryDetail.tsx:139 msgid "Parent default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:139 +#: src/pages/part/CategoryDetail.tsx:146 msgid "Default location" msgstr "" -#: src/pages/part/CategoryDetail.tsx:150 +#: src/pages/part/CategoryDetail.tsx:157 msgid "Top level part category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:160 -#: src/pages/part/CategoryDetail.tsx:214 -#: src/tables/part/PartCategoryTable.tsx:94 +#: src/pages/part/CategoryDetail.tsx:167 +#: src/pages/part/CategoryDetail.tsx:221 +#: src/tables/part/PartCategoryTable.tsx:102 msgid "Edit Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:173 -#: src/pages/stock/LocationDetail.tsx:225 +#: src/pages/part/CategoryDetail.tsx:180 +#: src/pages/stock/LocationDetail.tsx:232 msgid "Delete items" msgstr "" -#: src/pages/part/CategoryDetail.tsx:181 -#: src/pages/part/CategoryDetail.tsx:219 +#: src/pages/part/CategoryDetail.tsx:188 +#: src/pages/part/CategoryDetail.tsx:226 msgid "Delete Part Category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:184 +#: src/pages/part/CategoryDetail.tsx:191 msgid "Parts Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:185 +#: src/pages/part/CategoryDetail.tsx:192 msgid "Action for parts in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:190 +#: src/pages/part/CategoryDetail.tsx:197 msgid "Child Categories Action" msgstr "" -#: src/pages/part/CategoryDetail.tsx:191 +#: src/pages/part/CategoryDetail.tsx:198 msgid "Action for child categories in this category" msgstr "" -#: src/pages/part/CategoryDetail.tsx:209 +#: src/pages/part/CategoryDetail.tsx:216 msgid "Category Actions" msgstr "" -#: src/pages/part/CategoryDetail.tsx:231 +#: src/pages/part/CategoryDetail.tsx:238 msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4237,98 +4271,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4338,59 +4372,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 -#: src/pages/stock/LocationDetail.tsx:309 +#: src/pages/part/PartDetail.tsx:929 +#: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4575,6 +4610,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4617,20 +4653,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4641,40 +4677,40 @@ msgstr "" #~ msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4684,78 +4720,78 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" -#: src/pages/stock/LocationDetail.tsx:109 +#: src/pages/stock/LocationDetail.tsx:116 msgid "Parent Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:127 +#: src/pages/stock/LocationDetail.tsx:134 msgid "Sublocations" msgstr "" -#: src/pages/stock/LocationDetail.tsx:139 -#: src/tables/stock/StockLocationTable.tsx:52 +#: src/pages/stock/LocationDetail.tsx:146 +#: src/tables/stock/StockLocationTable.tsx:54 msgid "External" msgstr "" -#: src/pages/stock/LocationDetail.tsx:145 -#: src/tables/stock/StockLocationTable.tsx:61 +#: src/pages/stock/LocationDetail.tsx:152 +#: src/tables/stock/StockLocationTable.tsx:63 msgid "Location Type" msgstr "" -#: src/pages/stock/LocationDetail.tsx:156 +#: src/pages/stock/LocationDetail.tsx:163 msgid "Top level stock location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:167 +#: src/pages/stock/LocationDetail.tsx:174 msgid "Location Details" msgstr "" -#: src/pages/stock/LocationDetail.tsx:193 +#: src/pages/stock/LocationDetail.tsx:200 msgid "Default Parts" msgstr "" -#: src/pages/stock/LocationDetail.tsx:212 -#: src/pages/stock/LocationDetail.tsx:336 -#: src/tables/stock/StockLocationTable.tsx:115 +#: src/pages/stock/LocationDetail.tsx:219 +#: src/pages/stock/LocationDetail.tsx:343 +#: src/tables/stock/StockLocationTable.tsx:123 msgid "Edit Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:233 -#: src/pages/stock/LocationDetail.tsx:341 +#: src/pages/stock/LocationDetail.tsx:240 +#: src/pages/stock/LocationDetail.tsx:348 msgid "Delete Stock Location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:236 +#: src/pages/stock/LocationDetail.tsx:243 msgid "Items Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:237 +#: src/pages/stock/LocationDetail.tsx:244 msgid "Action for stock items in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:242 +#: src/pages/stock/LocationDetail.tsx:249 msgid "Child Locations Action" msgstr "" -#: src/pages/stock/LocationDetail.tsx:243 +#: src/pages/stock/LocationDetail.tsx:250 msgid "Action for child locations in this location" msgstr "" -#: src/pages/stock/LocationDetail.tsx:331 +#: src/pages/stock/LocationDetail.tsx:338 msgid "Location Actions" msgstr "" @@ -4953,6 +4989,7 @@ msgid "Filter" msgstr "" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5033,20 +5070,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "" @@ -5296,6 +5333,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5414,6 +5453,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5479,11 +5540,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -5812,33 +5868,33 @@ msgstr "" msgid "Show assembly parts" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:60 +#: src/tables/part/PartCategoryTable.tsx:68 #: src/tables/part/PartTable.tsx:196 msgid "Include Subcategories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:61 +#: src/tables/part/PartCategoryTable.tsx:69 msgid "Include subcategories in results" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:66 +#: src/tables/part/PartCategoryTable.tsx:74 msgid "Show structural categories" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:70 +#: src/tables/part/PartCategoryTable.tsx:78 #: src/tables/part/PartTable.tsx:288 msgid "Subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:71 +#: src/tables/part/PartCategoryTable.tsx:79 msgid "Show categories to which the user is subscribed" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:78 +#: src/tables/part/PartCategoryTable.tsx:86 msgid "New Part Category" msgstr "" -#: src/tables/part/PartCategoryTable.tsx:104 +#: src/tables/part/PartCategoryTable.tsx:112 msgid "Add Part Category" msgstr "" @@ -6848,20 +6904,20 @@ msgstr "" msgid "Edit user" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:36 -#: src/tables/stock/LocationTypesTable.tsx:105 +#: src/tables/stock/LocationTypesTable.tsx:39 +#: src/tables/stock/LocationTypesTable.tsx:109 msgid "Add Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:44 +#: src/tables/stock/LocationTypesTable.tsx:47 msgid "Edit Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:52 +#: src/tables/stock/LocationTypesTable.tsx:55 msgid "Delete Location Type" msgstr "" -#: src/tables/stock/LocationTypesTable.tsx:69 +#: src/tables/stock/LocationTypesTable.tsx:63 msgid "Icon" msgstr "" @@ -6938,7 +6994,7 @@ msgid "Show items which are available" msgstr "" #: src/tables/stock/StockItemTable.tsx:314 -#: src/tables/stock/StockLocationTable.tsx:42 +#: src/tables/stock/StockLocationTable.tsx:44 msgid "Include Sublocations" msgstr "" @@ -7075,10 +7131,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7091,16 +7143,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7148,6 +7190,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7159,32 +7202,32 @@ msgstr "" #~ msgid "structural" #~ msgstr "" -#: src/tables/stock/StockLocationTable.tsx:43 -msgid "Include sublocations in results" -msgstr "" - #: src/tables/stock/StockLocationTable.tsx:43 #~ msgid "external" #~ msgstr "" -#: src/tables/stock/StockLocationTable.tsx:48 +#: src/tables/stock/StockLocationTable.tsx:45 +msgid "Include sublocations in results" +msgstr "" + +#: src/tables/stock/StockLocationTable.tsx:50 msgid "Show structural locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:53 +#: src/tables/stock/StockLocationTable.tsx:55 msgid "Show external locations" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:57 +#: src/tables/stock/StockLocationTable.tsx:59 msgid "Has location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:62 +#: src/tables/stock/StockLocationTable.tsx:64 msgid "Filter by location type" msgstr "" -#: src/tables/stock/StockLocationTable.tsx:99 -#: src/tables/stock/StockLocationTable.tsx:125 +#: src/tables/stock/StockLocationTable.tsx:107 +#: src/tables/stock/StockLocationTable.tsx:133 msgid "Add Stock Location" msgstr "" @@ -7200,6 +7243,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "" diff --git a/src/frontend/src/locales/zh/messages.po b/src/frontend/src/locales/zh/messages.po index 2580d12945..a10326c856 100644 --- a/src/frontend/src/locales/zh/messages.po +++ b/src/frontend/src/locales/zh/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: zh\n" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-07-25 18:20\n" +"PO-Revision-Date: 2024-08-01 19:28\n" "Last-Translator: \n" "Language-Team: Chinese Traditional\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -150,7 +150,7 @@ msgid "Remove the associated image from this item?" msgstr "" #: src/components/details/DetailsImage.tsx:71 -#: src/forms/StockForms.tsx:532 +#: src/forms/StockForms.tsx:533 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:199 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:306 #: src/pages/stock/StockDetail.tsx:474 @@ -181,7 +181,7 @@ msgid "Clear" msgstr "" #: src/components/details/DetailsImage.tsx:232 -#: src/components/forms/ApiForm.tsx:620 +#: src/components/forms/ApiForm.tsx:622 #: src/contexts/ThemeContext.tsx:43 #: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:56 msgid "Submit" @@ -240,7 +240,7 @@ msgid "Image upload failed" msgstr "" #: src/components/editors/NotesEditor.tsx:156 -#: src/components/forms/ApiForm.tsx:460 +#: src/components/forms/ApiForm.tsx:462 #: src/tables/bom/BomTable.tsx:435 msgid "Success" msgstr "" @@ -395,7 +395,7 @@ msgid "A server error occurred" msgstr "" #: src/components/forms/ApiForm.tsx:151 -#: src/components/forms/ApiForm.tsx:548 +#: src/components/forms/ApiForm.tsx:550 msgid "Form Error" msgstr "" @@ -403,16 +403,16 @@ msgstr "" #~ msgid "Form Errors Exist" #~ msgstr "Form Errors Exist" -#: src/components/forms/ApiForm.tsx:556 +#: src/components/forms/ApiForm.tsx:558 msgid "Errors exist for one or more form fields" msgstr "" -#: src/components/forms/ApiForm.tsx:658 +#: src/components/forms/ApiForm.tsx:660 #: src/tables/plugin/PluginListTable.tsx:388 msgid "Update" msgstr "" -#: src/components/forms/ApiForm.tsx:678 +#: src/components/forms/ApiForm.tsx:680 #: src/components/items/ActionDropdown.tsx:224 #: src/hooks/UseForm.tsx:122 #: src/pages/Index/Scan.tsx:343 @@ -590,7 +590,7 @@ msgstr "" #: src/components/forms/HostOptionsForm.tsx:70 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:410 #: src/pages/part/CategoryDetail.tsx:81 -#: src/pages/part/PartDetail.tsx:127 +#: src/pages/part/PartDetail.tsx:129 #: src/pages/stock/LocationDetail.tsx:88 #: src/tables/machine/MachineTypeTable.tsx:65 #: src/tables/machine/MachineTypeTable.tsx:109 @@ -865,7 +865,6 @@ msgid "Imported rows" msgstr "" #: src/components/items/ActionDropdown.tsx:124 -#: src/pages/build/BuildDetail.tsx:370 msgid "Barcode Actions" msgstr "" @@ -1366,16 +1365,16 @@ msgstr "" #: src/components/render/ModelType.tsx:22 #: src/forms/BuildForms.tsx:201 #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/build/BuildDetail.tsx:87 -#: src/pages/part/PartDetail.tsx:985 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/build/BuildDetail.tsx:92 +#: src/pages/part/PartDetail.tsx:1003 #: src/tables/build/BuildAllocatedStockTable.tsx:45 #: src/tables/part/PartTable.tsx:28 #: src/tables/part/RelatedPartTable.tsx:45 @@ -1390,7 +1389,7 @@ msgstr "" #: src/pages/part/CategoryDetail.tsx:119 #: src/pages/part/CategoryDetail.tsx:244 #: src/pages/part/CategoryDetail.tsx:274 -#: src/pages/part/PartDetail.tsx:747 +#: src/pages/part/PartDetail.tsx:765 msgid "Parts" msgstr "" @@ -1440,7 +1439,7 @@ msgstr "" #: src/components/render/ModelType.tsx:64 #: src/pages/part/CategoryDetail.tsx:258 #: src/pages/part/CategoryDetail.tsx:296 -#: src/pages/part/PartDetail.tsx:975 +#: src/pages/part/PartDetail.tsx:993 msgid "Part Categories" msgstr "" @@ -1545,7 +1544,7 @@ msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:254 #: src/pages/company/CompanyDetail.tsx:193 #: src/pages/company/SupplierPartDetail.tsx:232 -#: src/pages/part/PartDetail.tsx:598 +#: src/pages/part/PartDetail.tsx:600 #: src/pages/purchasing/PurchasingIndex.tsx:25 msgid "Purchase Orders" msgstr "" @@ -1559,8 +1558,8 @@ msgid "Purchase Order Lines" msgstr "" #: src/components/render/ModelType.tsx:152 -#: src/pages/build/BuildDetail.tsx:135 -#: src/pages/sales/SalesOrderDetail.tsx:345 +#: src/pages/build/BuildDetail.tsx:140 +#: src/pages/sales/SalesOrderDetail.tsx:363 #: src/pages/stock/StockDetail.tsx:218 #: src/tables/stock/StockTrackingTable.tsx:118 msgid "Sales Order" @@ -1569,7 +1568,7 @@ msgstr "" #: src/components/render/ModelType.tsx:153 #: src/pages/Index/Settings/SystemSettings.tsx:269 #: src/pages/company/CompanyDetail.tsx:213 -#: src/pages/part/PartDetail.tsx:605 +#: src/pages/part/PartDetail.tsx:607 #: src/pages/sales/SalesIndex.tsx:26 msgid "Sales Orders" msgstr "" @@ -1583,7 +1582,7 @@ msgid "Sales Order Shipments" msgstr "" #: src/components/render/ModelType.tsx:168 -#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/ReturnOrderDetail.tsx:345 #: src/tables/stock/StockTrackingTable.tsx:129 msgid "Return Order" msgstr "" @@ -1607,8 +1606,8 @@ msgstr "" #: src/components/render/ModelType.tsx:184 #: src/pages/purchasing/PurchaseOrderDetail.tsx:178 -#: src/pages/sales/ReturnOrderDetail.tsx:161 -#: src/pages/sales/SalesOrderDetail.tsx:159 +#: src/pages/sales/ReturnOrderDetail.tsx:165 +#: src/pages/sales/SalesOrderDetail.tsx:163 msgid "Contact" msgstr "" @@ -1690,7 +1689,7 @@ msgstr "" #: src/components/render/Plugin.tsx:17 #: src/pages/company/CompanyDetail.tsx:314 #: src/pages/company/SupplierPartDetail.tsx:335 -#: src/pages/part/PartDetail.tsx:799 +#: src/pages/part/PartDetail.tsx:817 msgid "Inactive" msgstr "" @@ -1704,7 +1703,7 @@ msgstr "" #: src/defaults/links.tsx:30 #: src/defaults/menuItems.tsx:38 #: src/pages/Index/Settings/SystemSettings.tsx:206 -#: src/pages/part/PartDetail.tsx:515 +#: src/pages/part/PartDetail.tsx:517 #: src/pages/stock/LocationDetail.tsx:359 #: src/pages/stock/StockDetail.tsx:361 #: src/tables/stock/StockItemTable.tsx:67 @@ -1726,6 +1725,7 @@ msgstr "" #: src/pages/part/pricing/PriceBreakPanel.tsx:167 #: src/pages/stock/StockDetail.tsx:142 #: src/pages/stock/StockDetail.tsx:535 +#: src/tables/build/BuildOrderTestTable.tsx:196 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:146 #: src/tables/purchasing/PurchaseOrderLineItemTable.tsx:174 #: src/tables/purchasing/SupplierPriceBreakTable.tsx:73 @@ -2482,9 +2482,9 @@ msgstr "" #: src/defaults/links.tsx:37 #: src/defaults/menuItems.tsx:53 #: src/pages/company/CustomerDetail.tsx:9 -#: src/pages/sales/ReturnOrderDetail.tsx:332 +#: src/pages/sales/ReturnOrderDetail.tsx:350 #: src/pages/sales/SalesIndex.tsx:53 -#: src/pages/sales/SalesOrderDetail.tsx:350 +#: src/pages/sales/SalesOrderDetail.tsx:368 msgid "Sales" msgstr "" @@ -2758,7 +2758,7 @@ msgid "Assign Batch Code{0}" msgstr "" #: src/forms/PurchaseOrderForms.tsx:402 -#: src/forms/StockForms.tsx:419 +#: src/forms/StockForms.tsx:420 msgid "Adjust Packaging" msgstr "" @@ -2771,19 +2771,19 @@ msgid "Add Note" msgstr "" #: src/forms/PurchaseOrderForms.tsx:441 -#: src/forms/StockForms.tsx:427 +#: src/forms/StockForms.tsx:428 msgid "Remove item from list" msgstr "" #: src/forms/PurchaseOrderForms.tsx:468 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/stock/StockDetail.tsx:178 #: src/tables/ColumnRenderers.tsx:49 #: src/tables/stock/StockTrackingTable.tsx:85 @@ -2803,10 +2803,11 @@ msgid "Store with already received stock" msgstr "" #: src/forms/PurchaseOrderForms.tsx:521 -#: src/pages/build/BuildDetail.tsx:201 +#: src/pages/build/BuildDetail.tsx:206 #: src/pages/stock/StockDetail.tsx:159 #: src/pages/stock/StockDetail.tsx:547 #: src/tables/build/BuildAllocatedStockTable.tsx:71 +#: src/tables/build/BuildOrderTestTable.tsx:187 msgid "Batch Code" msgstr "" @@ -2815,7 +2816,7 @@ msgid "Serial numbers" msgstr "" #: src/forms/PurchaseOrderForms.tsx:541 -#: src/forms/StockForms.tsx:442 +#: src/forms/StockForms.tsx:443 #: src/pages/company/SupplierPartDetail.tsx:151 #: src/pages/company/SupplierPartDetail.tsx:202 #: src/pages/stock/StockDetail.tsx:241 @@ -2824,10 +2825,10 @@ msgid "Packaging" msgstr "" #: src/forms/PurchaseOrderForms.tsx:553 -#: src/pages/build/BuildDetail.tsx:93 +#: src/pages/build/BuildDetail.tsx:98 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 -#: src/pages/sales/ReturnOrderDetail.tsx:99 -#: src/pages/sales/SalesOrderDetail.tsx:103 +#: src/pages/sales/ReturnOrderDetail.tsx:103 +#: src/pages/sales/SalesOrderDetail.tsx:107 #: src/tables/build/BuildOrderTable.tsx:113 #: src/tables/machine/MachineListTable.tsx:335 #: src/tables/purchasing/PurchaseOrderTable.tsx:55 @@ -2857,14 +2858,14 @@ msgid "Received" msgstr "" #: src/forms/PurchaseOrderForms.tsx:636 -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:413 #: src/tables/RowActions.tsx:149 msgid "Actions" @@ -2878,7 +2879,7 @@ msgstr "" #~ msgid "Receive line items" #~ msgstr "Receive line items" -#: src/forms/StockForms.tsx:103 +#: src/forms/StockForms.tsx:104 msgid "Add given quantity as packs instead of individual items" msgstr "" @@ -2886,15 +2887,15 @@ msgstr "" #~ msgid "Create Stock Item" #~ msgstr "Create Stock Item" -#: src/forms/StockForms.tsx:116 +#: src/forms/StockForms.tsx:117 msgid "Enter initial quantity for this stock item" msgstr "" -#: src/forms/StockForms.tsx:123 +#: src/forms/StockForms.tsx:124 msgid "Serial Numbers" msgstr "" -#: src/forms/StockForms.tsx:124 +#: src/forms/StockForms.tsx:125 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" @@ -2902,82 +2903,82 @@ msgstr "" #~ msgid "Stock item updated" #~ msgstr "Stock item updated" -#: src/forms/StockForms.tsx:178 +#: src/forms/StockForms.tsx:179 #: src/pages/stock/StockDetail.tsx:384 #: src/tables/stock/StockItemTable.tsx:416 #: src/tables/stock/StockItemTable.tsx:533 msgid "Add Stock Item" msgstr "" -#: src/forms/StockForms.tsx:361 +#: src/forms/StockForms.tsx:362 msgid "Loading..." msgstr "" -#: src/forms/StockForms.tsx:407 +#: src/forms/StockForms.tsx:408 msgid "Move to default location" msgstr "" -#: src/forms/StockForms.tsx:498 -#: src/forms/StockForms.tsx:532 -#: src/forms/StockForms.tsx:561 -#: src/forms/StockForms.tsx:589 -#: src/forms/StockForms.tsx:620 -#: src/forms/StockForms.tsx:655 -#: src/forms/StockForms.tsx:697 -#: src/forms/StockForms.tsx:733 -#: src/pages/part/PartDetail.tsx:214 -#: src/pages/part/PartDetail.tsx:763 +#: src/forms/StockForms.tsx:499 +#: src/forms/StockForms.tsx:533 +#: src/forms/StockForms.tsx:562 +#: src/forms/StockForms.tsx:590 +#: src/forms/StockForms.tsx:621 +#: src/forms/StockForms.tsx:656 +#: src/forms/StockForms.tsx:698 +#: src/forms/StockForms.tsx:734 +#: src/pages/part/PartDetail.tsx:216 +#: src/pages/part/PartDetail.tsx:781 #: src/tables/stock/StockItemTable.tsx:324 msgid "In Stock" msgstr "" -#: src/forms/StockForms.tsx:498 +#: src/forms/StockForms.tsx:499 msgid "Move" msgstr "" -#: src/forms/StockForms.tsx:561 +#: src/forms/StockForms.tsx:562 #: src/pages/stock/StockDetail.tsx:466 #: src/tables/stock/StockItemTestResultTable.tsx:323 msgid "Add" msgstr "" -#: src/forms/StockForms.tsx:589 +#: src/forms/StockForms.tsx:590 #: src/pages/Index/Scan.tsx:266 #: src/pages/stock/StockDetail.tsx:456 msgid "Count" msgstr "" -#: src/forms/StockForms.tsx:834 +#: src/forms/StockForms.tsx:835 msgid "Add Stock" msgstr "" -#: src/forms/StockForms.tsx:843 +#: src/forms/StockForms.tsx:844 msgid "Remove Stock" msgstr "" -#: src/forms/StockForms.tsx:852 -#: src/pages/part/PartDetail.tsx:929 +#: src/forms/StockForms.tsx:853 +#: src/pages/part/PartDetail.tsx:947 msgid "Transfer Stock" msgstr "" -#: src/forms/StockForms.tsx:861 -#: src/pages/part/PartDetail.tsx:918 +#: src/forms/StockForms.tsx:862 +#: src/pages/part/PartDetail.tsx:936 msgid "Count Stock" msgstr "" -#: src/forms/StockForms.tsx:870 +#: src/forms/StockForms.tsx:871 msgid "Change Stock Status" msgstr "" -#: src/forms/StockForms.tsx:879 +#: src/forms/StockForms.tsx:880 msgid "Merge Stock" msgstr "" -#: src/forms/StockForms.tsx:898 +#: src/forms/StockForms.tsx:899 msgid "Delete Stock Items" msgstr "" -#: src/forms/StockForms.tsx:905 +#: src/forms/StockForms.tsx:906 msgid "Parent stock location" msgstr "" @@ -3560,7 +3561,7 @@ msgid "No tokens configured" msgstr "" #: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:398 -#: src/pages/part/PartDetail.tsx:281 +#: src/pages/part/PartDetail.tsx:283 #: src/tables/bom/UsedInTable.tsx:73 #: src/tables/build/BuildOrderTable.tsx:108 #: src/tables/company/CompanyTable.tsx:61 @@ -3832,15 +3833,15 @@ msgid "Reporting" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:231 -#: src/pages/part/PartDetail.tsx:618 +#: src/pages/part/PartDetail.tsx:620 msgid "Stocktake" msgstr "" #: src/pages/Index/Settings/SystemSettings.tsx:237 -#: src/pages/build/BuildDetail.tsx:438 +#: src/pages/build/BuildDetail.tsx:466 #: src/pages/build/BuildIndex.tsx:22 -#: src/pages/part/PartDetail.tsx:552 -#: src/pages/sales/SalesOrderDetail.tsx:264 +#: src/pages/part/PartDetail.tsx:554 +#: src/pages/sales/SalesOrderDetail.tsx:268 msgid "Build Orders" msgstr "" @@ -3900,25 +3901,25 @@ msgstr "" #~ msgid "Build Status" #~ msgstr "Build Status" -#: src/pages/build/BuildDetail.tsx:99 +#: src/pages/build/BuildDetail.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:104 -#: src/pages/sales/ReturnOrderDetail.tsx:73 -#: src/pages/sales/SalesOrderDetail.tsx:77 +#: src/pages/sales/ReturnOrderDetail.tsx:77 +#: src/pages/sales/SalesOrderDetail.tsx:81 #: src/tables/ColumnRenderers.tsx:121 #: src/tables/build/BuildAllocatedStockTable.tsx:52 #: src/tables/build/BuildLineTable.tsx:140 msgid "Reference" msgstr "" -#: src/pages/build/BuildDetail.tsx:104 +#: src/pages/build/BuildDetail.tsx:109 #: src/pages/company/CompanyDetail.tsx:87 #: src/pages/company/ManufacturerPartDetail.tsx:83 #: src/pages/company/SupplierPartDetail.tsx:91 #: src/pages/part/CategoryDetail.tsx:101 -#: src/pages/part/PartDetail.tsx:134 +#: src/pages/part/PartDetail.tsx:136 #: src/pages/purchasing/PurchaseOrderDetail.tsx:125 -#: src/pages/sales/ReturnOrderDetail.tsx:93 -#: src/pages/sales/SalesOrderDetail.tsx:97 +#: src/pages/sales/ReturnOrderDetail.tsx:97 +#: src/pages/sales/SalesOrderDetail.tsx:101 #: src/pages/stock/LocationDetail.tsx:108 #: src/tables/ColumnRenderers.tsx:81 #: src/tables/machine/MachineTypeTable.tsx:69 @@ -3932,29 +3933,29 @@ msgstr "" msgid "Description" msgstr "" -#: src/pages/build/BuildDetail.tsx:111 +#: src/pages/build/BuildDetail.tsx:116 msgid "Parent Build" msgstr "" -#: src/pages/build/BuildDetail.tsx:122 +#: src/pages/build/BuildDetail.tsx:127 msgid "Build Quantity" msgstr "" -#: src/pages/build/BuildDetail.tsx:130 -#: src/pages/build/BuildDetail.tsx:260 +#: src/pages/build/BuildDetail.tsx:135 +#: src/pages/build/BuildDetail.tsx:265 msgid "Completed Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:147 +#: src/pages/build/BuildDetail.tsx:152 #: src/tables/build/BuildOrderTable.tsx:142 msgid "Issued By" msgstr "" -#: src/pages/build/BuildDetail.tsx:154 -#: src/pages/part/PartDetail.tsx:342 +#: src/pages/build/BuildDetail.tsx:159 +#: src/pages/part/PartDetail.tsx:344 #: src/pages/purchasing/PurchaseOrderDetail.tsx:203 -#: src/pages/sales/ReturnOrderDetail.tsx:186 -#: src/pages/sales/SalesOrderDetail.tsx:184 +#: src/pages/sales/ReturnOrderDetail.tsx:190 +#: src/pages/sales/SalesOrderDetail.tsx:188 #: src/tables/build/BuildOrderTable.tsx:148 #: src/tables/purchasing/PurchaseOrderTable.tsx:75 #: src/tables/sales/ReturnOrderTable.tsx:66 @@ -3962,20 +3963,20 @@ msgstr "" msgid "Responsible" msgstr "" -#: src/pages/build/BuildDetail.tsx:161 +#: src/pages/build/BuildDetail.tsx:166 #: src/tables/settings/PendingTasksTable.tsx:30 msgid "Created" msgstr "" -#: src/pages/build/BuildDetail.tsx:168 +#: src/pages/build/BuildDetail.tsx:173 #: src/pages/purchasing/PurchaseOrderDetail.tsx:196 -#: src/pages/sales/ReturnOrderDetail.tsx:179 -#: src/pages/sales/SalesOrderDetail.tsx:177 +#: src/pages/sales/ReturnOrderDetail.tsx:183 +#: src/pages/sales/SalesOrderDetail.tsx:181 #: src/tables/ColumnRenderers.tsx:206 msgid "Target Date" msgstr "" -#: src/pages/build/BuildDetail.tsx:175 +#: src/pages/build/BuildDetail.tsx:180 msgid "Completed" msgstr "" @@ -3985,21 +3986,17 @@ msgstr "" #~ msgid "View part barcode" #~ msgstr "View part barcode" -#: src/pages/build/BuildDetail.tsx:187 -msgid "Source Location" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:188 -msgid "Any location" -msgstr "" - #: src/pages/build/BuildDetail.tsx:190 #: src/pages/part/PartDetail.tsx:274 #~ msgid "Link custom barcode to part" #~ msgstr "Link custom barcode to part" -#: src/pages/build/BuildDetail.tsx:195 -msgid "Destination Location" +#: src/pages/build/BuildDetail.tsx:192 +msgid "Source Location" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:193 +msgid "Any location" msgstr "" #: src/pages/build/BuildDetail.tsx:196 @@ -4007,6 +4004,10 @@ msgstr "" #~ msgid "Unlink custom barcode from part" #~ msgstr "Unlink custom barcode from part" +#: src/pages/build/BuildDetail.tsx:200 +msgid "Destination Location" +msgstr "" + #: src/pages/build/BuildDetail.tsx:202 #~ msgid "Build Order updated" #~ msgstr "Build Order updated" @@ -4023,88 +4024,100 @@ msgstr "" #~ msgid "Delete build order" #~ msgstr "Delete build order" -#: src/pages/build/BuildDetail.tsx:233 +#: src/pages/build/BuildDetail.tsx:238 msgid "Build Details" msgstr "" -#: src/pages/build/BuildDetail.tsx:239 +#: src/pages/build/BuildDetail.tsx:244 #: src/pages/purchasing/PurchaseOrderDetail.tsx:241 -#: src/pages/sales/ReturnOrderDetail.tsx:108 -#: src/pages/sales/ReturnOrderDetail.tsx:224 -#: src/pages/sales/SalesOrderDetail.tsx:246 +#: src/pages/sales/ReturnOrderDetail.tsx:112 +#: src/pages/sales/ReturnOrderDetail.tsx:228 +#: src/pages/sales/SalesOrderDetail.tsx:250 msgid "Line Items" msgstr "" -#: src/pages/build/BuildDetail.tsx:253 +#: src/pages/build/BuildDetail.tsx:258 msgid "Incomplete Outputs" msgstr "" -#: src/pages/build/BuildDetail.tsx:275 +#: src/pages/build/BuildDetail.tsx:280 msgid "Allocated Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:285 +#: src/pages/build/BuildDetail.tsx:290 msgid "Consumed Stock" msgstr "" -#: src/pages/build/BuildDetail.tsx:299 +#: src/pages/build/BuildDetail.tsx:304 msgid "Child Build Orders" msgstr "" -#: src/pages/build/BuildDetail.tsx:309 +#: src/pages/build/BuildDetail.tsx:314 +#: src/tables/build/BuildOutputTable.tsx:319 +#: src/tables/stock/StockItemTestResultTable.tsx:145 +msgid "Test Results" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:325 +#: src/pages/part/PartDetail.tsx:637 +msgid "Test Statistics" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:339 #: src/pages/company/CompanyDetail.tsx:256 #: src/pages/company/ManufacturerPartDetail.tsx:179 -#: src/pages/part/PartDetail.tsx:641 +#: src/pages/part/PartDetail.tsx:659 #: src/pages/purchasing/PurchaseOrderDetail.tsx:266 -#: src/pages/sales/ReturnOrderDetail.tsx:230 -#: src/pages/sales/SalesOrderDetail.tsx:274 +#: src/pages/sales/ReturnOrderDetail.tsx:234 +#: src/pages/sales/SalesOrderDetail.tsx:278 #: src/pages/stock/StockDetail.tsx:335 msgid "Attachments" msgstr "" -#: src/pages/build/BuildDetail.tsx:317 +#: src/pages/build/BuildDetail.tsx:347 #: src/pages/company/CompanyDetail.tsx:267 #: src/pages/company/ManufacturerPartDetail.tsx:190 #: src/pages/company/SupplierPartDetail.tsx:252 -#: src/pages/part/PartDetail.tsx:649 +#: src/pages/part/PartDetail.tsx:667 #: src/pages/purchasing/PurchaseOrderDetail.tsx:277 -#: src/pages/sales/ReturnOrderDetail.tsx:241 -#: src/pages/sales/SalesOrderDetail.tsx:285 +#: src/pages/sales/ReturnOrderDetail.tsx:245 +#: src/pages/sales/SalesOrderDetail.tsx:289 #: src/pages/stock/StockDetail.tsx:346 +#: src/tables/build/BuildOrderTestTable.tsx:141 #: src/tables/stock/StockTrackingTable.tsx:189 msgid "Notes" msgstr "" -#: src/pages/build/BuildDetail.tsx:335 +#: src/pages/build/BuildDetail.tsx:365 msgid "Edit Build Order" msgstr "" -#: src/pages/build/BuildDetail.tsx:344 -msgid "Cancel Build Order" -msgstr "" - -#: src/pages/build/BuildDetail.tsx:356 -#: src/tables/build/BuildOrderTable.tsx:167 -#: src/tables/build/BuildOrderTable.tsx:182 -msgid "Add Build Order" -msgstr "" - #: src/pages/build/BuildDetail.tsx:368 #~ msgid "Reporting Actions" #~ msgstr "Reporting Actions" +#: src/pages/build/BuildDetail.tsx:374 +msgid "Cancel Build Order" +msgstr "" + #: src/pages/build/BuildDetail.tsx:374 #~ msgid "Print build report" #~ msgstr "Print build report" -#: src/pages/build/BuildDetail.tsx:391 +#: src/pages/build/BuildDetail.tsx:386 +#: src/tables/build/BuildOrderTable.tsx:167 +#: src/tables/build/BuildOrderTable.tsx:182 +msgid "Add Build Order" +msgstr "" + +#: src/pages/build/BuildDetail.tsx:419 msgid "Build Order Actions" msgstr "" -#: src/pages/build/BuildDetail.tsx:399 +#: src/pages/build/BuildDetail.tsx:427 #: src/pages/purchasing/PurchaseOrderDetail.tsx:323 -#: src/pages/sales/ReturnOrderDetail.tsx:309 -#: src/pages/sales/SalesOrderDetail.tsx:315 +#: src/pages/sales/ReturnOrderDetail.tsx:327 +#: src/pages/sales/SalesOrderDetail.tsx:333 msgid "Cancel order" msgstr "" @@ -4152,8 +4165,8 @@ msgstr "" #: src/pages/company/CompanyDetail.tsx:135 #: src/pages/company/CustomerDetail.tsx:8 #: src/pages/part/pricing/SaleHistoryPanel.tsx:29 -#: src/pages/sales/ReturnOrderDetail.tsx:87 -#: src/pages/sales/SalesOrderDetail.tsx:91 +#: src/pages/sales/ReturnOrderDetail.tsx:91 +#: src/pages/sales/SalesOrderDetail.tsx:95 #: src/pages/stock/StockDetail.tsx:227 #: src/tables/company/CompanyTable.tsx:110 #: src/tables/sales/ReturnOrderTable.tsx:78 @@ -4222,12 +4235,12 @@ msgid "Manufacturer Part Details" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:153 -#: src/pages/part/PartDetail.tsx:504 +#: src/pages/part/PartDetail.tsx:506 msgid "Parameters" msgstr "" #: src/pages/company/ManufacturerPartDetail.tsx:165 -#: src/pages/part/PartDetail.tsx:585 +#: src/pages/part/PartDetail.tsx:587 #: src/pages/purchasing/PurchasingIndex.tsx:31 msgid "Suppliers" msgstr "" @@ -4382,118 +4395,118 @@ msgstr "" msgid "Category Details" msgstr "" -#: src/pages/part/PartDetail.tsx:140 +#: src/pages/part/PartDetail.tsx:142 msgid "Variant of" msgstr "" -#: src/pages/part/PartDetail.tsx:147 +#: src/pages/part/PartDetail.tsx:149 msgid "Revision of" msgstr "" -#: src/pages/part/PartDetail.tsx:154 +#: src/pages/part/PartDetail.tsx:156 #: src/tables/stock/StockItemTable.tsx:57 msgid "Revision" msgstr "" -#: src/pages/part/PartDetail.tsx:161 +#: src/pages/part/PartDetail.tsx:163 #: src/tables/notifications/NotificationsTable.tsx:31 #: src/tables/part/PartCategoryTemplateTable.tsx:67 msgid "Category" msgstr "" -#: src/pages/part/PartDetail.tsx:167 +#: src/pages/part/PartDetail.tsx:169 msgid "Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:174 +#: src/pages/part/PartDetail.tsx:176 msgid "Category Default Location" msgstr "" -#: src/pages/part/PartDetail.tsx:181 +#: src/pages/part/PartDetail.tsx:183 #: src/tables/bom/BomTable.tsx:117 #: src/tables/stock/StockItemTable.tsx:52 msgid "IPN" msgstr "" -#: src/pages/part/PartDetail.tsx:188 +#: src/pages/part/PartDetail.tsx:190 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:44 msgid "Units" msgstr "" -#: src/pages/part/PartDetail.tsx:195 +#: src/pages/part/PartDetail.tsx:197 #: src/tables/settings/PendingTasksTable.tsx:40 msgid "Keywords" msgstr "" -#: src/pages/part/PartDetail.tsx:202 +#: src/pages/part/PartDetail.tsx:204 #: src/pages/purchasing/PurchaseOrderDetail.tsx:169 -#: src/pages/sales/ReturnOrderDetail.tsx:152 -#: src/pages/sales/SalesOrderDetail.tsx:150 +#: src/pages/sales/ReturnOrderDetail.tsx:156 +#: src/pages/sales/SalesOrderDetail.tsx:154 msgid "Link" msgstr "" -#: src/pages/part/PartDetail.tsx:220 +#: src/pages/part/PartDetail.tsx:222 #: src/tables/bom/BomTable.tsx:314 #: src/tables/build/BuildLineTable.tsx:121 #: src/tables/part/PartTable.tsx:282 msgid "Available Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:227 +#: src/pages/part/PartDetail.tsx:229 msgid "Variant Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:235 +#: src/pages/part/PartDetail.tsx:237 msgid "Minimum Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:241 +#: src/pages/part/PartDetail.tsx:243 #: src/tables/bom/BomTable.tsx:236 #: src/tables/build/BuildLineTable.tsx:95 msgid "On order" msgstr "" -#: src/pages/part/PartDetail.tsx:250 +#: src/pages/part/PartDetail.tsx:252 msgid "Allocated to Build Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:258 +#: src/pages/part/PartDetail.tsx:260 msgid "Allocated to Sales Orders" msgstr "" -#: src/pages/part/PartDetail.tsx:265 +#: src/pages/part/PartDetail.tsx:267 #: src/tables/bom/BomTable.tsx:260 #: src/tables/bom/BomTable.tsx:292 msgid "Can Build" msgstr "" -#: src/pages/part/PartDetail.tsx:272 +#: src/pages/part/PartDetail.tsx:274 #: src/tables/bom/BomTable.tsx:244 #: src/tables/part/PartTable.tsx:92 msgid "Building" msgstr "" -#: src/pages/part/PartDetail.tsx:286 -#: src/pages/part/PartDetail.tsx:793 +#: src/pages/part/PartDetail.tsx:288 +#: src/pages/part/PartDetail.tsx:811 #: src/tables/part/ParametricPartTable.tsx:227 #: src/tables/part/PartTable.tsx:184 msgid "Locked" msgstr "" -#: src/pages/part/PartDetail.tsx:291 +#: src/pages/part/PartDetail.tsx:293 msgid "Template Part" msgstr "" -#: src/pages/part/PartDetail.tsx:296 +#: src/pages/part/PartDetail.tsx:298 #: src/tables/bom/BomTable.tsx:309 msgid "Assembled Part" msgstr "" -#: src/pages/part/PartDetail.tsx:301 +#: src/pages/part/PartDetail.tsx:303 msgid "Component Part" msgstr "" -#: src/pages/part/PartDetail.tsx:306 +#: src/pages/part/PartDetail.tsx:308 #: src/tables/bom/BomTable.tsx:304 msgid "Trackable Part" msgstr "" @@ -4502,98 +4515,98 @@ msgstr "" #~ msgid "Edit part" #~ msgstr "Edit part" -#: src/pages/part/PartDetail.tsx:311 +#: src/pages/part/PartDetail.tsx:313 msgid "Purchaseable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:316 +#: src/pages/part/PartDetail.tsx:318 msgid "Saleable Part" msgstr "" -#: src/pages/part/PartDetail.tsx:321 -msgid "Virtual Part" -msgstr "" - #: src/pages/part/PartDetail.tsx:322 #~ msgid "Duplicate part" #~ msgstr "Duplicate part" +#: src/pages/part/PartDetail.tsx:323 +msgid "Virtual Part" +msgstr "" + #: src/pages/part/PartDetail.tsx:327 #~ msgid "Delete part" #~ msgstr "Delete part" -#: src/pages/part/PartDetail.tsx:329 +#: src/pages/part/PartDetail.tsx:331 #: src/tables/ColumnRenderers.tsx:214 msgid "Creation Date" msgstr "" -#: src/pages/part/PartDetail.tsx:334 +#: src/pages/part/PartDetail.tsx:336 msgid "Created By" msgstr "" -#: src/pages/part/PartDetail.tsx:349 +#: src/pages/part/PartDetail.tsx:351 msgid "Default Supplier" msgstr "" -#: src/pages/part/PartDetail.tsx:360 +#: src/pages/part/PartDetail.tsx:362 #: src/pages/part/pricing/BomPricingPanel.tsx:74 #: src/pages/part/pricing/VariantPricingPanel.tsx:95 #: src/tables/part/PartTable.tsx:161 msgid "Price Range" msgstr "" -#: src/pages/part/PartDetail.tsx:399 +#: src/pages/part/PartDetail.tsx:401 #: src/pages/stock/StockDetail.tsx:132 msgid "Last Stocktake" msgstr "" -#: src/pages/part/PartDetail.tsx:434 +#: src/pages/part/PartDetail.tsx:436 msgid "Stocktake By" msgstr "" -#: src/pages/part/PartDetail.tsx:498 +#: src/pages/part/PartDetail.tsx:500 msgid "Part Details" msgstr "" -#: src/pages/part/PartDetail.tsx:529 +#: src/pages/part/PartDetail.tsx:531 msgid "Variants" msgstr "" -#: src/pages/part/PartDetail.tsx:536 +#: src/pages/part/PartDetail.tsx:538 #: src/pages/stock/StockDetail.tsx:291 msgid "Allocations" msgstr "" -#: src/pages/part/PartDetail.tsx:543 +#: src/pages/part/PartDetail.tsx:545 msgid "Bill of Materials" msgstr "" -#: src/pages/part/PartDetail.tsx:559 +#: src/pages/part/PartDetail.tsx:561 msgid "Used In" msgstr "" -#: src/pages/part/PartDetail.tsx:566 +#: src/pages/part/PartDetail.tsx:568 msgid "Part Pricing" msgstr "" -#: src/pages/part/PartDetail.tsx:572 +#: src/pages/part/PartDetail.tsx:574 #: src/pages/purchasing/PurchasingIndex.tsx:42 msgid "Manufacturers" msgstr "" -#: src/pages/part/PartDetail.tsx:612 +#: src/pages/part/PartDetail.tsx:614 msgid "Scheduling" msgstr "" -#: src/pages/part/PartDetail.tsx:624 +#: src/pages/part/PartDetail.tsx:626 msgid "Test Templates" msgstr "" -#: src/pages/part/PartDetail.tsx:635 +#: src/pages/part/PartDetail.tsx:653 msgid "Related Parts" msgstr "" -#: src/pages/part/PartDetail.tsx:769 +#: src/pages/part/PartDetail.tsx:787 #: src/pages/stock/StockDetail.tsx:153 #: src/pages/stock/StockDetail.tsx:541 #: src/tables/build/BuildLineTable.tsx:36 @@ -4603,59 +4616,60 @@ msgstr "" msgid "Available" msgstr "" -#: src/pages/part/PartDetail.tsx:775 +#: src/pages/part/PartDetail.tsx:793 msgid "No Stock" msgstr "" -#: src/pages/part/PartDetail.tsx:781 +#: src/pages/part/PartDetail.tsx:799 #: src/tables/bom/BomTable.tsx:319 #: src/tables/part/PartTable.tsx:86 msgid "On Order" msgstr "" -#: src/pages/part/PartDetail.tsx:787 +#: src/pages/part/PartDetail.tsx:805 #: src/pages/stock/StockDetail.tsx:524 +#: src/tables/build/BuildOrderTestTable.tsx:218 #: src/tables/stock/StockItemTable.tsx:329 msgid "In Production" msgstr "" -#: src/pages/part/PartDetail.tsx:812 +#: src/pages/part/PartDetail.tsx:830 msgid "Edit Part" msgstr "" -#: src/pages/part/PartDetail.tsx:847 +#: src/pages/part/PartDetail.tsx:865 #: src/tables/part/PartTable.tsx:315 #: src/tables/part/PartTable.tsx:328 msgid "Add Part" msgstr "" -#: src/pages/part/PartDetail.tsx:861 +#: src/pages/part/PartDetail.tsx:879 msgid "Delete Part" msgstr "" -#: src/pages/part/PartDetail.tsx:870 +#: src/pages/part/PartDetail.tsx:888 msgid "Deleting this part cannot be reversed" msgstr "" -#: src/pages/part/PartDetail.tsx:911 +#: src/pages/part/PartDetail.tsx:929 #: src/pages/stock/LocationDetail.tsx:316 #: src/tables/stock/StockItemTable.tsx:443 msgid "Stock Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:919 +#: src/pages/part/PartDetail.tsx:937 msgid "Count part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:930 +#: src/pages/part/PartDetail.tsx:948 msgid "Transfer part stock" msgstr "" -#: src/pages/part/PartDetail.tsx:939 +#: src/pages/part/PartDetail.tsx:957 msgid "Part Actions" msgstr "" -#: src/pages/part/PartDetail.tsx:997 +#: src/pages/part/PartDetail.tsx:1015 msgid "Select Part Revision" msgstr "" @@ -4844,6 +4858,7 @@ msgstr "" #: src/pages/part/pricing/PurchaseHistoryPanel.tsx:40 #: src/pages/part/pricing/SaleHistoryPanel.tsx:36 #: src/tables/ColumnRenderers.tsx:195 +#: src/tables/build/BuildOrderTestTable.tsx:149 #: src/tables/plugin/PluginListTable.tsx:139 msgid "Date" msgstr "" @@ -4886,20 +4901,20 @@ msgid "Supplier Reference" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:141 -#: src/pages/sales/ReturnOrderDetail.tsx:115 -#: src/pages/sales/SalesOrderDetail.tsx:113 +#: src/pages/sales/ReturnOrderDetail.tsx:119 +#: src/pages/sales/SalesOrderDetail.tsx:117 msgid "Completed Line Items" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:148 -#: src/pages/sales/ReturnOrderDetail.tsx:131 -#: src/pages/sales/SalesOrderDetail.tsx:129 +#: src/pages/sales/ReturnOrderDetail.tsx:135 +#: src/pages/sales/SalesOrderDetail.tsx:133 msgid "Order Currency" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:155 -#: src/pages/sales/ReturnOrderDetail.tsx:138 -#: src/pages/sales/SalesOrderDetail.tsx:136 +#: src/pages/sales/ReturnOrderDetail.tsx:142 +#: src/pages/sales/SalesOrderDetail.tsx:140 msgid "Total Cost" msgstr "" @@ -4910,40 +4925,40 @@ msgstr "" #~ msgstr "Order Currency," #: src/pages/purchasing/PurchaseOrderDetail.tsx:190 -#: src/pages/sales/ReturnOrderDetail.tsx:173 -#: src/pages/sales/SalesOrderDetail.tsx:171 +#: src/pages/sales/ReturnOrderDetail.tsx:177 +#: src/pages/sales/SalesOrderDetail.tsx:175 msgid "Created On" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:235 -#: src/pages/sales/ReturnOrderDetail.tsx:218 -#: src/pages/sales/SalesOrderDetail.tsx:240 +#: src/pages/sales/ReturnOrderDetail.tsx:222 +#: src/pages/sales/SalesOrderDetail.tsx:244 msgid "Order Details" msgstr "" #: src/pages/purchasing/PurchaseOrderDetail.tsx:313 -#: src/pages/sales/ReturnOrderDetail.tsx:299 -#: src/pages/sales/SalesOrderDetail.tsx:307 +#: src/pages/sales/ReturnOrderDetail.tsx:317 +#: src/pages/sales/SalesOrderDetail.tsx:325 msgid "Order Actions" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:79 -#: src/pages/sales/SalesOrderDetail.tsx:83 +#: src/pages/sales/ReturnOrderDetail.tsx:83 +#: src/pages/sales/SalesOrderDetail.tsx:87 #: src/tables/sales/SalesOrderTable.tsx:123 msgid "Customer Reference" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:123 -#: src/pages/sales/SalesOrderDetail.tsx:121 -#: src/pages/sales/SalesOrderDetail.tsx:258 +#: src/pages/sales/ReturnOrderDetail.tsx:127 +#: src/pages/sales/SalesOrderDetail.tsx:125 +#: src/pages/sales/SalesOrderDetail.tsx:262 msgid "Completed Shipments" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:271 +#: src/pages/sales/ReturnOrderDetail.tsx:275 msgid "Edit Return Order" msgstr "" -#: src/pages/sales/ReturnOrderDetail.tsx:280 +#: src/pages/sales/ReturnOrderDetail.tsx:284 #: src/tables/sales/ReturnOrderTable.tsx:119 #: src/tables/sales/ReturnOrderTable.tsx:128 msgid "Add Return Order" @@ -4953,17 +4968,17 @@ msgstr "" msgid "Customers" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:217 +#: src/pages/sales/SalesOrderDetail.tsx:221 msgid "Edit Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:226 +#: src/pages/sales/SalesOrderDetail.tsx:230 #: src/tables/sales/SalesOrderTable.tsx:83 #: src/tables/sales/SalesOrderTable.tsx:95 msgid "Add Sales Order" msgstr "" -#: src/pages/sales/SalesOrderDetail.tsx:252 +#: src/pages/sales/SalesOrderDetail.tsx:256 msgid "Pending Shipments" msgstr "" @@ -5222,6 +5237,7 @@ msgid "Filter" msgstr "" #: src/tables/FilterSelectDrawer.tsx:138 +#: src/tables/build/BuildOrderTestTable.tsx:133 #: src/tables/purchasing/ManufacturerPartParameterTable.tsx:38 #: src/tables/stock/StockItemTestResultTable.tsx:181 msgid "Value" @@ -5302,20 +5318,20 @@ msgstr "" #~ msgid "Print actions" #~ msgstr "Print actions" -#: src/tables/InvenTreeTable.tsx:600 -#: src/tables/InvenTreeTable.tsx:601 +#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:611 msgid "Barcode actions" msgstr "" -#: src/tables/InvenTreeTable.tsx:610 +#: src/tables/InvenTreeTable.tsx:620 msgid "Delete selected records" msgstr "" -#: src/tables/InvenTreeTable.tsx:631 +#: src/tables/InvenTreeTable.tsx:641 msgid "Refresh data" msgstr "" -#: src/tables/InvenTreeTable.tsx:657 +#: src/tables/InvenTreeTable.tsx:667 msgid "Table filters" msgstr "" @@ -5565,6 +5581,8 @@ msgid "Available Quantity" msgstr "" #: src/tables/build/BuildAllocatedStockTable.tsx:88 +#: src/tables/build/BuildOrderTestTable.tsx:175 +#: src/tables/build/BuildOrderTestTable.tsx:199 #: src/tables/build/BuildOutputTable.tsx:253 msgid "Build Output" msgstr "" @@ -5683,6 +5701,28 @@ msgstr "" msgid "Filter by responsible owner" msgstr "" +#: src/tables/build/BuildOrderTestTable.tsx:74 +#: src/tables/build/BuildOrderTestTable.tsx:110 +#: src/tables/stock/StockItemTestResultTable.tsx:252 +#: src/tables/stock/StockItemTestResultTable.tsx:324 +#: src/tables/stock/StockItemTestResultTable.tsx:379 +msgid "Add Test Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:81 +#: src/tables/stock/StockItemTestResultTable.tsx:254 +msgid "Test result added" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:109 +#: src/tables/stock/StockItemTestResultTable.tsx:169 +msgid "No Result" +msgstr "" + +#: src/tables/build/BuildOrderTestTable.tsx:219 +msgid "Show build outputs currently in production" +msgstr "" + #: src/tables/build/BuildOutputTable.tsx:114 #: src/tables/build/BuildOutputTable.tsx:152 msgid "Add Build Output" @@ -5748,11 +5788,6 @@ msgstr "" msgid "Required Tests" msgstr "" -#: src/tables/build/BuildOutputTable.tsx:319 -#: src/tables/stock/StockItemTestResultTable.tsx:145 -msgid "Test Results" -msgstr "" - #: src/tables/company/AddressTable.tsx:121 #: src/tables/company/AddressTable.tsx:185 msgid "Add Address" @@ -7344,10 +7379,6 @@ msgstr "" msgid "Result" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:169 -msgid "No Result" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:185 msgid "Attachment" msgstr "" @@ -7360,16 +7391,6 @@ msgstr "" msgid "Finished" msgstr "" -#: src/tables/stock/StockItemTestResultTable.tsx:252 -#: src/tables/stock/StockItemTestResultTable.tsx:324 -#: src/tables/stock/StockItemTestResultTable.tsx:379 -msgid "Add Test Result" -msgstr "" - -#: src/tables/stock/StockItemTestResultTable.tsx:254 -msgid "Test result added" -msgstr "" - #: src/tables/stock/StockItemTestResultTable.tsx:263 #: src/tables/stock/StockItemTestResultTable.tsx:334 msgid "Edit Test Result" @@ -7417,6 +7438,7 @@ msgid "Show results for installed stock items" msgstr "" #: src/tables/stock/StockItemTestResultTable.tsx:370 +#: src/tables/stock/TestStatisticsTable.tsx:74 msgid "Passed" msgstr "" @@ -7469,6 +7491,15 @@ msgstr "" msgid "No user information" msgstr "" +#: src/tables/stock/TestStatisticsTable.tsx:46 +#: src/tables/stock/TestStatisticsTable.tsx:76 +msgid "Total" +msgstr "" + +#: src/tables/stock/TestStatisticsTable.tsx:75 +msgid "Failed" +msgstr "" + #: src/views/MobileAppView.tsx:22 msgid "Mobile viewport detected" msgstr "" From 66d1c77d191a988d7cbce23dbbd935a3ac0bbeac Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 2 Aug 2024 12:17:00 +1000 Subject: [PATCH 32/55] Migration cleanup (#7792) * Add new "ON_HOLD" status code to order models * Update legacy migration for build status - Pin it to the "live" build status codes * Fix legacy migrations for order status codes * Revert "ON_HOLD" status codes - Just limiting this PR to cleanup --- ...uto_20201020_0908_squashed_0026_auto_20201023_1228.py | 4 +++- src/backend/InvenTree/build/status_codes.py | 7 +++++-- .../order/migrations/0028_auto_20200423_0956.py | 9 ++++++++- .../order/migrations/0084_auto_20230321_1111.py | 8 +++++++- .../order/migrations/0087_alter_salesorder_status.py | 8 +++++++- .../order/migrations/0099_alter_salesorder_status.py | 6 +++++- src/backend/InvenTree/order/models.py | 3 ++- 7 files changed, 37 insertions(+), 8 deletions(-) diff --git a/src/backend/InvenTree/build/migrations/0021_auto_20201020_0908_squashed_0026_auto_20201023_1228.py b/src/backend/InvenTree/build/migrations/0021_auto_20201020_0908_squashed_0026_auto_20201023_1228.py index 8db4a7f952..5094d74c6d 100644 --- a/src/backend/InvenTree/build/migrations/0021_auto_20201020_0908_squashed_0026_auto_20201023_1228.py +++ b/src/backend/InvenTree/build/migrations/0021_auto_20201020_0908_squashed_0026_auto_20201023_1228.py @@ -5,6 +5,8 @@ from django.db import migrations, models import django.db.models.deletion import mptt.fields +from build.status_codes import BuildStatus + class Migration(migrations.Migration): @@ -40,7 +42,7 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='build', name='status', - field=models.PositiveIntegerField(choices=[(10, 'Pending'), (20, 'Production'), (30, 'Cancelled'), (40, 'Complete')], default=10, help_text='Build status code', validators=[django.core.validators.MinValueValidator(0)], verbose_name='Build Status'), + field=models.PositiveIntegerField(choices=BuildStatus.items(), default=BuildStatus.PENDING.value, help_text='Build status code', validators=[django.core.validators.MinValueValidator(0)], verbose_name='Build Status'), ), migrations.AlterField( model_name='build', diff --git a/src/backend/InvenTree/build/status_codes.py b/src/backend/InvenTree/build/status_codes.py index 463bd22059..eb3e9c8901 100644 --- a/src/backend/InvenTree/build/status_codes.py +++ b/src/backend/InvenTree/build/status_codes.py @@ -9,7 +9,7 @@ class BuildStatus(StatusCode): """Build status codes.""" PENDING = 10, _('Pending'), 'secondary' # Build is pending / active - PRODUCTION = 20, _('Production'), 'primary' # BuildOrder is in production + PRODUCTION = 20, _('Production'), 'primary' # Build is in production CANCELLED = 30, _('Cancelled'), 'danger' # Build was cancelled COMPLETE = 40, _('Complete'), 'success' # Build is complete @@ -17,4 +17,7 @@ class BuildStatus(StatusCode): class BuildStatusGroups: """Groups for BuildStatus codes.""" - ACTIVE_CODES = [BuildStatus.PENDING.value, BuildStatus.PRODUCTION.value] + ACTIVE_CODES = [ + BuildStatus.PENDING.value, + BuildStatus.PRODUCTION.value, + ] diff --git a/src/backend/InvenTree/order/migrations/0028_auto_20200423_0956.py b/src/backend/InvenTree/order/migrations/0028_auto_20200423_0956.py index cf9cd1e0e2..3cba8ed07c 100644 --- a/src/backend/InvenTree/order/migrations/0028_auto_20200423_0956.py +++ b/src/backend/InvenTree/order/migrations/0028_auto_20200423_0956.py @@ -5,6 +5,8 @@ import django.core.validators from django.db import migrations, models import django.db.models.deletion +from order.status_codes import PurchaseOrderStatus + class Migration(migrations.Migration): @@ -17,7 +19,12 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='purchaseorder', name='status', - field=models.PositiveIntegerField(choices=[(10, 'Pending'), (20, 'Placed'), (30, 'Complete'), (40, 'Cancelled'), (50, 'Lost'), (60, 'Returned')], default=10, help_text='Purchase order status'), + field=models.PositiveIntegerField( + choices=PurchaseOrderStatus.items(), + default=PurchaseOrderStatus.PENDING.value, + help_text='Purchase order status', + verbose_name='Status', + ), ), migrations.AlterField( model_name='salesorder', diff --git a/src/backend/InvenTree/order/migrations/0084_auto_20230321_1111.py b/src/backend/InvenTree/order/migrations/0084_auto_20230321_1111.py index aa96291e33..49290b4349 100644 --- a/src/backend/InvenTree/order/migrations/0084_auto_20230321_1111.py +++ b/src/backend/InvenTree/order/migrations/0084_auto_20230321_1111.py @@ -2,6 +2,8 @@ from django.db import migrations, models +from order.status_codes import ReturnOrderStatus + class Migration(migrations.Migration): @@ -23,7 +25,11 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='returnorder', name='status', - field=models.PositiveIntegerField(choices=[(10, 'Pending'), (20, 'In Progress'), (30, 'Complete'), (40, 'Cancelled')], default=10, help_text='Return order status', verbose_name='Status'), + field=models.PositiveIntegerField( + choices=ReturnOrderStatus.items(), + default=ReturnOrderStatus.PENDING.value, + help_text='Return order status', verbose_name='Status' + ), ), migrations.AlterField( model_name='salesorder', diff --git a/src/backend/InvenTree/order/migrations/0087_alter_salesorder_status.py b/src/backend/InvenTree/order/migrations/0087_alter_salesorder_status.py index eaf4029917..dd6c0326bf 100644 --- a/src/backend/InvenTree/order/migrations/0087_alter_salesorder_status.py +++ b/src/backend/InvenTree/order/migrations/0087_alter_salesorder_status.py @@ -2,6 +2,8 @@ from django.db import migrations, models +from order.status_codes import SalesOrderStatus + class Migration(migrations.Migration): @@ -13,6 +15,10 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='salesorder', name='status', - field=models.PositiveIntegerField(choices=[(10, 'Pending'), (15, 'In Progress'), (20, 'Shipped'), (40, 'Cancelled'), (50, 'Lost'), (60, 'Returned')], default=10, help_text='Purchase order status', verbose_name='Status'), + field=models.PositiveIntegerField( + choices=SalesOrderStatus.items(), + default=SalesOrderStatus.PENDING.value, + help_text='Sales order status', verbose_name='Status' + ), ), ] diff --git a/src/backend/InvenTree/order/migrations/0099_alter_salesorder_status.py b/src/backend/InvenTree/order/migrations/0099_alter_salesorder_status.py index 23d9b95d86..bc5d52f44d 100644 --- a/src/backend/InvenTree/order/migrations/0099_alter_salesorder_status.py +++ b/src/backend/InvenTree/order/migrations/0099_alter_salesorder_status.py @@ -15,6 +15,10 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='salesorder', name='status', - field=models.PositiveIntegerField(choices=order.status_codes.SalesOrderStatus.items(), default=10, help_text='Purchase order status', verbose_name='Status'), + field=models.PositiveIntegerField( + choices=order.status_codes.SalesOrderStatus.items(), + default=order.status_codes.SalesOrderStatus.PENDING.value, + help_text='Sales order status', verbose_name='Status' + ), ), ] diff --git a/src/backend/InvenTree/order/models.py b/src/backend/InvenTree/order/models.py index cfa17f4d72..2362c01ee4 100644 --- a/src/backend/InvenTree/order/models.py +++ b/src/backend/InvenTree/order/models.py @@ -474,6 +474,7 @@ class PurchaseOrder(TotalPriceMixin, Order): status = models.PositiveIntegerField( default=PurchaseOrderStatus.PENDING.value, choices=PurchaseOrderStatus.items(), + verbose_name=_('Status'), help_text=_('Purchase order status'), ) @@ -967,7 +968,7 @@ class SalesOrder(TotalPriceMixin, Order): default=SalesOrderStatus.PENDING.value, choices=SalesOrderStatus.items(), verbose_name=_('Status'), - help_text=_('Purchase order status'), + help_text=_('Sales order status'), ) @property From 32db71cabbaa0bb23fe815b4e35542d1200d91f3 Mon Sep 17 00:00:00 2001 From: Lukas <76838159+wolflu05@users.noreply.github.com> Date: Fri, 2 Aug 2024 04:17:34 +0200 Subject: [PATCH 33/55] Make Tree Path searchable (#7786) * make tree searchable by pathstring * fix related model field colors in dark mode * remove unused import --------- Co-authored-by: Oliver --- src/backend/InvenTree/part/api.py | 3 +-- src/backend/InvenTree/stock/api.py | 2 +- .../forms/fields/RelatedModelField.tsx | 24 +++++++++---------- .../src/components/render/Instance.tsx | 6 +++-- src/frontend/src/components/render/Part.tsx | 11 ++++++--- src/frontend/src/components/render/Stock.tsx | 8 ++++++- 6 files changed, 32 insertions(+), 22 deletions(-) diff --git a/src/backend/InvenTree/part/api.py b/src/backend/InvenTree/part/api.py index 2d9be8b099..d22e6151a6 100644 --- a/src/backend/InvenTree/part/api.py +++ b/src/backend/InvenTree/part/api.py @@ -43,7 +43,6 @@ from InvenTree.mixins import ( from InvenTree.permissions import RolePermission from InvenTree.serializers import EmptySerializer from order.status_codes import PurchaseOrderStatusGroups, SalesOrderStatusGroups -from part.admin import PartCategoryResource, PartResource from stock.models import StockLocation from . import serializers as part_serializers @@ -245,7 +244,7 @@ class CategoryList(CategoryMixin, DataExportViewMixin, ListCreateAPI): # Use hierarchical ordering by default ordering = ['tree_id', 'lft', 'name'] - search_fields = ['name', 'description'] + search_fields = ['name', 'description', 'pathstring'] class CategoryDetail(CategoryMixin, CustomRetrieveUpdateDestroyAPI): diff --git a/src/backend/InvenTree/stock/api.py b/src/backend/InvenTree/stock/api.py index 00119d1486..13aea93e63 100644 --- a/src/backend/InvenTree/stock/api.py +++ b/src/backend/InvenTree/stock/api.py @@ -418,7 +418,7 @@ class StockLocationList(DataExportViewMixin, ListCreateAPI): filter_backends = SEARCH_ORDER_FILTER - search_fields = ['name', 'description', 'tags__name', 'tags__slug'] + search_fields = ['name', 'description', 'pathstring', 'tags__name', 'tags__slug'] ordering_fields = ['name', 'pathstring', 'items', 'level', 'tree_id', 'lft'] diff --git a/src/frontend/src/components/forms/fields/RelatedModelField.tsx b/src/frontend/src/components/forms/fields/RelatedModelField.tsx index 18816190dd..728a32f35e 100644 --- a/src/frontend/src/components/forms/fields/RelatedModelField.tsx +++ b/src/frontend/src/components/forms/fields/RelatedModelField.tsx @@ -236,25 +236,23 @@ export function RelatedModelField({ // Field doesn't follow Mantine theming // Define color theme to pass to field based on Mantine theme const theme = useMantineTheme(); - - const colorschema = vars.colors.primaryColors; const { colorScheme } = useMantineColorScheme(); const colors = useMemo(() => { let colors: any; if (colorScheme === 'dark') { colors = { - neutral0: colorschema[6], - neutral5: colorschema[4], - neutral10: colorschema[4], - neutral20: colorschema[4], - neutral30: colorschema[3], - neutral40: colorschema[2], - neutral50: colorschema[1], - neutral60: colorschema[0], - neutral70: colorschema[0], - neutral80: colorschema[0], - neutral90: colorschema[0], + neutral0: vars.colors.dark[6], + neutral5: vars.colors.dark[4], + neutral10: vars.colors.dark[4], + neutral20: vars.colors.dark[4], + neutral30: vars.colors.dark[3], + neutral40: vars.colors.dark[2], + neutral50: vars.colors.dark[1], + neutral60: vars.colors.dark[0], + neutral70: vars.colors.dark[0], + neutral80: vars.colors.dark[0], + neutral90: vars.colors.dark[0], primary: vars.colors.primaryColors[7], primary25: vars.colors.primaryColors[6], primary50: vars.colors.primaryColors[5], diff --git a/src/frontend/src/components/render/Instance.tsx b/src/frontend/src/components/render/Instance.tsx index 6e3203c977..97c9c80c03 100644 --- a/src/frontend/src/components/render/Instance.tsx +++ b/src/frontend/src/components/render/Instance.tsx @@ -157,7 +157,8 @@ export function RenderInlineModel({ labels, url, navigate, - showSecondary = true + showSecondary = true, + tooltip }: { primary: string; secondary?: string; @@ -168,6 +169,7 @@ export function RenderInlineModel({ labels?: string[]; url?: string; navigate?: any; + tooltip?: string; }): ReactNode { // TODO: Handle labels @@ -181,7 +183,7 @@ export function RenderInlineModel({ ); return ( - + {prefix} {image && } diff --git a/src/frontend/src/components/render/Part.tsx b/src/frontend/src/components/render/Part.tsx index 87ad95759d..24ca8ea1ad 100644 --- a/src/frontend/src/components/render/Part.tsx +++ b/src/frontend/src/components/render/Part.tsx @@ -56,13 +56,18 @@ export function RenderPartCategory( props: Readonly ): ReactNode { const { instance } = props; - const lvl = '-'.repeat(instance.level || 0); return ( } - primary={`${lvl} ${instance.name}`} + tooltip={instance.pathstring} + prefix={ + <> +
+ {instance.icon && } + + } + primary={instance.name} secondary={instance.description} url={ props.link diff --git a/src/frontend/src/components/render/Stock.tsx b/src/frontend/src/components/render/Stock.tsx index f656c10492..d42c52f58b 100644 --- a/src/frontend/src/components/render/Stock.tsx +++ b/src/frontend/src/components/render/Stock.tsx @@ -17,7 +17,13 @@ export function RenderStockLocation( return ( } + tooltip={instance.pathstring} + prefix={ + <> +
+ {instance.icon && } + + } primary={instance.name} secondary={instance.description} url={ From 6f67fb2c9a952cdd9caba9ae159792581d157431 Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Fri, 2 Aug 2024 11:57:23 +0200 Subject: [PATCH 34/55] Make versions_check more reliable in forks (#7785) * discover repo only run in GH actions use discovered api this is usefull for GHES enviroments style fixes * Fix wrong env name --- .github/scripts/version_check.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/.github/scripts/version_check.py b/.github/scripts/version_check.py index 9e81d3885c..aa03e27c1a 100644 --- a/.github/scripts/version_check.py +++ b/.github/scripts/version_check.py @@ -18,6 +18,9 @@ from pathlib import Path import requests +REPO = os.getenv('GITHUB_REPOSITORY', 'inventree/inventree') +GITHUB_API_URL = os.getenv('GITHUB_API_URL', 'https://api.github.com') + def get_existing_release_tags(): """Request information on existing releases via the GitHub API.""" @@ -28,9 +31,7 @@ def get_existing_release_tags(): if token: headers = {'Authorization': f'Bearer {token}'} - response = requests.get( - 'https://api.github.com/repos/inventree/inventree/releases', headers=headers - ) + response = requests.get(f'{GITHUB_API_URL}/repos/{REPO}/releases', headers=headers) if response.status_code != 200: raise ValueError( @@ -90,6 +91,11 @@ def check_version_number(version_string, allow_duplicate=False): if __name__ == '__main__': + # Ensure that we are running in GH Actions + if os.environ.get('GITHUB_ACTIONS', '') != 'true': + print('This script is intended to be run within a GitHub Action!') + sys.exit(1) + if 'only_version' in sys.argv: here = Path(__file__).parent.absolute() version_file = here.joinpath( @@ -102,14 +108,13 @@ if __name__ == '__main__': results[0] = str(int(results[0]) - 1) print(results[0]) exit(0) + # GITHUB_REF_TYPE may be either 'branch' or 'tag' GITHUB_REF_TYPE = os.environ['GITHUB_REF_TYPE'] # GITHUB_REF may be either 'refs/heads/' or 'refs/heads/' GITHUB_REF = os.environ['GITHUB_REF'] - GITHUB_REF_NAME = os.environ['GITHUB_REF_NAME'] - GITHUB_BASE_REF = os.environ['GITHUB_BASE_REF'] # Print out version information, makes debugging actions *much* easier! @@ -193,7 +198,7 @@ if __name__ == '__main__': # Ref: https://getridbug.com/python/how-to-set-environment-variables-in-github-actions-using-python/ with open(os.getenv('GITHUB_ENV'), 'a') as env_file: # Construct tag string - tags = ','.join([f'inventree/inventree:{tag}' for tag in docker_tags]) + tags = ','.join([f'{REPO}:{tag}' for tag in docker_tags]) env_file.write(f'docker_tags={tags}\n') From 6fd5a9941b8cd50c9bc6275e4a96a58dc8dee4fc Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 2 Aug 2024 21:16:05 +1000 Subject: [PATCH 35/55] Fix for holdoff threshold checks (#7795) - Don't use the "day" portion of date? --- src/backend/InvenTree/InvenTree/tasks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/InvenTree/InvenTree/tasks.py b/src/backend/InvenTree/InvenTree/tasks.py index d436581ae4..21195c9c75 100644 --- a/src/backend/InvenTree/InvenTree/tasks.py +++ b/src/backend/InvenTree/InvenTree/tasks.py @@ -118,7 +118,7 @@ def check_daily_holdoff(task_name: str, n_days: int = 1) -> bool: if last_success: threshold = datetime.now() - timedelta(days=n_days) - if last_success > threshold: + if last_success.date() > threshold.date(): logger.info( "Last successful run for '%s' was too recent - skipping task", task_name ) From 85fc709fc76dd8935c247d8e04d416dbc81aa529 Mon Sep 17 00:00:00 2001 From: Oliver Date: Sat, 3 Aug 2024 16:13:28 +1000 Subject: [PATCH 36/55] Fix permission checks for bulk delete actions (#7796) --- src/frontend/src/tables/bom/BomTable.tsx | 2 +- src/frontend/src/tables/build/BuildAllocatedStockTable.tsx | 2 +- src/frontend/src/tables/settings/ErrorTable.tsx | 4 +++- src/frontend/src/tables/settings/FailedTasksTable.tsx | 4 +++- src/frontend/src/tables/settings/PendingTasksTable.tsx | 4 +++- 5 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/frontend/src/tables/bom/BomTable.tsx b/src/frontend/src/tables/bom/BomTable.tsx index d583cff857..a065c73aeb 100644 --- a/src/frontend/src/tables/bom/BomTable.tsx +++ b/src/frontend/src/tables/bom/BomTable.tsx @@ -554,7 +554,7 @@ export function BomTable({ modelField: 'sub_part', rowActions: rowActions, enableSelection: !partLocked, - enableBulkDelete: !partLocked, + enableBulkDelete: !partLocked && user.hasDeleteRole(UserRoles.part), enableDownload: true }} /> diff --git a/src/frontend/src/tables/build/BuildAllocatedStockTable.tsx b/src/frontend/src/tables/build/BuildAllocatedStockTable.tsx index f89939fe92..5452590fa9 100644 --- a/src/frontend/src/tables/build/BuildAllocatedStockTable.tsx +++ b/src/frontend/src/tables/build/BuildAllocatedStockTable.tsx @@ -154,7 +154,7 @@ export default function BuildAllocatedStockTable({ stock_detail: true, supplier_detail: true }, - enableBulkDelete: true, + enableBulkDelete: user.hasDeleteRole(UserRoles.build), enableDownload: true, enableSelection: true, rowActions: rowActions, diff --git a/src/frontend/src/tables/settings/ErrorTable.tsx b/src/frontend/src/tables/settings/ErrorTable.tsx index e313d0b542..b3090e4d1c 100644 --- a/src/frontend/src/tables/settings/ErrorTable.tsx +++ b/src/frontend/src/tables/settings/ErrorTable.tsx @@ -8,6 +8,7 @@ import { ApiEndpoints } from '../../enums/ApiEndpoints'; import { useDeleteApiFormModal } from '../../hooks/UseForm'; import { useTable } from '../../hooks/UseTable'; import { apiUrl } from '../../states/ApiState'; +import { useUserState } from '../../states/UserState'; import { TableColumn } from '../Column'; import { InvenTreeTable } from '../InvenTreeTable'; import { RowAction, RowDeleteAction } from '../RowActions'; @@ -17,6 +18,7 @@ import { RowAction, RowDeleteAction } from '../RowActions'; */ export default function ErrorReportTable() { const table = useTable('error-report'); + const user = useUserState(); const [error, setError] = useState(''); @@ -90,7 +92,7 @@ export default function ErrorReportTable() { tableState={table} columns={columns} props={{ - enableBulkDelete: true, + enableBulkDelete: user.isStaff(), enableSelection: true, rowActions: rowActions, onRowClick: (row) => { diff --git a/src/frontend/src/tables/settings/FailedTasksTable.tsx b/src/frontend/src/tables/settings/FailedTasksTable.tsx index 13f740a64f..c7f1117388 100644 --- a/src/frontend/src/tables/settings/FailedTasksTable.tsx +++ b/src/frontend/src/tables/settings/FailedTasksTable.tsx @@ -7,11 +7,13 @@ import { StylishText } from '../../components/items/StylishText'; import { ApiEndpoints } from '../../enums/ApiEndpoints'; import { useTable } from '../../hooks/UseTable'; import { apiUrl } from '../../states/ApiState'; +import { useUserState } from '../../states/UserState'; import { TableColumn } from '../Column'; import { InvenTreeTable } from '../InvenTreeTable'; export default function FailedTasksTable() { const table = useTable('tasks-failed'); + const user = useUserState(); const [error, setError] = useState(''); @@ -70,7 +72,7 @@ export default function FailedTasksTable() { tableState={table} columns={columns} props={{ - enableBulkDelete: true, + enableBulkDelete: user.isStaff(), enableSelection: true, onRowClick: (row: any) => { setError(row.result); diff --git a/src/frontend/src/tables/settings/PendingTasksTable.tsx b/src/frontend/src/tables/settings/PendingTasksTable.tsx index 7177427c7c..c82731cf62 100644 --- a/src/frontend/src/tables/settings/PendingTasksTable.tsx +++ b/src/frontend/src/tables/settings/PendingTasksTable.tsx @@ -4,11 +4,13 @@ import { useMemo } from 'react'; import { ApiEndpoints } from '../../enums/ApiEndpoints'; import { useTable } from '../../hooks/UseTable'; import { apiUrl } from '../../states/ApiState'; +import { useUserState } from '../../states/UserState'; import { TableColumn } from '../Column'; import { InvenTreeTable } from '../InvenTreeTable'; export default function PendingTasksTable() { const table = useTable('tasks-pending'); + const user = useUserState(); const columns: TableColumn[] = useMemo(() => { return [ @@ -48,7 +50,7 @@ export default function PendingTasksTable() { tableState={table} columns={columns} props={{ - enableBulkDelete: true, + enableBulkDelete: user.isStaff(), enableSelection: true }} /> From dee519e8482b610c01b2efafa0e07ddc1243e8e9 Mon Sep 17 00:00:00 2001 From: Oliver Date: Sat, 3 Aug 2024 16:13:38 +1000 Subject: [PATCH 37/55] [API] Improvements for API endpoints (#7794) * Build allocation API updates - Improve API query efficiency - Add extra export fields to the BuildItemSerializer * Remove commented code * Improve query efficiency for BuildLine serializer * Further improvements * Improve StockList API endpoint - Reduce from ~700ms to ~300ms with 250 results * Improve query efficiency when fetching part parameter data * Bump API version --- .../InvenTree/InvenTree/api_version.py | 5 ++- src/backend/InvenTree/build/api.py | 8 +++- src/backend/InvenTree/build/serializers.py | 37 +++++++++++++++---- src/backend/InvenTree/company/serializers.py | 7 +++- src/backend/InvenTree/part/api.py | 4 ++ src/backend/InvenTree/stock/serializers.py | 3 ++ 6 files changed, 53 insertions(+), 11 deletions(-) diff --git a/src/backend/InvenTree/InvenTree/api_version.py b/src/backend/InvenTree/InvenTree/api_version.py index 4161388461..adf6b0c037 100644 --- a/src/backend/InvenTree/InvenTree/api_version.py +++ b/src/backend/InvenTree/InvenTree/api_version.py @@ -1,12 +1,15 @@ """InvenTree API version information.""" # InvenTree API version -INVENTREE_API_VERSION = 230 +INVENTREE_API_VERSION = 231 """Increment this API version number whenever there is a significant change to the API that any clients need to know about.""" INVENTREE_API_TEXT = """ +v231 - 2024-08-03 : https://github.com/inventree/InvenTree/pull/7794 + - Optimize BuildItem and BuildLine serializers to improve API efficiency + v230 - 2024-05-05 : https://github.com/inventree/InvenTree/pull/7164 - Adds test statistics endpoint diff --git a/src/backend/InvenTree/build/api.py b/src/backend/InvenTree/build/api.py index 5aacea397d..167b447c2c 100644 --- a/src/backend/InvenTree/build/api.py +++ b/src/backend/InvenTree/build/api.py @@ -575,19 +575,23 @@ class BuildItemList(DataExportViewMixin, BulkDeleteMixin, ListCreateAPI): return self.serializer_class(*args, **kwargs) def get_queryset(self): - """Override the queryset method, to allow filtering by stock_item.part.""" + """Override the queryset method, to perform custom prefetch.""" queryset = super().get_queryset() queryset = queryset.select_related( 'build_line', 'build_line__build', 'build_line__bom_item', + 'build_line__bom_item__part', + 'build_line__bom_item__sub_part', 'install_into', 'stock_item', 'stock_item__location', 'stock_item__part', - 'stock_item__supplier_part', + 'stock_item__supplier_part__part', + 'stock_item__supplier_part__supplier', 'stock_item__supplier_part__manufacturer_part', + 'stock_item__supplier_part__manufacturer_part__manufacturer', ).prefetch_related( 'stock_item__location__tags', ) diff --git a/src/backend/InvenTree/build/serializers.py b/src/backend/InvenTree/build/serializers.py index 390cabab92..e961d28144 100644 --- a/src/backend/InvenTree/build/serializers.py +++ b/src/backend/InvenTree/build/serializers.py @@ -23,7 +23,7 @@ from stock.status_codes import StockStatus from stock.generators import generate_batch_code from stock.models import StockItem, StockLocation -from stock.serializers import StockItemSerializerBrief, LocationSerializer +from stock.serializers import StockItemSerializerBrief, LocationBriefSerializer import common.models from common.serializers import ProjectCodeSerializer @@ -1064,6 +1064,8 @@ class BuildItemSerializer(DataImportExportSerializerMixin, InvenTreeModelSeriali # These fields are only used for data export export_only_fields = [ + 'bom_part_id', + 'bom_part_name', 'build_reference', 'sku', 'mpn', @@ -1071,9 +1073,11 @@ class BuildItemSerializer(DataImportExportSerializerMixin, InvenTreeModelSeriali 'part_id', 'part_name', 'part_ipn', + 'part_description', 'available_quantity', 'item_batch_code', 'item_serial', + 'item_packaging', ] class Meta: @@ -1097,6 +1101,8 @@ class BuildItemSerializer(DataImportExportSerializerMixin, InvenTreeModelSeriali # The following fields are only used for data export 'bom_reference', + 'bom_part_id', + 'bom_part_name', 'build_reference', 'location_name', 'mpn', @@ -1104,9 +1110,11 @@ class BuildItemSerializer(DataImportExportSerializerMixin, InvenTreeModelSeriali 'part_id', 'part_name', 'part_ipn', + 'part_description', 'available_quantity', 'item_batch_code', 'item_serial_number', + 'item_packaging', ] def __init__(self, *args, **kwargs): @@ -1136,11 +1144,17 @@ class BuildItemSerializer(DataImportExportSerializerMixin, InvenTreeModelSeriali location_name = serializers.CharField(source='stock_item.location.name', label=_('Location Name'), read_only=True) build_reference = serializers.CharField(source='build.reference', label=_('Build Reference'), read_only=True) bom_reference = serializers.CharField(source='build_line.bom_item.reference', label=_('BOM Reference'), read_only=True) + item_packaging = serializers.CharField(source='stock_item.packaging', label=_('Packaging'), read_only=True) # Part detail fields part_id = serializers.PrimaryKeyRelatedField(source='stock_item.part', label=_('Part ID'), many=False, read_only=True) part_name = serializers.CharField(source='stock_item.part.name', label=_('Part Name'), read_only=True) part_ipn = serializers.CharField(source='stock_item.part.IPN', label=_('Part IPN'), read_only=True) + part_description = serializers.CharField(source='stock_item.part.description', label=_('Part Description'), read_only=True) + + # BOM Item Part ID (it may be different to the allocated part) + bom_part_id = serializers.PrimaryKeyRelatedField(source='build_line.bom_item.sub_part', label=_('BOM Part ID'), many=False, read_only=True) + bom_part_name = serializers.CharField(source='build_line.bom_item.sub_part.name', label=_('BOM Part Name'), read_only=True) item_batch_code = serializers.CharField(source='stock_item.batch', label=_('Batch Code'), read_only=True) item_serial_number = serializers.CharField(source='stock_item.serial', label=_('Serial Number'), read_only=True) @@ -1152,9 +1166,9 @@ class BuildItemSerializer(DataImportExportSerializerMixin, InvenTreeModelSeriali part_detail = part_serializers.PartBriefSerializer(source='stock_item.part', many=False, read_only=True, pricing=False) stock_item_detail = StockItemSerializerBrief(source='stock_item', read_only=True) location = serializers.PrimaryKeyRelatedField(source='stock_item.location', many=False, read_only=True) - location_detail = LocationSerializer(source='stock_item.location', read_only=True) + location_detail = LocationBriefSerializer(source='stock_item.location', read_only=True) build_detail = BuildSerializer(source='build_line.build', many=False, read_only=True) - supplier_part_detail = company.serializers.SupplierPartSerializer(source='stock_item.supplier_part', many=False, read_only=True) + supplier_part_detail = company.serializers.SupplierPartSerializer(source='stock_item.supplier_part', many=False, read_only=True, brief=True) quantity = InvenTreeDecimalField(label=_('Allocated Quantity')) available_quantity = InvenTreeDecimalField(source='stock_item.quantity', read_only=True, label=_('Available Quantity')) @@ -1243,7 +1257,7 @@ class BuildLineSerializer(DataImportExportSerializerMixin, InvenTreeModelSeriali # Foreign key fields bom_item_detail = part_serializers.BomItemSerializer(source='bom_item', many=False, read_only=True, pricing=False) - part_detail = part_serializers.PartSerializer(source='bom_item.sub_part', many=False, read_only=True, pricing=False) + part_detail = part_serializers.PartBriefSerializer(source='bom_item.sub_part', many=False, read_only=True, pricing=False) allocations = BuildItemSerializer(many=True, read_only=True) # Annotated (calculated) fields @@ -1289,16 +1303,20 @@ class BuildLineSerializer(DataImportExportSerializerMixin, InvenTreeModelSeriali """ queryset = queryset.select_related( - 'build', 'bom_item', + 'build', + 'bom_item', + 'bom_item__part', + 'bom_item__part__pricing_data', + 'bom_item__sub_part', + 'bom_item__sub_part__pricing_data', ) # Pre-fetch related fields queryset = queryset.prefetch_related( - 'bom_item__sub_part', + 'bom_item__sub_part__tags', 'bom_item__sub_part__stock_items', 'bom_item__sub_part__stock_items__allocations', 'bom_item__sub_part__stock_items__sales_order_allocations', - 'bom_item__sub_part__tags', 'bom_item__substitutes', 'bom_item__substitutes__part__stock_items', @@ -1310,6 +1328,11 @@ class BuildLineSerializer(DataImportExportSerializerMixin, InvenTreeModelSeriali 'allocations__stock_item__part', 'allocations__stock_item__location', 'allocations__stock_item__location__tags', + 'allocations__stock_item__supplier_part', + 'allocations__stock_item__supplier_part__part', + 'allocations__stock_item__supplier_part__supplier', + 'allocations__stock_item__supplier_part__manufacturer_part', + 'allocations__stock_item__supplier_part__manufacturer_part__manufacturer', ) # Annotate the "allocated" quantity diff --git a/src/backend/InvenTree/company/serializers.py b/src/backend/InvenTree/company/serializers.py index 428ea7b5b8..5123b3f1e8 100644 --- a/src/backend/InvenTree/company/serializers.py +++ b/src/backend/InvenTree/company/serializers.py @@ -381,9 +381,14 @@ class SupplierPartSerializer( self.fields.pop('manufacturer_detail', None) self.fields.pop('manufacturer_part_detail', None) - if prettify is not True: + if brief or prettify is not True: self.fields.pop('pretty_name', None) + if brief: + self.fields.pop('tags') + self.fields.pop('available') + self.fields.pop('availability_updated') + # Annotated field showing total in-stock quantity in_stock = serializers.FloatField(read_only=True, label=_('In Stock')) diff --git a/src/backend/InvenTree/part/api.py b/src/backend/InvenTree/part/api.py index d22e6151a6..49be598d88 100644 --- a/src/backend/InvenTree/part/api.py +++ b/src/backend/InvenTree/part/api.py @@ -1195,6 +1195,10 @@ class PartMixin: queryset = part_serializers.PartSerializer.annotate_queryset(queryset) + # Annotate with parameter template data? + if str2bool(self.request.query_params.get('parameters', False)): + queryset = queryset.prefetch_related('parameters', 'parameters__template') + return queryset def get_serializer(self, *args, **kwargs): diff --git a/src/backend/InvenTree/stock/serializers.py b/src/backend/InvenTree/stock/serializers.py index e92c133eb7..8f83b59751 100644 --- a/src/backend/InvenTree/stock/serializers.py +++ b/src/backend/InvenTree/stock/serializers.py @@ -506,7 +506,10 @@ class StockItemSerializer( 'part__category', 'part__pricing_data', 'supplier_part', + 'supplier_part__part', + 'supplier_part__supplier', 'supplier_part__manufacturer_part', + 'supplier_part__manufacturer_part__manufacturer', 'supplier_part__tags', 'test_results', 'tags', From abe9b19ead7370e5d2830545d88a938020f5e30c Mon Sep 17 00:00:00 2001 From: Oliver Date: Sat, 3 Aug 2024 18:49:09 +1000 Subject: [PATCH 38/55] [PUI] Sales order tables (#7793) * Add placeholder for more sales order actions * Add * Allow filtering by date fields * Add - Add label rendering for ReturnOrderLineItem * Add placeholder actions * Edit / delete / add line items for return order * Fix for duplicate action * Cleanup unused code * Bump API version * Update playwright tests --- .../InvenTree/InvenTree/api_version.py | 6 +- src/backend/InvenTree/order/api.py | 4 +- .../src/components/render/Instance.tsx | 2 + .../src/components/render/ModelType.tsx | 5 + src/frontend/src/components/render/Order.tsx | 17 ++ .../src/components/render/StatusRenderer.tsx | 15 +- src/frontend/src/defaults/backendMappings.tsx | 2 +- src/frontend/src/enums/ApiEndpoints.tsx | 1 + src/frontend/src/enums/ModelType.tsx | 1 + src/frontend/src/forms/ReturnOrderForms.tsx | 38 ++++ src/frontend/src/forms/SalesOrderForms.tsx | 17 ++ .../src/pages/sales/ReturnOrderDetail.tsx | 9 +- .../src/pages/sales/SalesOrderDetail.tsx | 17 +- src/frontend/src/tables/ColumnRenderers.tsx | 7 +- .../tables/sales/ReturnOrderLineItemTable.tsx | 199 ++++++++++++++++++ .../tables/sales/SalesOrderLineItemTable.tsx | 26 ++- .../tables/sales/SalesOrderShipmentTable.tsx | 175 +++++++++++++++ src/frontend/tests/pui_general.spec.ts | 3 +- 18 files changed, 517 insertions(+), 27 deletions(-) create mode 100644 src/frontend/src/forms/ReturnOrderForms.tsx create mode 100644 src/frontend/src/tables/sales/ReturnOrderLineItemTable.tsx create mode 100644 src/frontend/src/tables/sales/SalesOrderShipmentTable.tsx diff --git a/src/backend/InvenTree/InvenTree/api_version.py b/src/backend/InvenTree/InvenTree/api_version.py index adf6b0c037..5aa93531ad 100644 --- a/src/backend/InvenTree/InvenTree/api_version.py +++ b/src/backend/InvenTree/InvenTree/api_version.py @@ -1,12 +1,16 @@ """InvenTree API version information.""" # InvenTree API version -INVENTREE_API_VERSION = 231 +INVENTREE_API_VERSION = 232 """Increment this API version number whenever there is a significant change to the API that any clients need to know about.""" INVENTREE_API_TEXT = """ + +v232 - 2024-08-03 : https://github.com/inventree/InvenTree/pull/7793 + - Allow ordering of SalesOrderShipment API by 'shipment_date' and 'delivery_date' + v231 - 2024-08-03 : https://github.com/inventree/InvenTree/pull/7794 - Optimize BuildItem and BuildLine serializers to improve API efficiency diff --git a/src/backend/InvenTree/order/api.py b/src/backend/InvenTree/order/api.py index 1850439602..92603fadfb 100644 --- a/src/backend/InvenTree/order/api.py +++ b/src/backend/InvenTree/order/api.py @@ -1042,7 +1042,9 @@ class SalesOrderShipmentList(ListCreateAPI): serializer_class = serializers.SalesOrderShipmentSerializer filterset_class = SalesOrderShipmentFilter - filter_backends = [rest_filters.DjangoFilterBackend] + filter_backends = SEARCH_ORDER_FILTER_ALIAS + + ordering_fields = ['delivery_date', 'shipment_date'] class SalesOrderShipmentDetail(RetrieveUpdateDestroyAPI): diff --git a/src/frontend/src/components/render/Instance.tsx b/src/frontend/src/components/render/Instance.tsx index 97c9c80c03..5938eb34ef 100644 --- a/src/frontend/src/components/render/Instance.tsx +++ b/src/frontend/src/components/render/Instance.tsx @@ -21,6 +21,7 @@ import { ModelInformationDict } from './ModelType'; import { RenderPurchaseOrder, RenderReturnOrder, + RenderReturnOrderLineItem, RenderSalesOrder, RenderSalesOrderShipment } from './Order'; @@ -73,6 +74,7 @@ const RendererLookup: EnumDictionary< [ModelType.purchaseorder]: RenderPurchaseOrder, [ModelType.purchaseorderlineitem]: RenderPurchaseOrder, [ModelType.returnorder]: RenderReturnOrder, + [ModelType.returnorderlineitem]: RenderReturnOrderLineItem, [ModelType.salesorder]: RenderSalesOrder, [ModelType.salesordershipment]: RenderSalesOrderShipment, [ModelType.stocklocation]: RenderStockLocation, diff --git a/src/frontend/src/components/render/ModelType.tsx b/src/frontend/src/components/render/ModelType.tsx index 5b4c1133cd..ef30cfa0c2 100644 --- a/src/frontend/src/components/render/ModelType.tsx +++ b/src/frontend/src/components/render/ModelType.tsx @@ -173,6 +173,11 @@ export const ModelInformationDict: ModelDict = { api_endpoint: ApiEndpoints.return_order_list, admin_url: '/order/returnorder/' }, + returnorderlineitem: { + label: t`Return Order Line Item`, + label_multiple: t`Return Order Line Items`, + api_endpoint: ApiEndpoints.return_order_line_list + }, address: { label: t`Address`, label_multiple: t`Addresses`, diff --git a/src/frontend/src/components/render/Order.tsx b/src/frontend/src/components/render/Order.tsx index d36277dfe4..416f45f1fd 100644 --- a/src/frontend/src/components/render/Order.tsx +++ b/src/frontend/src/components/render/Order.tsx @@ -62,6 +62,23 @@ export function RenderReturnOrder( ); } +export function RenderReturnOrderLineItem( + props: Readonly +): ReactNode { + const { instance } = props; + + return ( + + ); +} + /** * Inline rendering of a single SalesOrder instance */ diff --git a/src/frontend/src/components/render/StatusRenderer.tsx b/src/frontend/src/components/render/StatusRenderer.tsx index 42185690ee..680e9c37e1 100644 --- a/src/frontend/src/components/render/StatusRenderer.tsx +++ b/src/frontend/src/components/render/StatusRenderer.tsx @@ -2,6 +2,7 @@ import { Badge, Center, MantineSize } from '@mantine/core'; import { colorMap } from '../../defaults/backendMappings'; import { ModelType } from '../../enums/ModelType'; +import { resolveItem } from '../../functions/conversion'; import { useGlobalStatusState } from '../../states/StatusState'; interface StatusCodeInterface { @@ -132,10 +133,16 @@ export const StatusRenderer = ({ * Render the status badge in a table */ export function TableStatusRenderer( - type: ModelType + type: ModelType, + accessor?: string ): ((record: any) => any) | undefined { - return (record: any) => - record.status && ( -
{StatusRenderer({ status: record.status, type: type })}
+ return (record: any) => { + const status = resolveItem(record, accessor ?? 'status'); + + return ( + status && ( +
{StatusRenderer({ status: status, type: type })}
+ ) ); + }; } diff --git a/src/frontend/src/defaults/backendMappings.tsx b/src/frontend/src/defaults/backendMappings.tsx index 3339b27a8e..7ec0a776c2 100644 --- a/src/frontend/src/defaults/backendMappings.tsx +++ b/src/frontend/src/defaults/backendMappings.tsx @@ -9,8 +9,8 @@ import { ModelType } from '../enums/ModelType'; export const statusCodeList: Record = { BuildStatus: ModelType.build, PurchaseOrderStatus: ModelType.purchaseorder, - ReturnOrderLineStatus: ModelType.purchaseorderlineitem, ReturnOrderStatus: ModelType.returnorder, + ReturnOrderLineStatus: ModelType.returnorderlineitem, SalesOrderStatus: ModelType.salesorder, StockHistoryCode: ModelType.stockhistory, StockStatus: ModelType.stockitem, diff --git a/src/frontend/src/enums/ApiEndpoints.tsx b/src/frontend/src/enums/ApiEndpoints.tsx index 62b54cdc27..14d40cd9c9 100644 --- a/src/frontend/src/enums/ApiEndpoints.tsx +++ b/src/frontend/src/enums/ApiEndpoints.tsx @@ -132,6 +132,7 @@ export enum ApiEndpoints { sales_order_shipment_list = 'order/so/shipment/', return_order_list = 'order/ro/', + return_order_line_list = 'order/ro-line/', // Template API endpoints label_list = 'label/template/', diff --git a/src/frontend/src/enums/ModelType.tsx b/src/frontend/src/enums/ModelType.tsx index 6a1a1bb212..f20e3f1ec6 100644 --- a/src/frontend/src/enums/ModelType.tsx +++ b/src/frontend/src/enums/ModelType.tsx @@ -22,6 +22,7 @@ export enum ModelType { salesorder = 'salesorder', salesordershipment = 'salesordershipment', returnorder = 'returnorder', + returnorderlineitem = 'returnorderlineitem', importsession = 'importsession', address = 'address', contact = 'contact', diff --git a/src/frontend/src/forms/ReturnOrderForms.tsx b/src/frontend/src/forms/ReturnOrderForms.tsx new file mode 100644 index 0000000000..c582089ffb --- /dev/null +++ b/src/frontend/src/forms/ReturnOrderForms.tsx @@ -0,0 +1,38 @@ +import { useMemo } from 'react'; + +export function useReturnOrderLineItemFields({ + orderId, + customerId, + create +}: { + orderId: number; + customerId: number; + create?: boolean; +}) { + return useMemo(() => { + return { + order: { + disabled: true, + filters: { + customer_detail: true + } + }, + item: { + filters: { + customer: customerId, + part_detail: true, + serialized: true + } + }, + reference: {}, + outcome: { + hidden: create == true + }, + price: {}, + price_currency: {}, + target_date: {}, + notes: {}, + link: {} + }; + }, [create, orderId, customerId]); +} diff --git a/src/frontend/src/forms/SalesOrderForms.tsx b/src/frontend/src/forms/SalesOrderForms.tsx index 9c11eb5c50..6b137a367a 100644 --- a/src/frontend/src/forms/SalesOrderForms.tsx +++ b/src/frontend/src/forms/SalesOrderForms.tsx @@ -84,6 +84,23 @@ export function useSalesOrderLineItemFields({ return fields; } +export function useSalesOrderShipmentFields(): ApiFormFieldSet { + return useMemo(() => { + return { + order: { + disabled: true + }, + reference: {}, + shipment_date: {}, + delivery_date: {}, + tracking_number: {}, + invoice_number: {}, + link: {}, + notes: {} + }; + }, []); +} + export function useReturnOrderFields(): ApiFormFieldSet { return useMemo(() => { return { diff --git a/src/frontend/src/pages/sales/ReturnOrderDetail.tsx b/src/frontend/src/pages/sales/ReturnOrderDetail.tsx index d9a128b55a..10f8fe4b2e 100644 --- a/src/frontend/src/pages/sales/ReturnOrderDetail.tsx +++ b/src/frontend/src/pages/sales/ReturnOrderDetail.tsx @@ -26,7 +26,6 @@ import { UnlinkBarcodeAction, ViewBarcodeAction } from '../../components/items/ActionDropdown'; -import { PlaceholderPanel } from '../../components/items/Placeholder'; import InstanceDetail from '../../components/nav/InstanceDetail'; import { PageDetail } from '../../components/nav/PageDetail'; import { PanelGroup, PanelType } from '../../components/nav/PanelGroup'; @@ -43,6 +42,7 @@ import { import { useInstance } from '../../hooks/UseInstance'; import { useUserState } from '../../states/UserState'; import { AttachmentTable } from '../../tables/general/AttachmentTable'; +import ReturnOrderLineItemTable from '../../tables/sales/ReturnOrderLineItemTable'; /** * Detail page for a single ReturnOrder @@ -227,7 +227,12 @@ export default function ReturnOrderDetail() { name: 'line-items', label: t`Line Items`, icon: , - content: + content: ( + + ) }, { name: 'attachments', diff --git a/src/frontend/src/pages/sales/SalesOrderDetail.tsx b/src/frontend/src/pages/sales/SalesOrderDetail.tsx index 5fb6c861c6..6d4f35b1e3 100644 --- a/src/frontend/src/pages/sales/SalesOrderDetail.tsx +++ b/src/frontend/src/pages/sales/SalesOrderDetail.tsx @@ -7,8 +7,7 @@ import { IconNotes, IconPaperclip, IconTools, - IconTruckDelivery, - IconTruckLoading + IconTruckDelivery } from '@tabler/icons-react'; import { ReactNode, useMemo } from 'react'; import { useParams } from 'react-router-dom'; @@ -29,7 +28,6 @@ import { UnlinkBarcodeAction, ViewBarcodeAction } from '../../components/items/ActionDropdown'; -import { PlaceholderPanel } from '../../components/items/Placeholder'; import InstanceDetail from '../../components/nav/InstanceDetail'; import { PageDetail } from '../../components/nav/PageDetail'; import { PanelGroup, PanelType } from '../../components/nav/PanelGroup'; @@ -48,6 +46,7 @@ import { useUserState } from '../../states/UserState'; import { BuildOrderTable } from '../../tables/build/BuildOrderTable'; import { AttachmentTable } from '../../tables/general/AttachmentTable'; import SalesOrderLineItemTable from '../../tables/sales/SalesOrderLineItemTable'; +import SalesOrderShipmentTable from '../../tables/sales/SalesOrderShipmentTable'; /** * Detail page for a single SalesOrder @@ -258,16 +257,10 @@ export default function SalesOrderDetail() { ) }, { - name: 'pending-shipments', - label: t`Pending Shipments`, - icon: , - content: - }, - { - name: 'completed-shipments', - label: t`Completed Shipments`, + name: 'shipments', + label: t`Shipments`, icon: , - content: + content: }, { name: 'build-orders', diff --git a/src/frontend/src/tables/ColumnRenderers.tsx b/src/frontend/src/tables/ColumnRenderers.tsx index be7fe7a759..8fbcecfbd5 100644 --- a/src/frontend/src/tables/ColumnRenderers.tsx +++ b/src/frontend/src/tables/ColumnRenderers.tsx @@ -163,16 +163,19 @@ export function ProjectCodeColumn(props: TableColumnProps): TableColumn { export function StatusColumn({ model, sortable, - accessor + accessor, + title }: { model: ModelType; sortable?: boolean; accessor?: string; + title?: string; }) { return { accessor: accessor ?? 'status', sortable: sortable ?? true, - render: TableStatusRenderer(model) + title: title, + render: TableStatusRenderer(model, accessor ?? 'status') }; } diff --git a/src/frontend/src/tables/sales/ReturnOrderLineItemTable.tsx b/src/frontend/src/tables/sales/ReturnOrderLineItemTable.tsx new file mode 100644 index 0000000000..de93a2945f --- /dev/null +++ b/src/frontend/src/tables/sales/ReturnOrderLineItemTable.tsx @@ -0,0 +1,199 @@ +import { t } from '@lingui/macro'; +import { IconSquareArrowRight } from '@tabler/icons-react'; +import { useCallback, useMemo, useState } from 'react'; + +import { AddItemButton } from '../../components/buttons/AddItemButton'; +import { formatCurrency } from '../../defaults/formatters'; +import { ApiEndpoints } from '../../enums/ApiEndpoints'; +import { ModelType } from '../../enums/ModelType'; +import { UserRoles } from '../../enums/Roles'; +import { useReturnOrderLineItemFields } from '../../forms/ReturnOrderForms'; +import { + useCreateApiFormModal, + useDeleteApiFormModal, + useEditApiFormModal +} from '../../hooks/UseForm'; +import { useTable } from '../../hooks/UseTable'; +import { apiUrl } from '../../states/ApiState'; +import { useUserState } from '../../states/UserState'; +import { TableColumn } from '../Column'; +import { + DateColumn, + LinkColumn, + NoteColumn, + PartColumn, + ReferenceColumn, + StatusColumn +} from '../ColumnRenderers'; +import { StatusFilterOptions, TableFilter } from '../Filter'; +import { InvenTreeTable } from '../InvenTreeTable'; +import { RowDeleteAction, RowEditAction } from '../RowActions'; + +export default function ReturnOrderLineItemTable({ + orderId, + customerId +}: { + orderId: number; + customerId: number; +}) { + const table = useTable('return-order-line-item'); + const user = useUserState(); + + const [selectedLine, setSelectedLine] = useState(0); + + const newLineFields = useReturnOrderLineItemFields({ + orderId: orderId, + customerId: customerId, + create: true + }); + + const editLineFields = useReturnOrderLineItemFields({ + orderId: orderId, + customerId: customerId + }); + + const newLine = useCreateApiFormModal({ + url: ApiEndpoints.return_order_line_list, + title: t`Add Line Item`, + fields: newLineFields, + initialData: { + order: orderId + }, + table: table + }); + + const editLine = useEditApiFormModal({ + url: ApiEndpoints.return_order_line_list, + pk: selectedLine, + title: t`Edit Line Item`, + fields: editLineFields, + table: table + }); + + const deleteLine = useDeleteApiFormModal({ + url: ApiEndpoints.return_order_line_list, + pk: selectedLine, + title: t`Delete Line Item`, + table: table + }); + + const tableColumns: TableColumn[] = useMemo(() => { + return [ + { + accessor: 'part', + title: t`Part`, + switchable: false, + render: (record: any) => PartColumn(record?.part_detail) + }, + { + accessor: 'item', + title: t`Stock Item`, + switchable: false + }, + ReferenceColumn({}), + StatusColumn({ + model: ModelType.returnorderlineitem, + sortable: true, + accessor: 'outcome' + }), + { + accessor: 'price', + render: (record: any) => + formatCurrency(record.price, { currency: record.price_currency }) + }, + DateColumn({ + accessor: 'target_date', + title: t`Target Date` + }), + DateColumn({ + accessor: 'received_date', + title: t`Received Date` + }), + NoteColumn({ + accessor: 'notes' + }), + LinkColumn({}) + ]; + }, []); + + const tableFilters: TableFilter[] = useMemo(() => { + return [ + { + name: 'received', + label: t`Received`, + description: t`Show items which have been received` + }, + { + name: 'status', + label: t`Status`, + description: t`Filter by line item status`, + choiceFunction: StatusFilterOptions(ModelType.returnorderlineitem) + } + ]; + }, []); + + const tableActions = useMemo(() => { + return [ +
-{% if build.active %} +{% if build.can_issue %} + +{% elif build.active %} {% endif %} + {% endif %} {% endblock actions %} @@ -244,6 +252,31 @@ src="{% static 'img/blank_image.png' %}" ); }); + $('#build-hold').click(function() { + holdOrder( + '{% url "api-build-hold" build.pk %}', + { + reload: true, + } + ); + }); + + $('#build-issue').click(function() { + constructForm('{% url "api-build-issue" build.pk %}', { + method: 'POST', + title: '{% trans "Issue Build Order" %}', + confirm: true, + preFormContent: ` +
+ {% trans "Issue this Build Order?" %} +
+ `, + onSuccess: function(response) { + window.location.reload(); + } + }); + }); + $("#build-complete").on('click', function() { completeBuildOrder({{ build.pk }}); }); diff --git a/src/backend/InvenTree/build/test_build.py b/src/backend/InvenTree/build/test_build.py index 4f06038888..7e190e3e21 100644 --- a/src/backend/InvenTree/build/test_build.py +++ b/src/backend/InvenTree/build/test_build.py @@ -15,6 +15,7 @@ import common.models from common.settings import set_global_setting import build.tasks from build.models import Build, BuildItem, BuildLine, generate_next_build_reference +from build.status_codes import BuildStatus from part.models import Part, BomItem, BomItemSubstitute, PartTestTemplate from stock.models import StockItem, StockItemTestResult from users.models import Owner @@ -175,6 +176,7 @@ class BuildTestBase(TestCase): part=cls.assembly, quantity=10, issued_by=get_user_model().objects.get(pk=1), + status=BuildStatus.PENDING, ) # Create some BuildLine items we can use later on @@ -321,6 +323,10 @@ class BuildTest(BuildTestBase): # Build is PENDING self.assertEqual(self.build.status, status.BuildStatus.PENDING) + self.assertTrue(self.build.is_active) + self.assertTrue(self.build.can_hold) + self.assertTrue(self.build.can_issue) + # Build has two build outputs self.assertEqual(self.build.output_count, 2) @@ -470,6 +476,11 @@ class BuildTest(BuildTestBase): def test_overallocation_and_trim(self): """Test overallocation of stock and trim function""" + + self.assertEqual(self.build.status, status.BuildStatus.PENDING) + self.build.issue_build() + self.assertEqual(self.build.status, status.BuildStatus.PRODUCTION) + # Fully allocate tracked stock (not eligible for trimming) self.allocate_stock( self.output_1, @@ -516,6 +527,7 @@ class BuildTest(BuildTestBase): self.build.complete_build_output(self.output_1, None) self.build.complete_build_output(self.output_2, None) + self.assertTrue(self.build.can_complete) n = StockItem.objects.filter(consumed_by=self.build).count() @@ -583,6 +595,8 @@ class BuildTest(BuildTestBase): self.stock_2_1.quantity = 30 self.stock_2_1.save() + self.build.issue_build() + # Allocate non-tracked parts self.allocate_stock( None, diff --git a/src/backend/InvenTree/generic/states/states.py b/src/backend/InvenTree/generic/states/states.py index 372a5bec45..c72b201eca 100644 --- a/src/backend/InvenTree/generic/states/states.py +++ b/src/backend/InvenTree/generic/states/states.py @@ -16,11 +16,26 @@ class BaseEnum(enum.IntEnum): obj._value_ = args[0] return obj + def __int__(self): + """Return an integer representation of the value.""" + return self.value + + def __str__(self): + """Return a string representation of the value.""" + return str(self.value) + def __eq__(self, obj): """Override equality operator to allow comparison with int.""" - if type(self) is type(obj): - return super().__eq__(obj) - return self.value == obj + if type(obj) is int: + return self.value == obj + + if isinstance(obj, BaseEnum): + return self.value == obj.value + + if hasattr(obj, 'value'): + return self.value == obj.value + + return super().__eq__(obj) def __ne__(self, obj): """Override inequality operator to allow comparison with int.""" diff --git a/src/backend/InvenTree/order/api.py b/src/backend/InvenTree/order/api.py index 92603fadfb..d5618d26d7 100644 --- a/src/backend/InvenTree/order/api.py +++ b/src/backend/InvenTree/order/api.py @@ -360,6 +360,12 @@ class PurchaseOrderContextMixin: return context +class PurchaseOrderHold(PurchaseOrderContextMixin, CreateAPI): + """API endpoint to place a PurchaseOrder on hold.""" + + serializer_class = serializers.PurchaseOrderHoldSerializer + + class PurchaseOrderCancel(PurchaseOrderContextMixin, CreateAPI): """API endpoint to 'cancel' a purchase order. @@ -893,6 +899,12 @@ class SalesOrderContextMixin: return ctx +class SalesOrderHold(SalesOrderContextMixin, CreateAPI): + """API endpoint to place a SalesOrder on hold.""" + + serializer_class = serializers.SalesOrderHoldSerializer + + class SalesOrderCancel(SalesOrderContextMixin, CreateAPI): """API endpoint to cancel a SalesOrder.""" @@ -1198,6 +1210,12 @@ class ReturnOrderCancel(ReturnOrderContextMixin, CreateAPI): serializer_class = serializers.ReturnOrderCancelSerializer +class ReturnOrderHold(ReturnOrderContextMixin, CreateAPI): + """API endpoint to hold a ReturnOrder.""" + + serializer_class = serializers.ReturnOrderHoldSerializer + + class ReturnOrderComplete(ReturnOrderContextMixin, CreateAPI): """API endpoint to complete a ReturnOrder.""" @@ -1481,6 +1499,7 @@ order_api_urls = [ path( 'cancel/', PurchaseOrderCancel.as_view(), name='api-po-cancel' ), + path('hold/', PurchaseOrderHold.as_view(), name='api-po-hold'), path( 'complete/', PurchaseOrderComplete.as_view(), @@ -1610,6 +1629,7 @@ order_api_urls = [ SalesOrderAllocateSerials.as_view(), name='api-so-allocate-serials', ), + path('hold/', SalesOrderHold.as_view(), name='api-so-hold'), path('cancel/', SalesOrderCancel.as_view(), name='api-so-cancel'), path('issue/', SalesOrderIssue.as_view(), name='api-so-issue'), path( @@ -1709,6 +1729,7 @@ order_api_urls = [ ReturnOrderCancel.as_view(), name='api-return-order-cancel', ), + path('hold/', ReturnOrderHold.as_view(), name='api-ro-hold'), path( 'complete/', ReturnOrderComplete.as_view(), diff --git a/src/backend/InvenTree/order/models.py b/src/backend/InvenTree/order/models.py index 2362c01ee4..3d2039a84c 100644 --- a/src/backend/InvenTree/order/models.py +++ b/src/backend/InvenTree/order/models.py @@ -609,7 +609,7 @@ class PurchaseOrder(TotalPriceMixin, Order): Order must be currently PENDING. """ - if self.is_pending: + if self.can_issue: self.status = PurchaseOrderStatus.PLACED.value self.issue_date = InvenTree.helpers.current_date() self.save() @@ -642,6 +642,19 @@ class PurchaseOrder(TotalPriceMixin, Order): trigger_event('purchaseorder.completed', id=self.pk) + @transaction.atomic + def issue_order(self): + """Equivalent to 'place_order'.""" + self.place_order() + + @property + def can_issue(self): + """Return True if this order can be issued.""" + return self.status in [ + PurchaseOrderStatus.PENDING.value, + PurchaseOrderStatus.ON_HOLD.value, + ] + @transaction.atomic def place_order(self): """Attempt to transition to PLACED status.""" @@ -656,6 +669,13 @@ class PurchaseOrder(TotalPriceMixin, Order): self.status, PurchaseOrderStatus.COMPLETE.value, self, self._action_complete ) + @transaction.atomic + def hold_order(self): + """Attempt to transition to ON_HOLD status.""" + return self.handle_transition( + self.status, PurchaseOrderStatus.ON_HOLD.value, self, self._action_hold + ) + @transaction.atomic def cancel_order(self): """Attempt to transition to CANCELLED status.""" @@ -678,12 +698,9 @@ class PurchaseOrder(TotalPriceMixin, Order): """A PurchaseOrder can only be cancelled under the following circumstances. - Status is PLACED - - Status is PENDING + - Status is PENDING (or ON_HOLD) """ - return self.status in [ - PurchaseOrderStatus.PLACED.value, - PurchaseOrderStatus.PENDING.value, - ] + return self.status in PurchaseOrderStatusGroups.OPEN def _action_cancel(self, *args, **kwargs): """Marks the PurchaseOrder as CANCELLED.""" @@ -701,6 +718,22 @@ class PurchaseOrder(TotalPriceMixin, Order): content=InvenTreeNotificationBodies.OrderCanceled, ) + @property + def can_hold(self): + """Return True if this order can be placed on hold.""" + return self.status in [ + PurchaseOrderStatus.PENDING.value, + PurchaseOrderStatus.PLACED.value, + ] + + def _action_hold(self, *args, **kwargs): + """Mark this purchase order as 'on hold'.""" + if self.can_hold: + self.status = PurchaseOrderStatus.ON_HOLD.value + self.save() + + trigger_event('purchaseorder.hold', id=self.pk) + # endregion def pending_line_items(self): @@ -1074,15 +1107,39 @@ class SalesOrder(TotalPriceMixin, Order): """Deprecated version of 'issue_order'.""" self.issue_order() + @property + def can_issue(self): + """Return True if this order can be issued.""" + return self.status in [ + SalesOrderStatus.PENDING.value, + SalesOrderStatus.ON_HOLD.value, + ] + def _action_place(self, *args, **kwargs): """Change this order from 'PENDING' to 'IN_PROGRESS'.""" - if self.status == SalesOrderStatus.PENDING: + if self.can_issue: self.status = SalesOrderStatus.IN_PROGRESS.value self.issue_date = InvenTree.helpers.current_date() self.save() trigger_event('salesorder.issued', id=self.pk) + @property + def can_hold(self): + """Return True if this order can be placed on hold.""" + return self.status in [ + SalesOrderStatus.PENDING.value, + SalesOrderStatus.IN_PROGRESS.value, + ] + + def _action_hold(self, *args, **kwargs): + """Mark this sales order as 'on hold'.""" + if self.can_hold: + self.status = SalesOrderStatus.ON_HOLD.value + self.save() + + trigger_event('salesorder.onhold', id=self.pk) + def _action_complete(self, *args, **kwargs): """Mark this order as "complete.""" user = kwargs.pop('user', None) @@ -1176,6 +1233,13 @@ class SalesOrder(TotalPriceMixin, Order): **kwargs, ) + @transaction.atomic + def hold_order(self): + """Attempt to transition to ON_HOLD status.""" + return self.handle_transition( + self.status, SalesOrderStatus.ON_HOLD.value, self, self._action_hold + ) + @transaction.atomic def cancel_order(self): """Attempt to transition to CANCELLED status.""" @@ -2133,9 +2197,30 @@ class ReturnOrder(TotalPriceMixin, Order): """Return True if this order is fully received.""" return not self.lines.filter(received_date=None).exists() + @property + def can_hold(self): + """Return True if this order can be placed on hold.""" + return self.status in [ + ReturnOrderStatus.PENDING.value, + ReturnOrderStatus.IN_PROGRESS.value, + ] + + def _action_hold(self, *args, **kwargs): + """Mark this order as 'on hold' (if allowed).""" + if self.can_hold: + self.status = ReturnOrderStatus.ON_HOLD.value + self.save() + + trigger_event('returnorder.hold', id=self.pk) + + @property + def can_cancel(self): + """Return True if this order can be cancelled.""" + return self.status in ReturnOrderStatusGroups.OPEN + def _action_cancel(self, *args, **kwargs): """Cancel this ReturnOrder (if not already cancelled).""" - if self.status != ReturnOrderStatus.CANCELLED: + if self.can_cancel: self.status = ReturnOrderStatus.CANCELLED.value self.save() @@ -2151,7 +2236,7 @@ class ReturnOrder(TotalPriceMixin, Order): def _action_complete(self, *args, **kwargs): """Complete this ReturnOrder (if not already completed).""" - if self.status == ReturnOrderStatus.IN_PROGRESS: + if self.status == ReturnOrderStatus.IN_PROGRESS.value: self.status = ReturnOrderStatus.COMPLETE.value self.complete_date = InvenTree.helpers.current_date() self.save() @@ -2162,15 +2247,30 @@ class ReturnOrder(TotalPriceMixin, Order): """Deprecated version of 'issue_order.""" self.issue_order() + @property + def can_issue(self): + """Return True if this order can be issued.""" + return self.status in [ + ReturnOrderStatus.PENDING.value, + ReturnOrderStatus.ON_HOLD.value, + ] + def _action_place(self, *args, **kwargs): """Issue this ReturnOrder (if currently pending).""" - if self.status == ReturnOrderStatus.PENDING: + if self.can_issue: self.status = ReturnOrderStatus.IN_PROGRESS.value self.issue_date = InvenTree.helpers.current_date() self.save() trigger_event('returnorder.issued', id=self.pk) + @transaction.atomic + def hold_order(self): + """Attempt to tranasition to ON_HOLD status.""" + return self.handle_transition( + self.status, ReturnOrderStatus.ON_HOLD.value, self, self._action_hold + ) + @transaction.atomic def issue_order(self): """Attempt to transition to IN_PROGRESS status.""" diff --git a/src/backend/InvenTree/order/serializers.py b/src/backend/InvenTree/order/serializers.py index f8ed5c6f39..79e7d9043e 100644 --- a/src/backend/InvenTree/order/serializers.py +++ b/src/backend/InvenTree/order/serializers.py @@ -284,14 +284,37 @@ class PurchaseOrderSerializer( ) -class PurchaseOrderCancelSerializer(serializers.Serializer): - """Serializer for cancelling a PurchaseOrder.""" +class OrderAdjustSerializer(serializers.Serializer): + """Generic serializer class for adjusting the status of an order.""" class Meta: - """Metaclass options.""" + """Metaclass options. + + By default, there are no fields required for this serializer type. + """ fields = [] + @property + def order(self): + """Return the order object associated with this serializer. + + Note: It is passed in via the serializer context data. + """ + return self.context['order'] + + +class PurchaseOrderHoldSerializer(OrderAdjustSerializer): + """Serializer for placing a PurchaseOrder on hold.""" + + def save(self): + """Save the serializer to 'hold' the order.""" + self.order.hold_order() + + +class PurchaseOrderCancelSerializer(OrderAdjustSerializer): + """Serializer for cancelling a PurchaseOrder.""" + def get_context_data(self): """Return custom context information about the order.""" self.order = self.context['order'] @@ -300,21 +323,19 @@ class PurchaseOrderCancelSerializer(serializers.Serializer): def save(self): """Save the serializer to 'cancel' the order.""" - order = self.context['order'] - - if not order.can_cancel: + if not self.order.can_cancel: raise ValidationError(_('Order cannot be cancelled')) - order.cancel_order() + self.order.cancel_order() -class PurchaseOrderCompleteSerializer(serializers.Serializer): +class PurchaseOrderCompleteSerializer(OrderAdjustSerializer): """Serializer for completing a purchase order.""" class Meta: """Metaclass options.""" - fields = [] + fields = ['accept_incomplete'] accept_incomplete = serializers.BooleanField( label=_('Accept Incomplete'), @@ -340,22 +361,15 @@ class PurchaseOrderCompleteSerializer(serializers.Serializer): def save(self): """Save the serializer to 'complete' the order.""" - order = self.context['order'] - order.complete_order() + self.order.complete_order() -class PurchaseOrderIssueSerializer(serializers.Serializer): +class PurchaseOrderIssueSerializer(OrderAdjustSerializer): """Serializer for issuing (sending) a purchase order.""" - class Meta: - """Metaclass options.""" - - fields = [] - def save(self): """Save the serializer to 'place' the order.""" - order = self.context['order'] - order.place_order() + self.order.place_order() @register_importer() @@ -402,7 +416,6 @@ class PurchaseOrderLineItemSerializer( def __init__(self, *args, **kwargs): """Initialization routine for the serializer.""" part_detail = kwargs.pop('part_detail', False) - order_detail = kwargs.pop('order_detail', False) super().__init__(*args, **kwargs) @@ -436,6 +449,18 @@ class PurchaseOrderLineItemSerializer( ) ) + queryset = queryset.prefetch_related( + 'order', + 'order__responsible', + 'order__stock_items', + 'part__tags', + 'part__supplier', + 'part__manufacturer_part', + 'part__manufacturer_part__manufacturer', + 'part__part__pricing_data', + 'part__part__tags', + ) + queryset = queryset.annotate( total_price=ExpressionWrapper( F('purchase_price') * F('quantity'), output_field=models.DecimalField() @@ -489,7 +514,7 @@ class PurchaseOrderLineItemSerializer( ) supplier_part_detail = SupplierPartSerializer( - source='part', many=False, read_only=True + source='part', brief=True, many=False, read_only=True ) purchase_price = InvenTreeMoneySerializer(allow_null=True) @@ -898,18 +923,12 @@ class SalesOrderSerializer( ) -class SalesOrderIssueSerializer(serializers.Serializer): +class SalesOrderIssueSerializer(OrderAdjustSerializer): """Serializer for issuing a SalesOrder.""" - class Meta: - """Metaclass options.""" - - fields = [] - def save(self): """Save the serializer to 'issue' the order.""" - order = self.context['order'] - order.issue_order() + self.order.issue_order() class SalesOrderAllocationSerializer(InvenTreeModelSerializer): @@ -1313,9 +1332,14 @@ class SalesOrderShipmentAllocationItemSerializer(serializers.Serializer): return data -class SalesOrderCompleteSerializer(serializers.Serializer): +class SalesOrderCompleteSerializer(OrderAdjustSerializer): """DRF serializer for manually marking a sales order as complete.""" + class Meta: + """Serializer metaclass options.""" + + fields = ['accept_incomplete'] + accept_incomplete = serializers.BooleanField( label=_('Accept Incomplete'), help_text=_('Allow order to be closed with incomplete line items'), @@ -1344,10 +1368,7 @@ class SalesOrderCompleteSerializer(serializers.Serializer): def validate(self, data): """Custom validation for the serializer.""" data = super().validate(data) - - order = self.context['order'] - - order.can_complete( + self.order.can_complete( raise_error=True, allow_incomplete_lines=str2bool(data.get('accept_incomplete', False)), ) @@ -1357,17 +1378,24 @@ class SalesOrderCompleteSerializer(serializers.Serializer): def save(self): """Save the serializer to complete the SalesOrder.""" request = self.context['request'] - order = self.context['order'] data = self.validated_data user = getattr(request, 'user', None) - order.ship_order( + self.order.ship_order( user, allow_incomplete_lines=str2bool(data.get('accept_incomplete', False)) ) -class SalesOrderCancelSerializer(serializers.Serializer): +class SalesOrderHoldSerializer(OrderAdjustSerializer): + """Serializer for placing a SalesOrder on hold.""" + + def save(self): + """Save the serializer to place the SalesOrder on hold.""" + self.order.hold_order() + + +class SalesOrderCancelSerializer(OrderAdjustSerializer): """Serializer for marking a SalesOrder as cancelled.""" def get_context_data(self): @@ -1378,9 +1406,7 @@ class SalesOrderCancelSerializer(serializers.Serializer): def save(self): """Save the serializer to cancel the order.""" - order = self.context['order'] - - order.cancel_order() + self.order.cancel_order() class SalesOrderSerialAllocationSerializer(serializers.Serializer): @@ -1657,46 +1683,36 @@ class ReturnOrderSerializer( ) -class ReturnOrderIssueSerializer(serializers.Serializer): +class ReturnOrderHoldSerializer(OrderAdjustSerializer): + """Serializers for holding a ReturnOrder.""" + + def save(self): + """Save the serializer to 'hold' the order.""" + self.order.hold_order() + + +class ReturnOrderIssueSerializer(OrderAdjustSerializer): """Serializer for issuing a ReturnOrder.""" - class Meta: - """Metaclass options.""" - - fields = [] - def save(self): """Save the serializer to 'issue' the order.""" - order = self.context['order'] - order.issue_order() + self.order.issue_order() -class ReturnOrderCancelSerializer(serializers.Serializer): +class ReturnOrderCancelSerializer(OrderAdjustSerializer): """Serializer for cancelling a ReturnOrder.""" - class Meta: - """Metaclass options.""" - - fields = [] - def save(self): """Save the serializer to 'cancel' the order.""" - order = self.context['order'] - order.cancel_order() + self.order.cancel_order() -class ReturnOrderCompleteSerializer(serializers.Serializer): +class ReturnOrderCompleteSerializer(OrderAdjustSerializer): """Serializer for completing a ReturnOrder.""" - class Meta: - """Metaclass options.""" - - fields = [] - def save(self): """Save the serializer to 'complete' the order.""" - order = self.context['order'] - order.complete_order() + self.order.complete_order() class ReturnOrderLineItemReceiveSerializer(serializers.Serializer): diff --git a/src/backend/InvenTree/order/status_codes.py b/src/backend/InvenTree/order/status_codes.py index cec286dc09..bc5df2bca3 100644 --- a/src/backend/InvenTree/order/status_codes.py +++ b/src/backend/InvenTree/order/status_codes.py @@ -11,6 +11,7 @@ class PurchaseOrderStatus(StatusCode): # Order status codes PENDING = 10, _('Pending'), 'secondary' # Order is pending (not yet placed) PLACED = 20, _('Placed'), 'primary' # Order has been placed with supplier + ON_HOLD = 25, _('On Hold'), 'warning' # Order is on hold COMPLETE = 30, _('Complete'), 'success' # Order has been completed CANCELLED = 40, _('Cancelled'), 'danger' # Order was cancelled LOST = 50, _('Lost'), 'warning' # Order was lost @@ -21,7 +22,11 @@ class PurchaseOrderStatusGroups: """Groups for PurchaseOrderStatus codes.""" # Open orders - OPEN = [PurchaseOrderStatus.PENDING.value, PurchaseOrderStatus.PLACED.value] + OPEN = [ + PurchaseOrderStatus.PENDING.value, + PurchaseOrderStatus.ON_HOLD.value, + PurchaseOrderStatus.PLACED.value, + ] # Failed orders FAILED = [ @@ -41,6 +46,7 @@ class SalesOrderStatus(StatusCode): 'primary', ) # Order has been issued, and is in progress SHIPPED = 20, _('Shipped'), 'success' # Order has been shipped to customer + ON_HOLD = 25, _('On Hold'), 'warning' # Order is on hold COMPLETE = 30, _('Complete'), 'success' # Order is complete CANCELLED = 40, _('Cancelled'), 'danger' # Order has been cancelled LOST = 50, _('Lost'), 'warning' # Order was lost @@ -51,7 +57,11 @@ class SalesOrderStatusGroups: """Groups for SalesOrderStatus codes.""" # Open orders - OPEN = [SalesOrderStatus.PENDING.value, SalesOrderStatus.IN_PROGRESS.value] + OPEN = [ + SalesOrderStatus.PENDING.value, + SalesOrderStatus.ON_HOLD.value, + SalesOrderStatus.IN_PROGRESS.value, + ] # Completed orders COMPLETE = [SalesOrderStatus.SHIPPED.value, SalesOrderStatus.COMPLETE.value] @@ -66,6 +76,8 @@ class ReturnOrderStatus(StatusCode): # Items have been received, and are being inspected IN_PROGRESS = 20, _('In Progress'), 'primary' + ON_HOLD = 25, _('On Hold'), 'warning' + COMPLETE = 30, _('Complete'), 'success' CANCELLED = 40, _('Cancelled'), 'danger' @@ -73,7 +85,11 @@ class ReturnOrderStatus(StatusCode): class ReturnOrderStatusGroups: """Groups for ReturnOrderStatus codes.""" - OPEN = [ReturnOrderStatus.PENDING.value, ReturnOrderStatus.IN_PROGRESS.value] + OPEN = [ + ReturnOrderStatus.PENDING.value, + ReturnOrderStatus.ON_HOLD.value, + ReturnOrderStatus.IN_PROGRESS.value, + ] class ReturnOrderLineStatus(StatusCode): diff --git a/src/backend/InvenTree/order/templates/order/order_base.html b/src/backend/InvenTree/order/templates/order/order_base.html index ce9bc02fad..b02aafa19b 100644 --- a/src/backend/InvenTree/order/templates/order/order_base.html +++ b/src/backend/InvenTree/order/templates/order/order_base.html @@ -63,23 +63,28 @@
  • {% trans "Edit order" %}
  • - {% if order.can_cancel %} -
  • - {% trans "Cancel order" %} -
  • - {% endif %} {% if roles.purchase_order.add %}
  • {% trans "Duplicate order" %}
  • {% endif %} + {% if order.can_hold %} +
  • + {% trans "Hold order" %} +
  • + {% endif %} + {% if order.can_cancel %} +
  • + {% trans "Cancel order" %} +
  • + {% endif %}
    -{% if order.is_pending %} +{% if order.can_issue %} -{% elif order.is_open %} +{% elif order.status == PurchaseOrderStatus.PLACED %} @@ -238,7 +243,7 @@ src="{% static 'img/blank_image.png' %}" {% block js_ready %} {{ block.super }} -{% if order.status == PurchaseOrderStatus.PENDING %} +{% if order.status == PurchaseOrderStatus.PENDING or order.status == PurchaseOrderStatus.ON_HOLD %} $("#place-order").click(function() { issuePurchaseOrder( @@ -281,6 +286,7 @@ $("#complete-order").click(function() { ); }); +{% if order.can_cancel %} $("#cancel-order").click(function() { cancelPurchaseOrder( @@ -292,6 +298,21 @@ $("#cancel-order").click(function() { }, ); }); +{% endif %} + +{% if order.can_hold %} +$("#hold-order").click(function() { + + holdOrder( + '{% url "api-po-hold" order.pk %}', + { + onSuccess: function() { + window.location.reload(); + } + } + ); +}); +{% endif %} {% endif %} diff --git a/src/backend/InvenTree/order/templates/order/return_order_base.html b/src/backend/InvenTree/order/templates/order/return_order_base.html index f4590c71eb..494701abf1 100644 --- a/src/backend/InvenTree/order/templates/order/return_order_base.html +++ b/src/backend/InvenTree/order/templates/order/return_order_base.html @@ -74,11 +74,14 @@ src="{% static 'img/blank_image.png' %}" - {% if order.status == ReturnOrderStatus.PENDING %} + {% if order.can_issue %} @@ -211,7 +214,7 @@ src="{% static 'img/blank_image.png' %}" {% if roles.return_order.change %} -{% if order.status == ReturnOrderStatus.PENDING %} +{% if order.can_issue %} $('#issue-order').click(function() { issueReturnOrder({{ order.pk }}, { reload: true, @@ -234,7 +237,7 @@ $('#edit-order').click(function() { }); }); -{% if order.is_open %} +{% if order.can_cancel %} $('#cancel-order').click(function() { cancelReturnOrder( {{ order.pk }}, @@ -244,6 +247,17 @@ $('#cancel-order').click(function() { ); }); {% endif %} + +{% if order.can_hold %} +$("#hold-order").click(function() { + holdOrder( + '{% url "api-ro-hold" order.pk %}', + { + reload: true, + } + ); + }); +{% endif %} {% endif %} {% if report_enabled %} diff --git a/src/backend/InvenTree/order/templates/order/sales_order_base.html b/src/backend/InvenTree/order/templates/order/sales_order_base.html index 2a3e676e95..c8d0179aa1 100644 --- a/src/backend/InvenTree/order/templates/order/sales_order_base.html +++ b/src/backend/InvenTree/order/templates/order/sales_order_base.html @@ -73,13 +73,16 @@ src="{% static 'img/blank_image.png' %}"
    - {% if order.is_pending %} + {% if order.status == SalesOrderStatus.PENDING or order.status == SalesOrderStatus.ON_HOLD %} @@ -280,6 +283,7 @@ $('#issue-order').click(function() { ); }); +{% if order.can_cancel %} $("#cancel-order").click(function() { cancelSalesOrder( @@ -289,6 +293,20 @@ $("#cancel-order").click(function() { } ); }); +{% endif %} + +{% if order.can_hold %} +$('#hold-order').click(function() { + holdOrder( + '{% url "api-so-hold" order.pk %}', + { + onSuccess: function() { + window.location.reload(); + } + } + ); +}); +{% endif %} $("#ship-order").click(function() { shipSalesOrder( diff --git a/src/backend/InvenTree/part/models.py b/src/backend/InvenTree/part/models.py index 20d28b9f47..b84b24f70e 100644 --- a/src/backend/InvenTree/part/models.py +++ b/src/backend/InvenTree/part/models.py @@ -51,8 +51,7 @@ from build import models as BuildModels from build.status_codes import BuildStatusGroups from common.currency import currency_code_default from common.icons import validate_icon -from common.models import InvenTreeSetting -from common.settings import get_global_setting, set_global_setting +from common.settings import get_global_setting from company.models import SupplierPart from InvenTree import helpers, validators from InvenTree.fields import InvenTreeURLField diff --git a/src/backend/InvenTree/templates/js/translated/order.js b/src/backend/InvenTree/templates/js/translated/order.js index 8c98a729ce..fc7c41960f 100644 --- a/src/backend/InvenTree/templates/js/translated/order.js +++ b/src/backend/InvenTree/templates/js/translated/order.js @@ -8,6 +8,7 @@ exportFormatOptions, formatCurrency, getFormFieldValue, + handleFormSuccess, inventreeGet, inventreeLoad, inventreeSave, @@ -25,6 +26,7 @@ createExtraLineItem, editExtraLineItem, exportOrder, + holdOrder, issuePurchaseOrder, newPurchaseOrderFromOrderWizard, newSupplierPartFromOrderWizard, @@ -38,6 +40,29 @@ */ +function holdOrder(url, options={}) { + constructForm( + url, + { + method: 'POST', + title: '{% trans "Hold Order" %}', + confirm: true, + preFormContent: function(opts) { + let html = ` +
    + {% trans "Are you sure you wish to place this order on hold?" %} +
    `; + + return html; + }, + onSuccess: function(response) { + handleFormSuccess(response, options); + } + } + ); +} + + /* Construct a set of fields for a OrderExtraLine form */ function extraLineFields(options={}) { diff --git a/src/frontend/src/components/buttons/PrimaryActionButton.tsx b/src/frontend/src/components/buttons/PrimaryActionButton.tsx new file mode 100644 index 0000000000..8d30b3fd36 --- /dev/null +++ b/src/frontend/src/components/buttons/PrimaryActionButton.tsx @@ -0,0 +1,41 @@ +import { Button, Tooltip } from '@mantine/core'; + +import { InvenTreeIcon, InvenTreeIconType } from '../../functions/icons'; +import { notYetImplemented } from '../../functions/notifications'; + +/** + * A "primary action" button for display on a page detail, (for example) + */ +export default function PrimaryActionButton({ + title, + tooltip, + icon, + color, + hidden, + onClick +}: { + title: string; + tooltip?: string; + icon?: InvenTreeIconType; + color?: string; + hidden?: boolean; + onClick?: () => void; +}) { + if (hidden) { + return null; + } + + return ( + + ); +} diff --git a/src/frontend/src/components/forms/ApiForm.tsx b/src/frontend/src/components/forms/ApiForm.tsx index 609b7b2b57..bfff18714e 100644 --- a/src/frontend/src/components/forms/ApiForm.tsx +++ b/src/frontend/src/components/forms/ApiForm.tsx @@ -368,6 +368,11 @@ export function ApiForm({ return; } + // Do not auto-focus on a 'choice' field + if (field.field_type == 'choice') { + return; + } + focusField = fieldName; }); } @@ -378,7 +383,7 @@ export function ApiForm({ form.setFocus(focusField); setInitialFocus(focusField); - }, [props.focus, fields, form.setFocus, isLoading, initialFocus]); + }, [props.focus, form.setFocus, isLoading, initialFocus]); const submitForm: SubmitHandler = async (data) => { setNonFieldErrors([]); diff --git a/src/frontend/src/components/importer/ImporterDrawer.tsx b/src/frontend/src/components/importer/ImporterDrawer.tsx index ae46780604..5aa39f67df 100644 --- a/src/frontend/src/components/importer/ImporterDrawer.tsx +++ b/src/frontend/src/components/importer/ImporterDrawer.tsx @@ -16,10 +16,9 @@ import { import { IconCheck } from '@tabler/icons-react'; import { ReactNode, useMemo } from 'react'; -import { - ImportSessionStatus, - useImportSession -} from '../../hooks/UseImportSession'; +import { ModelType } from '../../enums/ModelType'; +import { useImportSession } from '../../hooks/UseImportSession'; +import useStatusCodes from '../../hooks/UseStatusCodes'; import { StylishText } from '../items/StylishText'; import ImporterDataSelector from './ImportDataSelector'; import ImporterColumnSelector from './ImporterColumnSelector'; @@ -62,19 +61,23 @@ export default function ImporterDrawer({ }) { const session = useImportSession({ sessionId: sessionId }); + const importSessionStatus = useStatusCodes({ + modelType: ModelType.importsession + }); + // Map from import steps to stepper steps const currentStep = useMemo(() => { switch (session.status) { default: - case ImportSessionStatus.INITIAL: + case importSessionStatus.INITIAL: return 0; - case ImportSessionStatus.MAPPING: + case importSessionStatus.MAPPING: return 1; - case ImportSessionStatus.IMPORTING: + case importSessionStatus.IMPORTING: return 2; - case ImportSessionStatus.PROCESSING: + case importSessionStatus.PROCESSING: return 3; - case ImportSessionStatus.COMPLETE: + case importSessionStatus.COMPLETE: return 4; } }, [session.status]); @@ -85,15 +88,15 @@ export default function ImporterDrawer({ } switch (session.status) { - case ImportSessionStatus.INITIAL: + case importSessionStatus.INITIAL: return Initial : TODO; - case ImportSessionStatus.MAPPING: + case importSessionStatus.MAPPING: return ; - case ImportSessionStatus.IMPORTING: + case importSessionStatus.IMPORTING: return ; - case ImportSessionStatus.PROCESSING: + case importSessionStatus.PROCESSING: return ; - case ImportSessionStatus.COMPLETE: + case importSessionStatus.COMPLETE: return ( { - console.log('refreshing:', session.status); - - if (session.status == ImportSessionStatus.IMPORTING) { + if (session.status == importSessionStatus.IMPORTING) { session.refreshSession(); } }, 1000); diff --git a/src/frontend/src/components/items/ActionDropdown.tsx b/src/frontend/src/components/items/ActionDropdown.tsx index d29c21c93f..f291bd520e 100644 --- a/src/frontend/src/components/items/ActionDropdown.tsx +++ b/src/frontend/src/components/items/ActionDropdown.tsx @@ -89,7 +89,11 @@ export function ActionDropdown({ {...action.indicator} key={action.name} > -
    P1%^CaRi+}eha=T~Mc(|O~0{dkf; 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

    |0MB0(Y&HG8=OWUA^F%xp*X`6oNz7Rg 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 EhK>otU%Aw3>Z1Vl&ONtcz(;!X{Pq=}_W%(qY6 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 z

    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%0Dmls^TkHLir4j(4H^Q?A5CeU#s)7ZzwGKmw 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%0AOcsmL%49K2 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�ZdRLKnY9)LxLQ^iy%m_C1?=B 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 z z+`I-AOS_zF<1L%c6tR91({X^@Iy{g4>2(MR0E>v2Qrx(J8{7vSsjh85a+%tXsC5WP zYN36I+EH*ggqy(ZZ8AMVX15L^RUAVz2~LCq7S=Ep)$#tXEjX)Ry#kz=+#p9T?7o`f zwm$`-iyk}(H)#$^Q`-bxNa*&@M<`Ws3F8aKKFln0I`4z;Gl}~&v$H+!C)iYHDi!nQ zL-rjvo{ugmbNr)n2jKuAboOI{gpduXCs~sUAdO&$wH&Q5hz`u2WaL(L`S3KtlSwwz z!s9s&?a-@D_y#hx!t*oQ>cX`{5?xe4?i0uI@knL3Y7s9{ziDmBpmLHUa8|wmnHfZP zUAthQ+ZmNCU5CmOH!^|^g;E+x`~f+4GAy4wb=W5#9*2Hdv|Bshrg4`~d|*bnCd!c_ z`_@)_e;cZuQ7ucq9DVSUN00N%W*+zCanECyBUQBtp@aJos~MU{FoMu2d-BMCru=8d zf1dfz58i^qj4~gY{lx@N6NZ)r3E@gC_|*;yf1YAgDwhM;ySowpd(PnpGoA~e1#S3Fgp;n>PB($KU zS6=WeUp(1YOHs{M;lO;+6tgr`^_pH#&%-I~g1JHfQJg~G@bX{`_6uG4C%*VDPK|E{>L zeM6(MF)wvEaly3yihiIlg_&Xgwyn68GwiJ8$ zzMRJjjGrfeQqfjEhFCtfn8(!>o_o{9Wa%h_{WaE6zm`FShyOBM#9V|w7g)+@DC3zp zkNe;#L5d3=odZ3p zP>t&HPyG@e_R!Shg(Ty9R6mc^ne!leSy9u|dytZXTIvKxpq8TIf||wJe8w_9#p#j* zHdn?c#)|SIdb|~96(w$2Gz=Mcsji-UQ)Q~+_+!)>$9t8oqL^e%VI(nX4H~7>)A)Rm z?sE(Xq)5rWsQi^i5tFQ>n5K(~qL2uDxI~?26cY4MicUsPGC~Du#~mR9Z?aYc*as